<?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>Cat Burton &#187; Tech</title>
	<atom:link href="http://www.catburton.co.uk/blog/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.catburton.co.uk/blog</link>
	<description></description>
	<lastBuildDate>Mon, 16 Jan 2012 13:46:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Version Control for Unity Projects</title>
		<link>http://www.catburton.co.uk/blog/2011/06/25/version-control-for-unity-projects/</link>
		<comments>http://www.catburton.co.uk/blog/2011/06/25/version-control-for-unity-projects/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 14:41:35 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=151</guid>
		<description><![CDATA[As a developer, version control is very important to me. Any project I work on needs to use version control; not only to use a backup and provide change history, but to enable collaboration with other developers and designers. Since I&#8217;ve been developing games with Unity, I&#8217;ve not found a resource that highlights the pros/cons [...]]]></description>
			<content:encoded><![CDATA[<p>As a developer, version control is very important to me. Any project I work on needs to use version control; not only to use a backup and provide change history, but to enable collaboration with other developers and designers. Since I&#8217;ve been developing games with Unity, I&#8217;ve not found a resource that highlights the pros/cons of the available version control systems. I&#8217;ve not even seen a consistent list of external version control systems that you <strong>can</strong> use effectively for Unity projects.</p>
<p>Since I can&#8217;t find one solid source of information on this, I&#8217;m spending my Saturday researching the available options. This list is not in any order of preference, merely the order in which I encounter each system.</p>
<p>&nbsp;</p>
<h2>Asset Server</h2>
<p>Asset Server is Unity&#8217;s own version control product. It sits on top of a PostgreSQL database and can be setup easily on many platforms. In my case, I installed Asset Server locally on my Mac for trial purposes, and found that once installed, it was very easy to administer and add project-specific user privileges. Note that Asset Server requires an additional license from Unity (an extra $500 per user), and can only be used in the Pro version.</p>
<p>Since it has been developed by Unity, Asset Server is integrated nicely into the Unity UI. Having used this for a week or so, I&#8217;ve found that <strong>visually</strong>, this tool is quite nice. It provides the ability to dock the UI along with your other interface windows and updates frequently, meaning you can quickly see when someone else changes a file, without needing to manually refresh/synchronise.</p>
<p>When you wish to update/commit, you do so using the UI. I&#8217;m usually more of a fan of using the command line, but as far as UIs go, this one was ok&#8230;</p>
<p>&nbsp;</p>
<p>Aside from the ok UI and the ease of setup, I have already noticed some rather large features missing in Asset Server that are available in other version control systems. There appears to currently be no way to branch/tag/fork your project. The only way to “tag” a project would be to effectively copy the project to a new one in Asset Server. This means you lose any link with the original project. The same would be said for branching, although by losing this link, I have no idea how you would attempt to merge changes between the two, other than by consuming lots of coffee and manually copying changes over. Personally, I&#8217;d rather not be a merge monkey. I need my version control system of choice to deal with this automatically (bar complex merge conflicts, although that would be nice!).</p>
<p>&nbsp;</p>
<p>Based on my experience of Asset Server so far, I&#8217;d say that it might be ok for personal use and small projects. However, I wouldn&#8217;t say it&#8217;s worth paying the additional license fee when there are more powerful options available for free.</p>
<p>According to the<a href="http://blogs.unity3d.com/2011/06/16/unity-roadmap-2011/"> Unity roadmap for 2011</a>, it looks like they&#8217;re working on integration of Perforce and SVN in version 3.5. Until then, if you want to use an external version control system, you&#8217;ll have to set that up yourself and choose your own client.</p>
<p>&nbsp;</p>
<p>Links:</p>
<ul>
<li><a href="http://unity3d.com/asset-server/">Asset Server Setup guide</a></li>
<li><a href="http://unity3d.com/support/documentation/Manual/Asset%20Server.html">Asset ServerDocumentation</a></li>
</ul>
<p>&nbsp;</p>
<h2>External Version Control Systems</h2>
<p>Although not entirely obvious from looking at the Unity UI, it is possible to use an external version control system for your projects. Again, this will require a Pro version of Unity.</p>
<p>To enable external version control for your project, go to Edit-&gt;Project Settings-&gt;Editor. You should see the Editor Settings window appear. Hit the Enable button and you&#8217;ll see a progress window appear and dismiss itself once done. What this has done is create a .meta file for each of the assets in your Assets folder. These .meta files contain details required by Unity for that particular asset. It is important that you commit those files alongside your actual assets and ensure that the files are kept up to date.</p>
<p>Once you&#8217;ve done this initial setup, you should be able to add your project to your external version control system of choice.</p>
<p>More detailed <a href="http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html">documentation </a>on this is available on the <a href="http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html">Unity website</a>.</p>
<p>&nbsp;</p>
<h3>SVN</h3>
<p>&nbsp;</p>
<p>The aforementioned <a href="http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html">documentation </a>has some details on setting up a project in SVN. Effectively, this is all done via the command line. For me, this is fine, but I&#8217;m sure there are plenty of people who&#8217;d rather have a visual client to work with. I&#8217;ve not been able to find any svn plugins for the Unity UI yet, so you may need to use one of the standalone clients. There are plenty out there to choose from – I&#8217;ll just link to the handy<a href="http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients"> Wikipedia comparison page</a> rather than discuss any in particular.</p>
<p>One issue you&#8217;ll have with SVN (and the other version control systems listed below) is that it will try to merge binary files, meaning you will possibly end up with broken scenes/prefabs etc. There&#8217;s a useful <a href="http://answers.unity3d.com/questions/8740/version-control-workflow.html">discussion on Unity Answers</a> about how people have tried to resolve this issue.</p>
<p>Short of having to lock on a scene/prefab etc, there appears to currently be no easy way to deal with multiple people being able to edit/commit these, unless one person is responsible for combining all the changes. Not ideal.</p>
<p>Looking at the <a href="http://blogs.unity3d.com/2011/06/16/unity-roadmap-2011/">Unity roadmap for 2011</a>, the following (hopefully in the 3.5 release) should fix this issue:</p>
<p>&nbsp;</p>
<p><em>“Text-based scene/prefab/… format</em></p>
<p><em>Unity will now write all data in a text-based file format for scenes, prefabs, materials and other binary files in your project folder. The format is based on YAML and is optimized for being easy to merge. Multiple team members can work on a scene at the same time and merge the resulting changes afterwards.&#8221;</em></p>
<p><em><br />
</em></p>
<p>On the same page, they&#8217;ve also said they&#8217;ll be integrating SVN into Unity 3.5, which will be awesome!</p>
<p>&nbsp;</p>
<p><em>“Integrated Perforce and Subversion version control</em></p>
<p><em>We’re working on fully integrated version control support for both Perforce and Subversion. There’s a complete UI including support for file locking.&#8221;</em></p>
<p>&nbsp;</p>
<h3>Perforce</h3>
<p>&nbsp;</p>
<p>First a disclaimer: I&#8217;ve never used Perforce so this section is very short! I&#8217;ve heard a few people mention the use of Perforce in games development studios, so I&#8217;ve still researched its use in Unity in case anyone is thinking of using it.</p>
<p>As mentioned earlier, Unity are currently looking at integrating Perforce support in the 3.5 release. For now though, you&#8217;ll have to either use a separate command line or client, as per the SVN comments above.</p>
<p>Alternatively, it seems that Downsized Games are working on a plugin for Unity called P4U. The plugin hasn&#8217;t been released yet, but you can see some <a href="http://downsizedgames.com/software/">UI screenshots on their website</a>.</p>
<p>&nbsp;</p>
<h3>Git</h3>
<p>Git seems to be a bit of a version control hero for lots of people. For those who&#8217;ve not used it, it&#8217;s free (yay!) and open source (double yay)! You can find more info on Git <a href="http://git-scm.com/">here</a>.</p>
<p>Researching its use with Unity doesn&#8217;t seem to give much information on any specific issues encountered. That said, there weren&#8217;t any specific advantages noted either.</p>
<p>One thing to bear in mind if thinking of using Git, is that while it may be pretty awesome, Unity don&#8217;t seem to currently have any plans on the roadmap to integrate it into the Unity UI. This may be a drawback for your workflow compared to SVN/Perforce which will hopefully be integrated by the end of the year in 3.5.</p>
<p>&nbsp;</p>
<h3>Others</h3>
<p>Other version control systems that I&#8217;ve seen people mention they use alongside Unity are listed below. Since I&#8217;ve not used these before and I can&#8217;t find much information on their use in Unity, I&#8217;ll simply list them as possible options:</p>
<ul>
<li><a href="http://bazaar.canonical.com/en/">Bazaar</a></li>
</ul>
<ul>
<li><a href="http://www.alienbrain.com/">Alienbrain</a></li>
</ul>
<p>&nbsp;</p>
<h2>Summary</h2>
<p>I initially set about writing this post to give myself a better idea of which version control systems would be best for use alongside Unity. A lot of people seem to like using Asset Server since it is fully integrated in the Unity UI and as such, is possibly better for workflow. That said, Unity are working on integrating Perforce and SVN for 3.5. Given that there are key features missing in Asset Server (branching/tagging etc), the lack of UI integration for a few months seems to be an empty argument.</p>
<p>Since I&#8217;ve not used Perforce and already have my own SVN repo set up, I&#8217;m going to rock with SVN and look forward to the Unity integration later in the year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2011/06/25/version-control-for-unity-projects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SmartFoxServer 2X &#8211; Example Java Extension for Client-Server Communication (via Events and Requests)</title>
		<link>http://www.catburton.co.uk/blog/2011/01/11/smartfoxserver-2x-example-java-extension-for-client-server-communication-via-events-and-requests/</link>
		<comments>http://www.catburton.co.uk/blog/2011/01/11/smartfoxserver-2x-example-java-extension-for-client-server-communication-via-events-and-requests/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 21:22:48 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=132</guid>
		<description><![CDATA[Over the last two days, I&#8217;ve been playing with multiplayer Flash applications using SmartFoxServer 2X. Having got the basic app up and running, the next step was to get events and requests (including data transfer) working between client and server. I spent a lot of time today reading over documentation, forums and apis, only to [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last two days, I&#8217;ve been playing with multiplayer Flash applications using <a href="http://www.smartfoxserver.com/2X/">SmartFoxServer 2X</a>. Having got the basic app up and running, the next step was to get events and requests (including data transfer) working between client and server.  I spent a lot of time today reading over documentation, forums and apis, only to find there wasn&#8217;t a quick example of what I needed. So, for the benefit of the internets, here&#8217;s one I made earlier&#8230;!</p>
<p><strong>Overview</strong><br />
In this example, we have part of an AS3 file used in our client application. The client attempts to connect to the SmartFoxServer 2X instance and join a room. Once we&#8217;ve joined the room (I&#8217;ve trimmed out all the necessary event listeners in the example, but they&#8217;re easy to work out), the server will send a response to the client with some data. On the client side, we&#8217;ll dispatch an event for the server to listen to, resulting in a message displayed in the SmartFoxServer console.</p>
<p><strong>The Java Extension Classes</strong><br />
We&#8217;ll set up 3 java classes. One is the main extension class, the other two are our event/request handlers that are called as a result of server events or client requests. The key elements from the classes are blow:</p>
<p><b><i>Main Class: SimpleSmartFoxServerJavaExtension</i></b>. This is the main extension class and is where we&#8217;ll set up our handlers.</p>
<pre>
package simple.test;
public class SimpleSmartFoxServerJavaExtension extends SFSExtension
{
       @Override
       public void init()
       {
               trace("Initialising SmartFox Extension example");
               addRequestHandler("example_request", SimpleRequestHandler.class);
               addEventHandler(SFSEventType.USER_JOIN_ROOM, UserJoinedRoomHandler.class);
       }

       @Override
       public void destroy()
       {
               super.destroy();
               removeRequestHandler("example_request");
               removeEventHandler(SFSEventType.USER_JOIN_ROOM);
       }
}
</pre>
<p><b><i>Example class to handle client requests</b></i></p>
<pre>
package simple.test;
@Instantiation(InstantiationMode.SINGLE_INSTANCE)
public class SimpleRequestHandler extends BaseClientRequestHandler
{
       @Override
       public void handleClientRequest(User arg0, ISFSObject arg1)
       {
               trace("We've just handled the example_request that was dispatched by the client");
       }
}
</pre>
<p><b><i>Example class to handle server events</i></b></p>
<pre>
package simple.test;
public class UserJoinedRoomHandler extends BaseServerEventHandler
{
       @Override
       public void handleServerEvent(ISFSEvent arg0) throws SFSException
       {
               User user = (User)arg0.getParameter(SFSEventParam.USER);
               trace("Event Received. User has joined the Room: " + user.getName());

               //Same string as per SmartFoxClient's onExtensionResponse() function.
               //Returns some mock data to the client
               send("server_return_data", getReturnData(), user);
       }

       public ISFSObject getReturnData()
       {
               ISFSObject returnData = SFSObject.newInstance();
               returnData.putInt("foo", 123);
               return returnData;
       }

}
</pre>
<p>So once we&#8217;ve got our basic java classes written, we&#8217;ll want to update our ActionScript 3 class to work correctly with these examples&#8230;</p>
<p><strong>The AS3 Code</strong><br />
Here is the shortened (there&#8217;s no event listeners. You&#8217;ll need those!) code for working with events/requests. To save space in the example, I&#8217;ve bunched everything into the constructor with comments. Each step should have its own event listeners to check for successful completion before progressing.</p>
<pre>
public class SmartFoxClient
{
       private var smartFoxServer : SmartFox;

       public function SmartFoxClient()
       {
               smartFoxServer = new SmartFox();

               //I'm not including the standard login etc events, just the one for listening
               //for the example server extension responses.
               //We're going to connect to a room. Once we've connected to the room ok, the server should
               //dispatch an extension response via UserJoinedRoomHandler, which is caught in the
               //onExtensionResponse() function below.
               smartFoxServer.addEventListener(SFSEvent.EXTENSION_RESPONSE, onExtensionResponse);

               //Connect to your server instance
               smartFoxServer.connect("localhost", 9933);

               //Once connected (use event listeners), we want to Login to a SmartFoxServer Zone:
               smartFoxServer.send(new LoginRequest("MyUsername", "MyPassword", "Zone, e.g SimpleChat"));

               //Once logged in to the zone (again, use event listeners), we can join a room:
               smartFoxServer.send(new JoinRoomRequest("MyRoomName"));

               //At this point, we have hopefully successfully joined the SmartFoxServer room, and now we'll
               //test that the server can pick up our events and accompanying data object...
               smartFoxServer.send(new ExtensionRequest("example_request", anISFSObject));

               //You should see the trace message from SimpleRequestHandler output in your SmartFoxServer console.
       }

       public function onExtensionResponse(evt : SFSEvent) : void
       {
               trace("Got an expansion response");
               var params : ISFSObject = evt.params.params;
               var cmd : String = evt.params.cmd;

               switch(cmd)
               {
                       //Refer to the java UserJoinedRoomHandler class to see where
                       //this string is sent from
                       case "server_return_data":
                               trace("Returned value of params.foo: " + params.getInt("foo");
                               break;
               }
       }

       …
</pre>
<p><strong>Getting it Working</strong><br />
Once you&#8217;ve got your client and server code ready, the first thing you&#8217;ll need to do is wire up your extension via the SmartFoxServer Admin tool. To do this, you&#8217;ll need to follow these basic steps:</p>
<ul>
<li>Compile the java source into a jar file. You&#8217;ll end up with one file &#8211; we&#8217;ll call ours extensionExample.jar</li>
<li>Copy this jar file into the &#8220;extensions&#8221; folder of your SmartFoxServer installation. For example, on my Mac&#8217;s local install, this would be something like: /Applications/SFS2X-RC1a/SFS2X/extensions/exampleExtension/exampleExtension.jar.</li>
<li>Fire up your SmartFoxServer and access your admin client.</li>
<li>Navigate to the &#8220;Zone Configurator&#8221; section and select the Zone that you chose to connect to in your AS3 code.</li>
<li>Below the list of Zones are buttons to add/remove/edit them. Edit your chosen zone and proceed to the Zone Extensions tab.</li>
<li>The two most important fields here are the Name and File ones. Name refers to the extension name. In this case, it would be set to &#8220;exampleExtension&#8221;. The File field is for the main class (including package name) of your extension jar. In the example here, it would be &#8220;simple.test.SimpleSmartFoxServerJavaExtension&#8221;. Once you&#8217;ve completed these fields, apply your changes.</li>
<li>Now for the fun bit! Restart your SmartFoxServerInstance. If you follow the console logs, you should see your extension being initialised (if you kept the traces in). This is where you&#8217;ll also see any stacktraces, enabling you to patch up any issues.</li>
<li>Fire up your Flash application and follow any steps required to test the communication. Make sure to keep an eye on the SmartFoxServer console as well as the flashlog. If all goes well, you&#8217;ll see the expected output! If not, don&#8217;t worry as the console should at least give you a good clue as to why not.</li>
</ul>
<p><strong>Issues I Encountered</strong><br />
One issue I found once the code was compiling ok was that there were other extensions trying to intercept my test events. They threw errors stating that that extension didn&#8217;t handle my custom events (obviously!). In my case, I was able to disable the other extension as it wasn&#8217;t needed. This stopped the error, but a better solution would need to be found in you were in need of multiple extensions.</p>
<p><strong>Useful Links</strong><br />
And finally, here are some useful links to the 2X APIs and other documentation:</p>
<ul>
<li><a href="http://www.smartfoxserver.com/2X/">SmartFoxServer 2X Main Page</a> &#8211; with links to downloads, overviews etc</li>
<li><a href="http://docs2x.smartfoxserver.com/">SmartFoxServer 2X Docs</a> &#8211; Links to all 2X documentation</li>
<li><a href="http://docs2x.smartfoxserver.com/GettingStarted/admintool-ZoneConfigurator">Admin Tool&#8217;s Zone Configurator documentation</a> &#8211; Detailed overview of the Zone Configurator section mentioned in this post.</li>
<li><a href="http://docs2x.smartfoxserver.com/api-docs/asdoc/">AS3 API Docs</a></li>
<li><a href="http://docs2x.smartfoxserver.com/api-docs/javadoc/">Java Server Extesion API</a></li>
</ul>
<p>Hopefully that&#8217;s of some use to someone! Apologies for any typos, this was thrown together while fighting off a cold! <img src='http://www.catburton.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2011/01/11/smartfoxserver-2x-example-java-extension-for-client-server-communication-via-events-and-requests/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Error restarting Apache on OS-X (10.6.5): /usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument</title>
		<link>http://www.catburton.co.uk/blog/2011/01/04/error-restarting-apache-on-os-x-10-6-5-usrsbinapachectl-line-82-ulimit-open-files-cannot-modify-limit-invalid-argument/</link>
		<comments>http://www.catburton.co.uk/blog/2011/01/04/error-restarting-apache-on-os-x-10-6-5-usrsbinapachectl-line-82-ulimit-open-files-cannot-modify-limit-invalid-argument/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 16:15:46 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Dev]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=131</guid>
		<description><![CDATA[I was just trying to restart Apache on my Mac when it gave this error (it usually works fine): sudo apachectl restart /usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument After a quick Google, it sounds like this was due to a change made to apachectl in a recent update. To fix [...]]]></description>
			<content:encoded><![CDATA[<p>I was just trying to restart Apache on my Mac when it gave this error (it usually works fine):</p>
<pre>
sudo apachectl restart
/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument
</pre>
<p>After a quick Google, it sounds like this was due to a change made to apachectl in a recent update.  To fix this, you&#8217;ll need to edit your apachectl file. Find the problem line (in this case, 82), and change it from:</p>
<pre>
ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"
</pre>
<p>to&#8230;</p>
<pre>
ULIMIT_MAX_FILES=""
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2011/01/04/error-restarting-apache-on-os-x-10-6-5-usrsbinapachectl-line-82-ulimit-open-files-cannot-modify-limit-invalid-argument/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Print Screen&#8221; on Mac OS-X</title>
		<link>http://www.catburton.co.uk/blog/2010/11/22/print-screen-on-mac-os-x/</link>
		<comments>http://www.catburton.co.uk/blog/2010/11/22/print-screen-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 20:28:14 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=115</guid>
		<description><![CDATA[I am both a Mac and a PC user. I like both OS-X and Windows 7. I tend to use both regularly but for different purposes: gaming on PC, photo editing etc on my Mac. By regularly using both, I often find features missing in BOTH operating systems. Most of these I can live without; [...]]]></description>
			<content:encoded><![CDATA[<p>I am both a Mac and a PC user. I like both OS-X and Windows 7. I tend to use both regularly but for different purposes: gaming on PC, photo editing etc on my Mac. By regularly using both, I often find features missing in BOTH operating systems. Most of these I can live without; others feel like I&#8217;ve had a limb removed and make it almost painful to use. Today, that missing feature was the availability of a Print Screen button equivalent on Mac OS-X.</p>
<p>I&#8217;ve tried a few times to figure out the not-so-intuitive key mappings on the mac so that I can do a single-button screenshot, rather than an awkward multi-button key combo. The main reason I wanted to be able to do this is for quick screenshots when testing Moshi at work.</p>
<p>Often, graphical glitches or bugs are only on screen for a fraction of a second. This means that entering a combo of Cmd+Shift+4, then space, then click is not entirely feasible&#8230;unless you have more than two hands and cat-like reflexes!</p>
<p>Today, I finally modified the keyboard shortcuts, so that I can hit one of the function keys at any point and it will save a screenshot to the desktop. Handy! Here&#8217;s how:</p>
<ul>
<li>Open up System Preferences</li>
<li>Go to Keyboard (or Keyboard &amp; Mouse, depending if you&#8217;re on Leopard or Snow Leopard)</li>
<li>Select the Keyboard Shortcuts Tab</li>
<li>Select the shortcut you want to re-map (there&#8217;s a Screenshots section containing the possible options: copy to clipboard, save to desktop etc).</li>
<li>Now for the entirely unintuitive bit. Hit tab. Yep, tab. Note how there&#8217;s no hint to do that <img src='http://www.catburton.co.uk/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>You should now be able to enter a new key combo.</li>
</ul>
<p>Hurrah! You can now take screenshots with merely two hands and standard human reflexes!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2010/11/22/print-screen-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Steam Error: &#8220;Registry in use&#8230;&#8221;</title>
		<link>http://www.catburton.co.uk/blog/2010/05/29/steam-error-registry-in-use/</link>
		<comments>http://www.catburton.co.uk/blog/2010/05/29/steam-error-registry-in-use/#comments</comments>
		<pubDate>Sat, 29 May 2010 11:22:33 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/2010/05/29/steam-error-registry-in-use/</guid>
		<description><![CDATA[I just encountered an issue where Steam would not launch. It simply displayed this error: “The registry is in use by another process, timeout expired” For anyone else who has this problem, it’s due to background processes interfering with Steam. There are a fair few pointless processes running when you boot into Windows 7. To [...]]]></description>
			<content:encoded><![CDATA[<p>I just encountered an issue where Steam would not launch. It simply displayed this error:</p>
<p>“The registry is in use by another process, timeout expired”</p>
<p>For anyone else who has this problem, it’s due to background processes interfering with Steam. </p>
<p>There are a fair few pointless processes running when you boot into Windows 7. To fix this (and hopefully resolve the Steam issue), click run msconfig and select the services tab. Check the “Hide all Microsoft Services” button, then hit “Disable All”. This should stop any non-essential services running on startup, and should enable you to run Steam.</p>
<p>For more info, visit the <a href="http://supportwiki.steampowered.com/wiki/The_registry_is_in_use_by_another_process%2C_timeout_expired" target="_blank">Steam support page</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2010/05/29/steam-error-registry-in-use/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 + Bioshock + Realtek = No in game Sound&#8230;</title>
		<link>http://www.catburton.co.uk/blog/2010/02/06/windows-7-bioshock-realtek-no-in-game-sound/</link>
		<comments>http://www.catburton.co.uk/blog/2010/02/06/windows-7-bioshock-realtek-no-in-game-sound/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 22:22:04 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/2010/02/06/windows-7-bioshock-realtek-no-in-game-sound/</guid>
		<description><![CDATA[I’ve just been trying to play Bioshock for the first time on my recently bought Windows 7 machine, and have been having issues with the audio. All the startup sounds and cutscene movies work perfectly, however there was no sound in game or when clicking menu buttons. After lots of searching in forums and trying [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve just been trying to play Bioshock for the first time on my recently bought Windows 7 machine, and have been having issues with the audio. All the startup sounds and cutscene movies work perfectly, however there was no sound in game or when clicking menu buttons.</p>
<p>After lots of searching in forums and trying numerous suggested solutions (running the .exe in Vista/XP compatibility modes etc), I’ve found the solution that works on my PC. The issue appears to be that Stereo Mixing was disabled by default. </p>
<p>Here’s a link to a support page with instructions on how to fix this:</p>
<p><a title="http://support.take2games.com/help/take2/take2_games/q632" href="http://support.take2games.com/help/take2/take2_games/q632">http://support.take2games.com/help/take2/take2_games/q632</a></p>
<p>Hope that is of some help to someone!</p>
<p>*Mumbles something about why I switched to console gaming for many years*</p>
<p>&#160;</p>
<p>[Edit: I had massive issues with audio in GTA IV a while back too. Incredibly stuttery/crackly sound in game, making it completely unplayable. This fix appears to have resolved that issue too.]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2010/02/06/windows-7-bioshock-realtek-no-in-game-sound/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Switching from my Mac to Windows 7&#8230;</title>
		<link>http://www.catburton.co.uk/blog/2009/11/26/switching-from-my-mac-to-windows-7/</link>
		<comments>http://www.catburton.co.uk/blog/2009/11/26/switching-from-my-mac-to-windows-7/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 21:30:35 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=30</guid>
		<description><![CDATA[I’ve been a Mac user for about 2 years now. That is, until this evening, when I set up my new Dell with Windows 7. I’ve had a few people ask me why I got a PC? Why not a Mac? Well, there are a few reasons, too many to fit into an @reply. Deciding [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been a Mac user for about 2 years now. That is, until this evening, when I set up my new Dell with Windows 7. I’ve had a few people ask me why I got a PC? Why not a Mac? Well, there are a few reasons, too many to fit into an @reply.</p>
<p>Deciding on whether to stick with OSX or switch to Windows was a tricky decision. I enjoy using my MacBook. It’s well designed, nice to use, and I like OSX. I actually spent many months pondering a new Mac. I didn’t want another laptop (my MacBook is fine). Neither did I want an iMac…seems a waste of a good screen when you want to upgrade. Mac Pro’s are incredibly shiney, but they incur a bankruptcy inducing amount of Steve tax.</p>
<p>So, buying a Mac was out of the question. Next idea? Hackintosh! I get to use OSX, but without the shockingly inflated hardware prices. Only one problem – I have to build and maintain this myself. I need to actually understand which components are and are not compatible with OSX. Now, I’m not really that kind of geek – I have no real interest in hardware etc – I’m all about the games, the coding…</p>
<p>So suddenly, the ideas of both a legit Mac, and a hackintosh seemed to fall through. Time to start taking a look at Windows!</p>
<p>I haven’t used Windows properly for a reasonably long time – 15 months ago at my previous job at [some investment bank]. And then, that was XP. I have never used Vista, nor do I ever want to. It seemed a bit strange contemplating switching back to Windows, when I’d happily used OSX for two years. Then I started to hear reviews of Windows 7. Reviews from people who would call themselves Apple fanboys (and girls). These reviews were good…very good!&#160; Time to ignore the hideous advertising campaign (seriously – whoever thought of those adds needs exterminating), and see if Windows 7 is good enough to drag me away from OSX.</p>
<p>I started looking at what I want to use my computer for, and what I’d want it to do. First and foremost, I am a gamer. I play WoW far too much, and…oh wait, no, that’s all I could seem to play on my Mac. Not only were the graphics rubbish, but the games availability was very poor. I want to be able to play the latest games, not wait forever for special Mac versions.</p>
<p>Next on my list of things I want to do? Games dev. I work as a flash developer by day (<a href="http://www.moshimonsters.com">www.moshimonsters.com</a>), so I need CS3, Eclipse, etc…all of which work on a Mac; all of which I’m assured run much faster on Windows. Fair enough, I thought – that’s worth a shot. And then, UDK was made available. Whilst I’m primarily an AS3 dev, I have this desire to try out more hardcore games dev. UDK is Windows only, as are lots of games dev tools. This is where the penny dropped and I decided to switch to Windows 7.</p>
<p>So that’s it – I’m a gamer who enjoys games dev. Windows 7 suits my needs far better than OSX, and so I have made the big switch.</p>
<p><strong>Currently missing:</strong> Expose, Cmd+Space to open apps… *thinks* … wow, that list is shorter than I expected!</p>
<p><strong>Currently loving:</strong> ZOMG! I has a print screen button! Oh, and this cheap, budget Dell keyboard is so much nicer to use than the horrid aluminium Apple one I used before. New PC is super speedy compared to my Mac. The UI of Windows 7 is lovely &#8211; very nicely designed and easy to use. …and that list is longer than I thought it would be!</p>
<p>&#160;</p>
<p>So far, so good! Here’s hoping I still like Windows 7 once the novelty has worn off… <img src='http://www.catburton.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2009/11/26/switching-from-my-mac-to-windows-7/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Awaiting the Razer Naga</title>
		<link>http://www.catburton.co.uk/blog/2009/11/08/awaiting-the-razer-naga/</link>
		<comments>http://www.catburton.co.uk/blog/2009/11/08/awaiting-the-razer-naga/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 13:54:34 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=28</guid>
		<description><![CDATA[Those who know me will know at least these two things about me: I am a geek and I&#8217;m a gamer. Or, to be more specific, I&#8217;m a little bit of a World of Warcraft addict. When I heard about the ultimate MMO gaming mouse, the Razer Naga, I simply had to get hold of [...]]]></description>
			<content:encoded><![CDATA[<p>Those who know me will know at least these two things about me: I am a geek and I&#8217;m a gamer.  Or, to be more specific, I&#8217;m a little bit of a World of Warcraft addict.</p>
<p>When I heard about the ultimate MMO gaming mouse, the Razer Naga, I simply had to get hold of one. I mean, it has 17 buttons. SEVENTEEN! What with that and the addons they&#8217;ve made for WoW, I just couldn&#8217;t resist. That&#8217;s just what my belf DK needs! Plus, I (foolishly) had been using an Apple &#8220;mighty&#8221; mouse for the last year, which has stopped scrolling and you can&#8217;t right click. Definitely time to purchase a decent gaming mouse!</p>
<p>So, I eagerly entered my details into play.com, and preordered this most awesome of mice&#8230;a month before it was due to be released. A little keen, perhaps, but with two weeks off work starting on the release date, this seemed like a logical thing to do! Time to sit bak and await the mouse of awesome&#8230;</p>
<p>&#8230;and wait&#8230;</p>
<p>&#8230;and wait some more&#8230;</p>
<p>The mouse was released on 28th October, which means by now, I should have had it for 11 days. That&#8217;s a lot of Wintergrasp action, a lot of dungeons&#8230;hell, it&#8217;s a lot of levelling my poor lvl62 rogue who&#8217;s still sat in Zangarmarsh!</p>
<p>So where is this illusive mouse, this awesome gadget of incredible button count? Since a couple of days after the release date, my order status on play.com has been set to &#8220;Awaiting stock&#8221;. Fine, I thought, I&#8217;ll be patient. What&#8217;s a couple of days to a gamer geek with 2 weeks off work&#8230;</p>
<p>I phoned play.com this morning to see what the status of this farce was. The response? &#8220;It&#8217;s not in stock. If you look at your order, you&#8217;ll see that.&#8221;. Well, thanks for that, genius. I know it&#8217;s not in stock, which is why I&#8217;m complaining to you first thing in the morning on a Sunday.</p>
<p>I grit my teeth, take a deep breath and calmly ask when it will be in stock. I mean, I&#8217;ve waited almost 2 weeks, what&#8217;s a few more days? &#8220;Well, it could take up to 28 days for it to come into stock&#8230;&#8221;. Wait. 28 days? I preordered a mouse at the start of October and you want me to wait until December for it? I think not.</p>
<p>I&#8217;ve now cancelled my play.com order as they are utterly useless. I shall not be ordering anything from them again. The super awesome mouse has now been ordered via EBuyer, who seem to have it in stock, hurrah! They&#8217;ve even confirmed it will arrive tomorrow! Double hurrah!</p>
<p>Now all I need is for my new PC to arrive tomorrow, and I&#8217;ll never need to leave my geek room again. Well, except to answer the door to the pizza delivery guy!</p>
<p>Full review of the mouse, and probably a Windows 7 one (I&#8217;ve been a Mac user for the last 2 years) will appear here soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2009/11/08/awaiting-the-razer-naga/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dawsons Creek and the Mac vs PC Debate</title>
		<link>http://www.catburton.co.uk/blog/2009/07/02/dawsons-creek-and-the-mac-vs-pc-debate/</link>
		<comments>http://www.catburton.co.uk/blog/2009/07/02/dawsons-creek-and-the-mac-vs-pc-debate/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 22:41:01 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=25</guid>
		<description><![CDATA[Recently, when taking a break from my usual nerd habits, I&#8217;ve been re-watching old seasons of Dawson&#8217;s Creek (I know, it&#8217;s tragic). Tonight, I saw the season 4 finale and couldn&#8217;t help but chuckle at this conversation between Dawson and his Dad. I should probably point out that this episode first aired in May 2001&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, when taking a break from my usual nerd habits, I&#8217;ve been re-watching old seasons of Dawson&#8217;s Creek (I know, it&#8217;s tragic).  Tonight, I saw the season 4 finale and couldn&#8217;t help but chuckle at this conversation between Dawson and his Dad.  I should probably point out that this episode first aired in May 2001&#8230;</p>
<p><em>[Scene: The Computer Store. Mitch and Dawson are looking at the laptop computers on display.]</em></p>
<p><em>Mitch: This baby does it all, Dawson. 850 megahertz, P3 processor, 128 megabytes of ram, 32-gig hard drive, DVD, 56k modem. What more could you want?</em></p>
<p><em>Dawson: I don&#8217;t know. A Mac, maybe?</em></p>
<p><em>Mitch: What?</em></p>
<p><em>Dawson: It&#8217;s become obvious to me that in life you&#8217;re either a Mac person or a pc person, and the choice defines you. Let me put it to you this way: Beatles or Elvis?</em></p>
<p><em>Mitch: Beatles.</em></p>
<p><em>Dawson: See? Exactly. This is no different.</em></p>
<p><em>Mitch: Dawson, I&#8217;ve done all the research. The T21 is by far the best buy, and that&#8217;s what we&#8217;re getting.</em></p>
<p><em>Dawson: Yeah, well, in that case, I&#8217;d just prefer you didn&#8217;t get me a laptop. </em></p>
<p>In the end though &#8211; Mitch surprised Dawson with a shiney new Mac. Good choice, I say!</p>
<p>EDIT: Here&#8217;s links to the two they were debating: <a href="http://www.thinkwiki.org/wiki/Category:T21">T21</a> and <a href="http://en.wikipedia.org/wiki/PowerBook_G4">PowerBook G4</a>.</p>
<p>(Script snippet from <a href="http://www.twiztv.com/scripts/dawsonscreek/season4/dawson-423.htm">twiztv.com</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2009/07/02/dawsons-creek-and-the-mac-vs-pc-debate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Akismet &#8211; WordPress spam checker</title>
		<link>http://www.catburton.co.uk/blog/2008/10/20/akismet-wordpress-spam-checker/</link>
		<comments>http://www.catburton.co.uk/blog/2008/10/20/akismet-wordpress-spam-checker/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 21:06:50 +0000</pubDate>
		<dc:creator>cat</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.catburton.co.uk/blog/?p=19</guid>
		<description><![CDATA[I&#8217;ve been suffering from a ridiculous amount of spam comments recently, and so have started using the Akismet spam checker. Already, I am noticing a massive improvement! Akismet has correctly marked as spam many messages and has successfully ignored those comments which are in fact valid. When comments are marked as spam, you are able [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been suffering from a ridiculous amount of spam comments recently, and so have started using the Akismet spam checker.  Already, I am noticing a massive improvement!</p>
<p>Akismet has correctly marked as spam many messages and has successfully ignored those comments which are in fact valid.  When comments are marked as spam, you are able to view these and either delete them, or reinstate the comment (at which point, Akismet learns from its mistakes, thus improving the accuracy over time).</p>
<p>I would thoroughly recommend that anyone experiencing spam issues in their WordPress site should check that the Akismet plugin is installed and enable it immediately! <img src='http://www.catburton.co.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.catburton.co.uk/blog/2008/10/20/akismet-wordpress-spam-checker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

