<?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>T=Machine &#187; Uncategorized</title>
	<atom:link href="http://t-machine.org/index.php/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://t-machine.org</link>
	<description>Internet Gaming, Computer Games, Technology, MMO, and Web 2.0</description>
	<lastBuildDate>Tue, 20 Jul 2010 09:43:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fixing Xcode&#8217;s Default Project templates (write iPhone apps more easily)</title>
		<link>http://t-machine.org/index.php/2010/06/25/fixing-xcodes-default-project-templates-write-iphone-apps-more-easily/</link>
		<comments>http://t-machine.org/index.php/2010/06/25/fixing-xcodes-default-project-templates-write-iphone-apps-more-easily/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 21:12:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=933</guid>
		<description><![CDATA[This post shows how to fix one of the biggest time-wasting aspects of Xcode: the default project. Every time you start writing a new app, you first typically waste 15-30 minutes &#8220;un-****ing&#8221; Apple&#8217;s defaults. The defaults are terrible.
e.g. they are effectively unusable with Apple&#8217;s own SVN integration (Apple clearly doesn&#8217;t use SVN internally), unless you [...]]]></description>
			<content:encoded><![CDATA[<p>This post shows how to fix one of the biggest time-wasting aspects of Xcode: the default project. Every time you start writing a new app, you first typically waste 15-30 minutes &#8220;un-****ing&#8221; Apple&#8217;s defaults. The defaults are terrible.</p>
<p>e.g. they are effectively unusable with Apple&#8217;s own SVN integration (Apple clearly doesn&#8217;t use SVN internally), unless you are the only person working on your project (&#8221;no teams allowed&#8221;). But the good news is &#8230; most of this can be fixed!<br />
<span id="more-933"></span></p>
<h4>Step 1: Find the project templates</h4>
<p>&#8230;usually somewhere buried inside /Library/Application Support/Developer/Shared/XCode</p>
<h4>Step 2: Copy *all* project templates into your home directory</h4>
<p>IF YOU DO NOT DO THIS, APPLE *WILL* DELETE YOUR CHANGES (every time you upgrade XCode, it sees your changes, and says to itself: &#8220;Oh. How cute! Something for me to destroy!&#8221; and promptly overwrites them)</p>
<p>Copy everything in:</p>
<p>/Library/Application Support/Developer/Shared/XCode/*</p>
<p>to:</p>
<p>/Users/[your user name]/Library/Application Support/Developer/Shared/XCode/[your company name]/*</p>
<p>replacing the bits in square brackets appropriately.</p>
<h4>Step 3: Start un-f***ing the defaults</h4>
<p>Now for the painful bit. Apple&#8217;s system for project templates is very basic, and what they&#8217;ve done is to create a separate template for EVERY combination of project type, platform (iPhone, iPad, and &#8220;both&#8221;), and tickbox options (with core data / without core data, etc).</p>
<p>You have to make the same changes in every single one of those projects. This is hours of work. But, once done &#8230; you are free of having to re-do this work on every new project you start.</p>
<p>Example fixes I like to do:</p>
<p>NOTE: Apple&#8217;s version of SVN requires that you split your project up into as many XCode groups as possible; only one person in an entire team is &#8220;allowed&#8221; to add/remove/rename files inside a single group. Anything else, and SVN trashes your XCode project file.</p>
<p>So, not only does organizing your project increase productivity (it&#8217;s quicker and easier to navigate), it means SVN will crash less often. Hooray!</p>
<h4>1. Create a Resources directory</h4>
<p>Apple &#8211; amazingly &#8211; didn&#8217;t bother to do this. They create a Resources group by default, that dumps all your (usually hundreds) of resources and images into the root directory.</p>
<p>So, delete the group, go to Finder (right-click on the Project itself in Groups&#038;Files, and select &#8220;reveal in finder&#8221;), create a Resources directory, then drag/drop the directory into XCode.</p>
<p>Result: it appears *exactly the same* on screen (sigh), but at least your image files will now get organized into their own neat directory.</p>
<h4>2. Create a Libraries directory</h4>
<p>Most apps use lots of libraries. Apple refuses to allow Frameworks on iPhone, so we&#8217;re forced to use Libraries instead. Framworks are neatly bundled into a single item inside XCode; Libraries are a mess of files. Since Apple gives us no choice, let&#8217;s at least make it a little less painful.</p>
<p>As for Resources directory above, create a Libraries directory. Anything you drag-drop into XCode&#8217;s Libraries group will be copied into the Libraries sub-directory.</p>
<h4>3. Fix the ObjectiveC Linker bug</h4>
<p>Apple&#8217;s linker has a minor bug that causes most libraries to fail to run; if you use any 3rd party library that was written in ObjectiveC (that is: nearly all of them on iPhone), you will probably hit this bug.</p>
<p>Every one of your targets MUST include this in the build settings:</p>
<p>&#8220;Other Linker Flags&#8221; : &#8220;-ObjC -all_load&#8221;</p>
<p>&#8230;hopefully Apple will fix this in XCode 4 &#8211; or just make it the default! For now, you know what to do: put it in as a new default :).</p>
<h4>4. Create 4 (or more) extra Targets</h4>
<p>XCode has a *LOT* of critical showstopper bugs that Apple has been slow to fix, especially in the area of &#8220;building your app and running it&#8221;. I frequently encounter these on other people&#8217;s projects. There is only one sane workaround for this, and that&#8217;s to do what XCode&#8217;s designers intended &#8211; but which Apple doesn&#8217;t help you with &#8211; make LOTS of Targets.</p>
<p>In XCode, a &#8220;Target&#8221; means:</p>
<p>A version of the app built to run on a specific piece of hardware, or with a specific code-signing</p>
<p>The App Store requires a unique code-signing.<br />
AdHoc copies require a unique code-signing.<br />
Running your app in &#8220;test mode&#8221; on a device &#8230; requires a unique code-signing.<br />
Running your app in the Simulator &#8230; is a different platform.<br />
Running your app on the iPad &#8230; is a different platform.</p>
<p>So that&#8217;s 5 unique targets right there. They ALL REQUIRE separate Targets. If you read Apple&#8217;s docs closely, you&#8217;ll see that the Developer Portal does &#8211; quietly &#8211; tell you to do this. Many people just constantly &#8211; manually &#8211; edit their build files, changing them back and forth. Nightmare!</p>
<p>Worse, XCode has several bugs where changing build files gets ignored, either for an amount of time (say 10 seconds) or until a specific event (say, rebooting OS X. Yes, really!).</p>
<p>So, it&#8217;s imperative that you set up separate Targets in XCode, and that you use them. Apple provides a control that does a fast switch between different Targets, so it&#8217;s literally just two clicks to switch at any time.</p>
<p>Each target also has &#8211; potentially &#8211; unique:<br />
 &#8211; libraries that it includes<br />
 &#8211; compiler flags<br />
 &#8211; resources<br />
&#8230;but by default, all the above are AUTOMATICALLY added to all Targets, so life is still easy.</p>
<p>Here&#8217;s the Targets that I find I need on every single iPhone app I write:</p>
<ol>
<li>appname App Store: this is the one that is configured for uploading to the App Store, and is codesigned for it
<li>appname Sim Local: ONLY compiles for the Simulator. Uses Compiler flags to use local resources rather than the internet. i.e. accesses our local Staging server for web fetches, so we can use test data (and so testing is much much faster). Anyone who writes internet-based apps and doesn&#8217;t use a Staging server is rather foolish.
<li>appname Sim LIVE: as for above, except it connects to the live servers. Useful for doing fast testing against Live data; I usually use this for checking reported bugs (it&#8217;s faster than constant synching to the device)
<li>appname iPhone: ONLY compiles for the iPhone
<li>appname AdHoc: creates an AdHoc copy. NB: this actually requires several extra files (entitlements, iTunesArtwork) as well as using a different codesigner
</ol>
<p>&#8230;although I haven&#8217;t adapted that list yet for iPad development. With universal binaries, I&#8217;m not sure how many of those I can merge, and how many I&#8217;ll have to duplicate.</p>
<h4>5. Replace Apple&#8217;s crappy source-code templates</h4>
<p>Do you like having stupid, fake &#8220;copyright&#8221; notices at the top of your source files? Using C-style doc comments no less (i.e. incompatible with all source-code-documentation systems)? No, me neither. If they were Doxygen, Javadoc, or similar comments they might at least be useful, but Apple didn&#8217;t bother with that.</p>
<p>So, again, you have to fix it yourself. This is similar to steps 1 and 2 above, but you take DIFFERENT files and you put them in a DIFFERENT folder. <a href="http://blog.highorderbit.com/2009/03/15/customizing-xcode-cocoa-touch-file-templates/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://blog.highorderbit.com/2009/03/15/customizing-xcode-cocoa-touch-file-templates/');">See here for a simple guide on how to do that</a>. Once you&#8217;ve made the copies, you can manually edit them and remove the cruft.</p>
<h4>6. Set the defaults for NIB files</h4>
<p>This is a bit trickier. If you edit the template for new NIB files, and hit save &#8230; Interface Builder corrupts the file.</p>
<p>You have to do this:</p>
<ol>
<li>duplicate the template file
<li>Edit the template file
<li>Save it
<li>Go to a command line, and run &#8220;diff NEWFILE OLDFILE&#8221;
<li>Open the old template file in TextEdit, and manually insert the SPECIFIC changes you made, while ignoring the changes that you didn&#8217;t make
</ol>
<p>If you don&#8217;t do this, weird stuff happens, like new NIB files getting confused about who their &#8220;File&#8217;s Owner&#8221; is, and putting &#8220;&lt;&lt;NAMEOFOFILESOWNER&gt;&gt;&#8221; or similar rubbish in there.</p>
<h4>Warnings</h4>
<p>There&#8217;s a few things to note, where XCode&#8217;s badly-written build code can collapse. No reason why it should do this, but it does.</p>
<h5>Don&#8217;t move plist files out of the root</h5>
<p>XCode (like all OS X applications) &#8220;knows&#8221; when a file is renamed or moved. It updates everything correctly EXCEPT the app&#8217;s main plist file. Since every target has a unique plist file, you need to keep all of them in the root, or the build stage will crash.</p>
<h5>Give each Target a unique &#8220;Product Name&#8221;</h5>
<p>XCode has poor exec code, and it gets &#8220;confused&#8221; if you have two targets that both output applications with the same filename. It seems to work, then it will occasionally mis-compile / mis-build &#8211; or even refuse to run at all.</p>
<p>The easy workaround is to edit the build-settings and give a different suffix to each Product Name &#8211; e.g. if the default is &#8220;appname&#8221; then make the AdHoc target be &#8220;appname AH&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/06/25/fixing-xcodes-default-project-templates-write-iphone-apps-more-easily/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>if youre waiting for me right now&#8230;</title>
		<link>http://t-machine.org/index.php/2010/04/15/if-youre-waiting-for-me-right-now/</link>
		<comments>http://t-machine.org/index.php/2010/04/15/if-youre-waiting-for-me-right-now/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 00:51:11 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=851</guid>
		<description><![CDATA[&#8230;I&#8217;m really.Sorry, just very very busy right.now!
Welcoming some new people to Red.Glasses (my iPhone development / agency company), and lots of projects all happening at once.
Given how many people I see out of work, I&#8217;m delighted to.be bucking the trend, but until.our new people get.up.to.speed, its a bit too much, and I&#8217;m looking forward to [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;I&#8217;m really.Sorry, just very very busy right.now!</p>
<p>Welcoming some new people to Red.Glasses (my iPhone development / agency company), and lots of projects all happening at once.</p>
<p>Given how many people I see out of work, I&#8217;m delighted to.be bucking the trend, but until.our new people get.up.to.speed, its a bit too much, and I&#8217;m looking forward to things calming down a bit.</p>
<p>PS: typos due to the nexus one and its broken touch sensor and badly designed keyboard. Don&#8217;t have time to get to a PC to.post: )</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/15/if-youre-waiting-for-me-right-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GameDev.net gone from internet?</title>
		<link>http://t-machine.org/index.php/2010/04/02/gamedev-net-gone-from-internet/</link>
		<comments>http://t-machine.org/index.php/2010/04/02/gamedev-net-gone-from-internet/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 12:54:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=837</guid>
		<description><![CDATA[Oh dear. Did someone ignore their &#8220;please renew your domain&#8221; warnings?

]]></description>
			<content:encoded><![CDATA[<p>Oh dear. Did someone ignore their &#8220;please renew your domain&#8221; warnings?</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-128.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-128.png" alt="Picture 128" title="Picture 128" width="785" height="418" class="aligncenter size-full wp-image-838" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/02/gamedev-net-gone-from-internet/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Thunderbried 3.0.x: make it download ONLY the selected folders</title>
		<link>http://t-machine.org/index.php/2010/03/25/thunderbried-3-0-x-make-it-download-only-the-selected-folders/</link>
		<comments>http://t-machine.org/index.php/2010/03/25/thunderbried-3-0-x-make-it-download-only-the-selected-folders/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 16:56:06 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=826</guid>
		<description><![CDATA[(Third and final Thunderbird post (promise!))
I had an idea; maybe if I deleted TB, then restarted it, and forced it to go offline first, THEN configured folders, THEN allowed it to connect, it might. just. work.
Of course, doing so discovered some obvious bugs in TB. Sigh. I got it mostly working in the end, after [...]]]></description>
			<content:encoded><![CDATA[<p>(Third and final Thunderbird post (promise!))</p>
<p>I had an idea; maybe if I deleted TB, then restarted it, and forced it to go offline first, THEN configured folders, THEN allowed it to connect, it might. just. work.</p>
<p>Of course, doing so discovered some obvious bugs in TB. Sigh. I got it mostly working in the end, after some false starts. So, if this is something you want to try, here&#8217;s how to do it:</p>
<p>1. Start TB, and give it your account details.</p>
<p>You want it to look like this (see note above; if you don&#8217;t do this correctly, you&#8217;ll get different settings, with no SSL/TLS)</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-95.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-95.png" alt="Picture 95" title="Picture 95" width="481" height="114" class="aligncenter size-full wp-image-828" /></a></p>
<p>2. QUICKLY go to offline mode (next step) or &#8230; unplug your internet cable &#8211; this may be easier</p>
<p>Why on *earth* do you have to do this?</p>
<p>Well &#8230; there&#8217;s a major bug in TB. If you do NOT create an account *the first time the app launches*, then you can never create a Gmail account. The code that configures email accounts *will not run* after that first launch.</p>
<p>Really, I&#8217;m serious: try it. It will &#8211; if you&#8217;re lucky &#8211; try to configure your gmail account with all encryption turned off, thereby sharing your emails with everyone on the network. Nothing you can do will make it accept SSL/TLS. Even typing the port number manually, it fails to work.</p>
<p>BUT &#8230; if you allow it to configure the account on first-run, it will correctly setup everything as SSL/TLS</p>
<p>3. Go to offline mode</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-96.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-96.png" alt="Picture 96" title="Picture 96" width="594" height="434" class="aligncenter size-full wp-image-827" /></a></p>
<p>4. Go to Synchronization settings (from the same menu &#8211; File menu)</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-97.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-97.png" alt="Picture 97" title="Picture 97" width="735" height="244" class="aligncenter size-full wp-image-829" /></a></p>
<p>Click the ADVANCED button (it&#8217;s not advanced, it&#8217;s basic, but this is a hangover from the Mozilla Mail days, when the GUI for configuring the app was poorly arranged)</p>
<p>5. De-select the folders that Thunderbird should never have pre-selected in the first place</p>
<p>NB: this is language dependent! Google &#8220;kindly&#8221; names some of these folders depending on your regional language. Great idea, unfortunately it makes config / instructions a bit more tricky.</p>
<p>In the UK (this is different in USA!), the folders you must untick are:</p>
<ul>
<li>Bin
<li>Trash
<li>[Google Mail]
<li>[Google Mail]Bin
</ul>
<p>Like this:<br />
<a href="https://t-machine.org/wp-content/uploads/Picture-98.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-98.png" alt="Picture 98" title="Picture 98" width="452" height="181" class="aligncenter size-full wp-image-830" /></a></p>
<p>and this:</p>
<p>6. Are you finished ? No, you aren&#8217;t; There&#8217;s some &#8220;magic&#8221; folders left&#8230;</p>
<p>On the left, under Inbox, there are a couple of magic folders that don&#8217;t appear in the synch list &#8211; but will synch automatically, and kill your disk space. One of them in particular: &#8220;All Mail&#8221; (that is: every single email that Gmail has for you, ever, anywhere. All unsorted)</p>
<p>You have to right-click, and go to the 3rd tab, and deselect the checkbox, to make this safe:</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-101.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-101.png" alt="Picture 101" title="Picture 101" width="793" height="183" class="aligncenter size-full wp-image-832" /></a></p>
<p>You MUST also do a difficult one &#8211; the Trash folder.</p>
<p>Thunderbird will *not allow you* to deselect this one, but you have to expand it, and inside find the &#8220;Bin&#8221; and &#8220;Trash&#8221; folders, and manually deselect them as with &#8220;All Mail&#8221;.</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-102.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-102.png" alt="Picture 102" title="Picture 102" width="183" height="71" class="aligncenter size-full wp-image-834" /></a></p>
<p>NB: in the attached screenshot, I hadn&#8217;t realised this was needed, so you can see it&#8217;s downloaded my whole Trash folder from the server. Ugh.</p>
<p>NB: yes, in theory you have *already* deselected those folders. But with Gmail you can easily end up with two copies of the folders, both with the same name, but in different subfolders. Depends which clients you&#8217;ve used with Gmail in the past (ironically, in my case, they exist because I ran an earlier version of Thunderbird, where the Gmail integration wasn&#8217;t so good).</p>
<p>(you may also want to do the same for Sent Mail and Spam &#8211; depending on personal preference / need)</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-100.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-100.png" alt="Picture 100" title="Picture 100" width="290" height="228" class="aligncenter size-full wp-image-833" /></a></p>
<p>7. Finally (finally!) you can de-enable Work Offline, from the File menu</p>
<p>Now what?</p>
<p>Well, nothing happens. Because Thunderbird is &#8220;magic!&#8221;.</p>
<p>If you wait long enough, and you&#8217;re lucky, it will magically start to synch.</p>
<p>If you don&#8217;t like waiting, staring at a computer, you can force it to download &#8211; go to the File menu, and from the Offline submenu, select Download now.</p>
<p>HOWEVER once again there are issues: this will work outside the normal Activity Window system, so your download will be in the foreground, and doesn&#8217;t even appear as an &#8220;Activity&#8221;. Sigh. So, you might want to try waiting for the &#8220;magic&#8221; to happen instead, and hope you get lucky.</p>
<p>(in theory, it should be a 10 minute wait at most, but earlier versions of TB 3 used to have severe problems with this, sometimes never synching at all)</p>
<h4>Summary</h4>
<p>This is still imperfect. Thunderbird insists on &#8220;indexing&#8221; all 5,000 of my Sent Mail contents &#8211; although at least it&#8217;s no longer trying to download them all locally. It also insists on &#8220;indexing&#8221; the contents of things like &#8220;All Mail&#8221;, which is completely incorrect.</p>
<p>But I can find no way to remove the annoying &#8220;All Mail&#8221; folder, and if you ever click on it accidentally, then BAM! the expensive processing starts. The best you can do is use the little buttons at the top left hand side to switch mode to &#8221;</p>
<p>Oh &#8211; and you aren&#8217;t allowed to stop it. The Activity Manager is missing a feature (which is already in bug reports from last year &#8211; I remember seeing people ask for it) : a &#8220;click to cancel&#8221; button for each activity.</p>
<p>Hopefully, though, so long as you remember to avoid clicking on those magic folders, you can at least make TB work normally&#8230;</p>
<p>Ditto for all the folders we chose not to download locally &#8230; and, ditto, I can&#8217;t find a way to remove them from the list, so there&#8217;s no way to stop myself from accidentally clicking one.</p>
<p>There are a few other things you should do too, to make up for the incorrect GMail setup. For instance, you should go to Thunderbird settings, and DISABLE the &#8220;save copy of messages in Sent folder&#8221;, because GMail will automatically do that on the server side anyway.</p>
<h4>PS: &#8230; ARRRRRRRRRRGGGGGHHHHH!!!!!</h4>
<p>I was just about to press the post button, when I noticed something horrific.</p>
<p>TB just started downloading the 5,000 emails in a &#8220;Bin&#8221; folder &#8230; somewhere &#8230; despite my very clear instructions not to.</p>
<p>This is a buggy load of crap. Try the workarounds listed in this post &#8211; see if they work for you. But, ultimately &#8220;Don&#8217;t use it&#8221; is my advice.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/25/thunderbried-3-0-x-make-it-download-only-the-selected-folders/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Earth Eternal: Short Review</title>
		<link>http://t-machine.org/index.php/2010/01/18/earth-eternal-short-review/</link>
		<comments>http://t-machine.org/index.php/2010/01/18/earth-eternal-short-review/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 13:13:05 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=792</guid>
		<description><![CDATA[It&#8217;s a REALLY short review (but bear with me on this): they wouldn&#8217;t allow me to play.
That came as a major shock. I didn&#8217;t set out to write about EE, I just wanted to have a look for myself, but this changed my mind. I&#8217;m probably not the target audience anyway, so take this with [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a REALLY short review (but bear with me on this): they wouldn&#8217;t allow me to play.</p>
<p>That came as a major shock. I didn&#8217;t set out to write about EE, I just wanted to have a look for myself, but this changed my mind. I&#8217;m probably not the target audience anyway, so take this with salt, but IMHO it raises some interesting points.</p>
<h4>Alpha is the new closed-beta; closed beta is the new beta; beta is the new launch</h4>
<p>The game is officially in Beta, I believe. Is that an excuse for what follows?</p>
<p>IMHO and IME: No. Within the context of &#8220;MMO&#8217;s&#8221;, and especially in the context of the web (look at the various Google products that are technically still in beta), you can no longer hide behind that as you once could. </p>
<p>I did experience a few small parts of the EE experience along the way, so here they are:</p>
<ol>
<li>You are not allowed to play the game straight-off; you are required to provide personal info etc before even being shown a screenshot of the game, let alone running the game itself
<li>Copy/Paste is disabled in the registration form. It works for the &#8220;name&#8221; field, but not for the email and password fields.
<li>My main email address is on a domain name that &#8220;Email provider is not supported, try another email address.&#8221;
</ol>
<p>(in desperation, I tried bugmenot.com, but unfortunately Sparkplay has already deleted the only account on there)</p>
<p>For any mainstream PC MMO you&#8217;d call this a bizarre over-reaction on my part (most of them would already have taken my credit-card number, so few people will stop to quibble about email address issues). But this isn&#8217;t one of those games&#8230;</p>
<h4>&#8220;Finally, a <em>real</em> MMO for your browser&#8221;</h4>
<p>(that&#8217;s the Earth Eternal tagline)</p>
<p>O, RLY?</p>
<p>Let&#8217;s get this straight. 15 years after the web became popular, you&#8217;re telling me that &#8220;the browser-experience&#8221; is:</p>
<ol>
<li>It&#8217;s Windows-only (!!!) [BTW: despite *already knowing* that I'm running a Mac, they take your personal info *before* telling you this]
<li>I&#8217;m not allowed to try the product before I use it
<li>I&#8217;m not allowed to use an email address of my choice, I have to use one that the website-ownser &#8220;approves&#8221; of
<li>The website-owner specifically writes code to disable basic features of my web browser
</ol>
<p>In a world of Kongregate &#8211; where I can play several MMO&#8217;s *right now*, on any computer, some of them with no signup &#8211; you&#8217;ve got to be kidding me.</p>
<p>I&#8217;ve known Matt for years, and I&#8217;ve watched with interest the trajectory of Achaea / IRE / Sparkplay. It&#8217;s been an interesting journey, from the years of declaring that 3D graphics were great but unnecessary for commercial viability (with his own Achaea the poster-child), to today&#8217;s VC-funded 3D MMO.</p>
<p>There&#8217;s an irony there, especially if you dig out Matt&#8217;s frequent public statements on 3D games in the past &#8211; but in context it all makes sense. I mention it pre-emptively, so I can knock it down :). Yes, Matt said such things &#8211; but at the time he also actively proved that you could make a living off non-3D games. He showed that with controlled budgets, intelligent business models, and controlled scope &#8230; it worked. It was small revenues, small profits, but it was profitable. Many of the lessons that he shared have been picked up over the years and re-used by 3D games in the race to drive down their own costs, and adopt more competitive business models.</p>
<p>So &#8230; I don&#8217;t care about the change in stance (hey, the world has changed a lot in that time), but &#8230; I do care that someone who taught so many people how to avoid the high-barrier-to-entry business models manages to shut me out of playing his first graphical MMO.</p>
<h4>Compare and contrast&#8230;</h4>
<p>I&#8217;ve already mentioned <a href="http://Kongregate.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://Kongregate.com');">Kongregate</a>. The vast majority of games there require no login, including some small (but grind-tastic) MMOs. The most recent substantial MMO to appear on there *does* require that you already have a Kong account, sadly. (Although, incidentally, if you install the Kong Facebook app, it silently creates an invisible account + logs you in, so it&#8217;s possible you&#8217;d play that MMO without ever knowingly creating an account)</p>
<p>I suspect that <a href="http://www.maidmarian.com/SherwoodLanding.htm" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.maidmarian.com/SherwoodLanding.htm');">Sherwood</a> still doesn&#8217;t require reg &#8211; when I used to play, it certainly didn&#8217;t, and IIRC from conversations with Gene, this was something he actively chose to retain. Ironically, I couldn&#8217;t double-check this: Adobe&#8217;s current installer for Shockwave has a chunk of badly written code that attempts to shutdown &#8220;all web browsers&#8221; before it will run &#8211; even if I&#8217;m only installing in one of the browsers.</p>
<p>So &#8230; EE may be a great game &#8230; and it may be launchable from within a browser &#8230; but it&#8217;s still fighting the browser as much as complementing it.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/18/earth-eternal-short-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated &#8211; Simple maths game</title>
		<link>http://t-machine.org/index.php/2009/12/10/updated-simple-maths-game/</link>
		<comments>http://t-machine.org/index.php/2009/12/10/updated-simple-maths-game/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:53:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=771</guid>
		<description><![CDATA[I was too busy to post at the time, but Apple recently approved an update to my first ever iPhone app [iTunes Store link].
I&#8217;m using this app as a personal experiment in designing educational and learning games. Unfortunately, this update took something like 4 months to get through submission (rejected twice, first time for a [...]]]></description>
			<content:encoded><![CDATA[<p>I was too busy to post at the time, but Apple recently approved <a href="itms://itunes.apple.com/us/app/braingame-summation/id299473147?mt=8" onclick="javascript:pageTracker._trackPageview('/outbound/article/itms://itunes.apple.com/us/app/braingame-summation/id299473147?mt=8');">an update to my first ever iPhone app [iTunes Store link]</a>.</p>
<p>I&#8217;m using this app as a personal experiment in designing educational and learning games. Unfortunately, this update took something like 4 months to get through submission (rejected twice, first time for a missing &#8220;cancel&#8221; button, second time for using private APIs) &#8230; so it&#8217;s been hugely delayed.</p>
<p>Last year, I spent a lot of time investigating a new idea for a startup that would make online games used solely for education. This is a clone of one of the demo games we made as part of the investor presentation.</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-11.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-11.png" alt="Picture 11" title="Picture 11" width="207" height="385" class="aligncenter size-full wp-image-772" style="float:left" /></a></p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-12.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-12.png" alt="Picture 12" title="Picture 12" width="207" height="385" class="aligncenter size-full wp-image-773"  style="float:left" /></a></p>
<p><a href="https://t-machine.org/wp-content/uploads/summation-front-title.png" ><img src="https://t-machine.org/wp-content/uploads/summation-front-title.png" alt="summation front title" title="summation front title" width="207" height="385" class="aligncenter size-full wp-image-777" /></a></p>
<p>The &#8220;experimental&#8221; part is that I&#8217;ve been trying out different variations on the social and online aspects. Most of that is missing in the current version &#8211; to get it through submission, I ended up ripping out most of it.</p>
<p>But now that it&#8217;s been accepted, I&#8217;ll be updating it a lot more, gradually adding features back in (e.g. Facebook integration, which I originally had working a month before Facebook Connect went live).</p>
<p>By the way &#8230; For the record, although the app is a paid one, and I&#8217;ve made a bunch of apps since, I&#8217;ve never earned a penny from this first one &#8211; it&#8217;s never hit the minimum threshold of payments (approx $250) before Apple actually pays you.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/12/10/updated-simple-maths-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heavy Traffic: 750,000 hits in 3 days</title>
		<link>http://t-machine.org/index.php/2009/11/29/heavy-traffic-750000-hits-in-3-days/</link>
		<comments>http://t-machine.org/index.php/2009/11/29/heavy-traffic-750000-hits-in-3-days/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 01:52:10 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=764</guid>
		<description><![CDATA[If I seem a little distracted &#8230;
2 weeks ago, I started a small blog called App Rejections. Here&#8217;s the traffic graph for the first two weeks. The tallest peak over towards the right is 25,000 unique visitors hitting the site:

It could have been worse; being a die-hard pessimist when it comes to server management, I&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>If I seem a little distracted &#8230;</p>
<p>2 weeks ago, I started <a href="http://apprejections.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://apprejections.com');">a small blog called App Rejections</a>. Here&#8217;s the traffic graph for the first two weeks. The tallest peak over towards the right is 25,000 unique visitors hitting the site:</p>
<p><a href="http://t-machine.org/wp-content/uploads/traffic-graph-ar-3-days.png" ><img src="http://t-machine.org/wp-content/uploads/traffic-graph-ar-3-days.png" alt="traffic graph ar 3 days" title="traffic graph ar 3 days" width="326" height="130" class="aligncenter size-full wp-image-765" /></a></p>
<p>It could have been worse; being a die-hard pessimist when it comes to server management, I&#8217;d left the webserver &#8220;throttled&#8221; to a fraction of max connections. The jumps in traffic when I selectively removed that throttling suggest that overall perhaps 10% of visitors couldn&#8217;t get through (as high as 35% at peak times).<br />
<span id="more-764"></span><br />
I *believe* there will be no performance problems now. I should be able to take those peaks again without the server dieing &#8211; I&#8217;ve put some simple cheats in place, like a pre-generated static front page that I manually cache. Although I&#8217;m also hoping to double the RAM in that server (it&#8217;s only got 1GB right now!).</p>
<h4>What happened?</h4>
<p>Well, apart from the obvious (lots of news sites picked up the site, and a few big-hitters on Twitter too, the biggest being someone with almost 1 million followers. Awesome! But also &#8230; Argh! Webserver death!).</p>
<p>Actually, what happened was my own laziness combined with a cluster**** between Apache2 and PHP5.</p>
<p>Basically &#8230; PHP is a fine language with a sometimes-dubious runtime and a terrible set of libraries, much of which remained incompatible with Apache2 for a very long time. Allegedly, some core parts of PHP&#8217;s sphere of libs are *still* only compatible with Apache1 (or the backwards-compatible part of Apache2 &#8211; i.e. none of the performance boost). (really? is this still true? hard to believe)</p>
<p>And while I *should* have been running Apache2 in modern mode, ditto PHP5, the last time I checked PHP and my PHP libs, they weren&#8217;t yet compatible with Apache2. There are workarounds, but they were enough effort (and this is just a small server) that I hadn&#8217;t bothered. In particular, I probably should have setup FastCGI to workaround the PHP incompatibilities. But it&#8217;s been a LONG time since I&#8217;ve used FastCGI&#8230;</p>
<p>Running Debian, I&#8217;d left this server with the standard PHP setup: Apache2 in backwards-compatibility mode, and PHP in a default config. This server does relatively little webserving; I figured it wouldn&#8217;t matter much. Especially with the &#8220;pessimistic&#8221; Apache2 settings.</p>
<p>Unfortunately &#8230; Apache2 in compatibility mode reserves RAM per HTTP connection, and never releases it, even after its no longer needed. Even with my concurrent connections throttled to a low sensible number (20 in this case), *some PHP process somewhere* was taking advantage of the oodles of RAM, and sucking up all the RAM in my server.</p>
<p>For no reason that I can tell. Which is worrying.</p>
<p>I&#8217;ve now put PHP back down to a hard limit of a few tens of megabytes, and &#8211; so far as I can tell &#8211; no part of any PHP app is failing. I&#8217;ve also set a 100-requests limit per process, which will force Apache2 to recycle *all* RAM every twenty minutes or so at high load.</p>
<p>I&#8217;ve de-throttled the concurrency, so the webserver can still use all available RAM if it really wants to, but this time only under high traffic &#8211; not &#8220;merely because some crappy PHP script somewhere is getting greedy&#8221;. There&#8217;s no complaints in the error logs. I removed Cacti from this server a few months ago (there were bugs in the Debian graphs that I got fed up with), so it&#8217;s not that.</p>
<p>Wordpress? Probably&#8230;</p>
<h4>What I didn&#8217;t try, but should have</h4>
<p>For some reason, I don&#8217;t have any PHP accelerator on that server. There was a reason, I can&#8217;t remember what it was.</p>
<p>If I had, then I believe I would still have had the same problems, mainly because the real problem was PHP using up too much RAM. But *maybe* things would have run a lot better &#8211; I don&#8217;t know, because I didn&#8217;t try.</p>
<h4>The unfortunate pain of PHP and RAM</h4>
<p>The thing that I find annoying in this (apart from the long slowness of getting full Apache2 compatibility) is the number of standard PHP apps that &#8220;demand&#8221; hundreds of megabytes of RAM each &#8230; per request. If you google the PHP error message for &#8220;script ran out of memory&#8221; (I can&#8217;t remember the exact text)  for any particular webapp, you&#8217;ll find hundreds of hits from developers saying &#8220;edit php.ini to increase that limit to 200Mb&#8221; or similar.</p>
<p>At 200Mb, your 2Gb RAM webserver will thrash (and soon crash) the moment ten people try to view a webpage or download anything &#8211; CSS, JPG, GIF, etc &#8211; at the same time.</p>
<p>Ten people. Right. And that&#8217;s assuming you don&#8217;t have a database anywhere, or any other services running.</p>
<p>And the sad truth is that there&#8217;s nothing you can do about it (unless you have a *lot* of time to devote to rewriting the PHP apps yourself, or engaging in various convoluted sysadmin tricks like having two independent copies of the webserver &#8211; one for the app, one for the rest of the world).</p>
<p>A lot of modern CMS&#8217;s seem to &#8220;recommend/require&#8221; 70-120Mb. This is insane. What are they *doing* with all that RAM? More to the point &#8230; WHY?</p>
<p>In the end, it&#8217;s probably an example of my number 1 reason to avoid PHP:</p>
<blockquote><p>
99% of PHP programmers either have no idea what they&#8217;re doing &#8230; OR &#8230; so utterly over-engineer every PHP app that it does far too more than what PHP is meant for *and optimized for*
</p></blockquote>
<p>Sometimes I wonder whether as much as 30% of all PHP programmers secretly wish they were writing J2EE apps instead, but won&#8217;t admit it to themselves</p>
<p>The kind of things that a CMS is doing to soak up 100Mb per process make perfect sense inside a Java VM container &#8211; and, actually, will work fine without killing the server. They make no sense at all in a PHP project. You *need* a powerful VM to be doing that kind of thing.</p>
<h4>Notes to anyone with similar problems</h4>
<ol>
<li>If performance gets really bad, use the very old technique of:
<ol>
<li>restart the webserver (this kicks off all the current users, *and* cleans out RAM)
<li>reload the main pages of the site in your browser, ASAP
<li>save those pages to disk
<li>edit apache&#8217;s site config, and add an AliasMatch line for each saved file (saving the front page of the site is always a good start, that&#8217;s what most incoming traffic is probably pointing to &#8211; use &#8220;AliasMatch ^/$ /var/www/path-to-saved-front-page.html&#8221;)
<li>restart the webserver
<li>try reloading the affected pages, while the server is under load, to check you didn&#8217;t get the AliasMatch rule wrong or something equally stupid
</ol>
<li>Run &#8220;top&#8221;, and see how much RAM each apache2 process is using
<li>Edit apache2.conf/httpd.conf, and make sure that MaxClients is less than ((RAM in this server) / (answer from top above))
<li>Edit php.ini, find the line about max RAM usage, and laugh at the &#8220;recommended&#8221; default of 128Mb. You must be joking. Change it to something sensible &#8211; and then redo all previous steps above
<li>Run &#8220;ab&#8221; to rapidly loadtest your server from the commandline and check that the above things are working. Especially useful for forcing lots of traffic so that you can see all the processes jumping to the top of the list in &#8220;top&#8221;
</ol>
<p>But, really, if you don&#8217;t already know all that, you should probably be finding yourself a qualified sysadmin who does &#8230; or doing a lot more detailed learning instead of relying on some throwaway comments I&#8217;ve put on my blog! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/29/heavy-traffic-750000-hits-in-3-days/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Google: &#8220;don&#8217;t be evil, be passive-aggressive&#8221;</title>
		<link>http://t-machine.org/index.php/2009/11/25/google-dont-be-evil-be-passive-aggressive/</link>
		<comments>http://t-machine.org/index.php/2009/11/25/google-dont-be-evil-be-passive-aggressive/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 13:28:10 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=749</guid>
		<description><![CDATA[This week, Google decided to once more actively break Gmail. It&#8217;s getting to the point where even Hotmail may provide a considerably better service (even bearing in mind the horrors of Microsoft Passport!).

EDIT: Within a few hours of writing this, my gmail has reverted to normal behaviour. I *was* getting the HTML reply for all [...]]]></description>
			<content:encoded><![CDATA[<p>This week, Google decided to once more actively break Gmail. It&#8217;s getting to the point where even Hotmail may provide a considerably better service (even bearing in mind the horrors of Microsoft Passport!).</p>
<blockquote><p>
EDIT: Within a few hours of writing this, my gmail has reverted to normal behaviour. I *was* getting the HTML reply for all emails, now I&#8217;m getting it for none. I had wondered whether it was context specific &#8211; but now I&#8217;m getting normal emails even when replying to HTML ones, so apparently not.</p>
<p>GOOGLE IS WATCHING YOU!
</p></blockquote>
<p>I&#8217;ve no idea why this is, but here&#8217;s a tongue-in-cheek suggestion: Google *really really wants* to be evil. But they&#8217;ve made so much news out of their company motto that they don&#8217;t believe they can get away with that.</p>
<p>So, instead, they just act passive-aggressive.<br />
<span id="more-749"></span><br />
This lets them beat down their users, while maintaining a modicum of plausible deniability.</p>
<h4>This week&#8217;s backwards step for Gmail</h4>
<p>You are no longer allowed to reply to emails directly, unless you&#8217;re willing to convert them to HTML and send an HTML page instead of a plain email.</p>
<p>Every single time you want to reply, you now have to:</p>
<ol>
<li>click the reply buttton (this used to be all you had to do!)
<li>Click another reply button
<li>Wait for Gmail&#8217;s plodding DHTML to redraw the page
<li>Dialog pops up: do you really want to reply? (you click yes)
<li>Wait for more plodding DHTML, and eventually you get the email-compose pane
</ol>
<p>This is quite possibly the last straw for me and Google products. For them to break something so fundamental beggars belief. Can I ever trust any of their products not to self-destruct again?</p>
<p>(this one bug is currently costing me somewhere between 10 and 15 minutes EVERY DAY, because of the number of emails I write)</p>
<h4>Why has Google done this?</h4>
<p>Two possible answers.</p>
<p>1. The gmail team now employs some really stupid people who apparently know nothing about email clients.</p>
<p>(unlikely)</p>
<p>2. This is a subtle attempt to get a small increase in ad-revenue from Gmail.</p>
<p>By forcing everyone to do the above 5 steps, they are (passive-aggressively) irritating people as much as they can to &#8220;punish&#8221; them &#8230; until the users give in and write HTML instead of emails.</p>
<p>When people write HTML, they&#8217;re more likely to insert private rich content (images etc).</p>
<p>Google can make more money from advertising the more they know about you, and the richer the content you&#8217;ve included.</p>
<p>(bear in mind this is the same Google that used to try and steal your entire list of private phone calls from your cell phone if you installed the official gmail client &#8211; maybe they still do)</p>
<h4>Far-fetched?</h4>
<p>Maybe. But then &#8230; would you have believed me a year ago if I told you that Google would put real-time adverts INSIDE your email conversations, based on the words you typed?</p>
<p>(they added that a month or so ago. They seem to have removed it again now &#8211; it greatly increased the time it takes to compose emails, so I think they removed it until they can get it working at a sane speed)</p>
<h4>Google Support: Don&#8217;t call us. Ever.</h4>
<p>Quote from gmail support page:</p>
<blockquote><p>
If the steps provided don&#8217;t resolve the problem, you&#8217;ll be able to send us a report. While we do read each email, you&#8217;ll only hear from us (generally within a few days) if we need more information from you.
</p></blockquote>
<p>This is a lie. That used to work (I once managed to report a bug, a long time ago), but now the system refuses to let you write a report, instead it provides a link to the public forums and tells you to go whine at other users.</p>
<p>I wonder. Is it that they know they&#8217;ve broken the webapp, but it was a deliberate act, and they really don&#8217;t want to hear anyone&#8217;s opinions on the matter?</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/25/google-dont-be-evil-be-passive-aggressive/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>OS X: never let someone else use your computer</title>
		<link>http://t-machine.org/index.php/2009/11/22/os-x-never-let-someone-else-use-your-computer/</link>
		<comments>http://t-machine.org/index.php/2009/11/22/os-x-never-let-someone-else-use-your-computer/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 15:04:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=742</guid>
		<description><![CDATA[EDIT:
 &#8211; unplugging everything, rebooting, then plugging back in seems to have re-instated the other users&#8217; settings. Yay! Although &#8230; this seems very fragile / lucky / random, so I fear it might break again next time I reboot&#8230;
Even if you create an entirely separate user-account for them, with their own settings &#8230; if they [...]]]></description>
			<content:encoded><![CDATA[<p>EDIT:<br />
 &#8211; unplugging everything, rebooting, then plugging back in seems to have re-instated the other users&#8217; settings. Yay! Although &#8230; this seems very fragile / lucky / random, so I fear it might break again next time I reboot&#8230;</p>
<p>Even if you create an entirely separate user-account for them, with their own settings &#8230; if they happen to setup their keyboard differently, then:</p>
<ol>
<li>It permanently alters the keyboard settings, and there is no &#8220;reset&#8221;, nor &#8220;choose a different setup&#8221; button
<li>It also overwrites the keyboard settings for all other users of the computer, whether they want it or not
<li>It doesn&#8217;t even require admin privs &#8211; the user is just allowed to overwrite everyone else&#8217;s profile without question (including admin profiles)
</ol>
<p>Sigh. Yet again, a classic example: Apple has no idea how to make software. Someone at Apple *deliberately* broke this (they chose to remove the setup button after it was first setup), so that not only is the software buggy, but there&#8217;s nothing the user can do to fix it :(.</p>
<p>EDIT: googling suggests that the two ways to fix this are 1) mess with a lot of low-level config that will probably lock you out of your keyboard entirely, or 2) format your Mac and re-install from scratch. Hilarious. I&#8217;ll try the local Apple store, but from previous experience their &#8220;Genius&#8221; staff don&#8217;t seem to know much beyond the obvious, so I&#8217;m not hopeful. Sigh.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/22/os-x-never-let-someone-else-use-your-computer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Venues with free wifi in Brighton &amp; Hove</title>
		<link>http://t-machine.org/index.php/2009/08/04/venues-with-free-wifi-in-brighton-hove/</link>
		<comments>http://t-machine.org/index.php/2009/08/04/venues-with-free-wifi-in-brighton-hove/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 10:07:49 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=628</guid>
		<description><![CDATA[Info correct and checked: Summer 2009.
Scroll down for detailed reviews/explanations of each venue. If you know of others, feel free to add a comment at the bottom of this page. Please use the same format (One line with: name/type/secure/rating/sockets, then your own text review). I&#8217;ll try to visit them myself, and add my own reviews [...]]]></description>
			<content:encoded><![CDATA[<p>Info correct and checked: Summer 2009.</p>
<p>Scroll down for detailed reviews/explanations of each venue. If you know of others, feel free to add a comment at the bottom of this page. Please use the same format (One line with: name/type/secure/rating/sockets, then your own text review). I&#8217;ll try to visit them myself, and add my own reviews to the main article when I get time.</p>
<h4>Venues</h4>
<p>Note: each place is listed with 5 pieces of info:<br />
 &#8211; Name of venue<br />
 &#8211; Type of venue (restaurant, pub, cafe, etc)<br />
 &#8211; Is their Wifi encrypted? (<a href="http://t-machine.org/index.php/2008/06/15/wireless-security-did-you-know/" >see this article for why/how this matters</a>)<br />
 &#8211; Rating (1 = terrible, 5 = perfect)<br />
 &#8211; Tables that have Electric sockets (either single or double), for recharging your laptop &#8211; how many in the venue?</p>
<ul>
<li>The Florist &#8211; Pub &#8211; Secure 5/5 (E:3)
<li>The Eddy &#8211; Pub &#8211; Secure 4/5 (E: 2)
<li>Regency Tavern &#8211; Pub &#8211; Secure 4/5 (E: 1)
<li>Earth and Stars &#8211; Pub &#8211; Insecure 4/5 (E: 2)
<li>Hampton Arms &#8211; Pub &#8211; Insecure 3/5 (E:?)
<li>Windmill &#8211; Pub &#8211; secure &#8211; 3/5 (E: some)
<li>The Tin Drum &#8211; Restaurant/Pub &#8211; Insecure 3/5 (E: 2)
<li>The Duke of Wellington &#8211; Pub &#8211; Secure 3/5 (E: 3)
<li>Prince of Wales &#8211; Pub &#8211; Insecure 2/5 (E:?)
<li>Cafe 37 &#8211; Internet Cafe &#8211; Secure 1/5 (E: 0)
<li>Cafe Nero &#8211; Cafe &#8211; Secure 1/5 (E: ?)
<li>Cafe Nia &#8211; Restaurant &#8211; Secure 1/5 (E: 1 &#8211; pay!)
</ul>
<p>And, the odd one out:</p>
<ul>
<li>Taylor St Barista &#8211; Cafe &#8211; None 0/5 (E:0)
</ul>
<p>(read on for details + map links)<br />
<span id="more-628"></span></p>
<h4>Reviews</h4>
<h4>The Florist &#8211; Pub &#8211; Secure 5/5 (E:3)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=The+Florist&#038;vps=8&#038;jsv=169c&#038;sll=50.832397,-0.145054&#038;sspn=0.012007,0.037937&#038;ie=UTF8&#038;radius=0.83&#038;ev=zi&#038;latlng=9837999210762164940&#038;ei=2v93Sp-vDZDBjAf99aXdBQ&#038;cd=2&#038;usq=The+Florist" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=The+Florist&#038;vps=8&#038;jsv=169c&#038;sll=50.832397,-0.145054&#038;sspn=0.012007,0.037937&#038;ie=UTF8&#038;radius=0.83&#038;ev=zi&#038;latlng=9837999210762164940&#038;ei=2v93Sp-vDZDBjAf99aXdBQ&#038;cd=2&#038;usq=The+Florist');">map</a>)<br />
Decent pub, with a strong internet connection.</p>
<p>I give this one 5 because it has everything you need internet-wise, it&#8217;s close to the city centre, and it&#8217;s usually empty of people. That last bit may be a good thing or a bad thing depending upon what you&#8217;re looking for, but generally if you want to sit down and use wifi, quiet is a great thing (not so good for the landlord).</p>
<h4>The Eddy &#8211; Pub &#8211; Secure 4/5 (E:2)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+the+eddy&#038;vps=1&#038;jsv=169c&#038;sll=37.0625,-95.677068&#038;sspn=32.610437,77.695313&#038;ie=UTF8&#038;latlng=13026084209596205231&#038;ei=QwB4SpL-N6OZjAej9aS_BQ&#038;cd=3&#038;usq=the+eddy" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+the+eddy&#038;vps=1&#038;jsv=169c&#038;sll=37.0625,-95.677068&#038;sspn=32.610437,77.695313&#038;ie=UTF8&#038;latlng=13026084209596205231&#038;ei=QwB4SpL-N6OZjAej9aS_BQ&#038;cd=3&#038;usq=the+eddy');">map</a>)</p>
<p>A popular but dark pub, often full of people (especially the 25-40 crowd). The layout makes it relatively quiet, even when standing-room only (unless there&#8217;s a football match on the big-screen TV).</p>
<p>Internet connection is usually solid and fast &#8211; but sometimes slow (I think some of the people living in flats in the streets around the corner use the wifi too).</p>
<h4>Regency Tavern &#8211; Pub &#8211; Secure 4/5 (E: 1)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Regency+tavern&#038;vps=3&#038;jsv=169c&#038;sll=50.821658,-0.129508&#038;sspn=0.025376,0.075874&#038;ie=UTF8&#038;latlng=7509601138424781157&#038;ei=kgB4Sub0DJKxjAelj6zBBQ&#038;cd=1&#038;usq=Regency+tavern" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Regency+tavern&#038;vps=3&#038;jsv=169c&#038;sll=50.821658,-0.129508&#038;sspn=0.025376,0.075874&#038;ie=UTF8&#038;latlng=7509601138424781157&#038;ei=kgB4Sub0DJKxjAelj6zBBQ&#038;cd=1&#038;usq=Regency+tavern');">map</a>)</p>
<p>Quiet pub currently well-known for doing an especially good Sunday Roast lunch (although, this being Brighton, chefs change employers often, so that might go out of date suddenly). Allegedly the oldest pub in Brighton</p>
<p>The only power socket in the venue is beside the entrance to the Ladies toilets, a big 4-way extension cable above the cushioned wall.</p>
<h4>Earth and Stars &#8211; Pub &#8211; Insecure 4/5 (E: 2)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Earth+and+Stars&#038;vps=6&#038;jsv=169c&#038;sll=50.835164,-0.148243&#038;sspn=0.048027,0.151749&#038;ie=UTF8&#038;latlng=1536722392938973232&#038;ei=zAB4SrKsDsbOjAfSv8HFBQ&#038;cd=1&#038;usq=Earth+and+Stars" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Earth+and+Stars&#038;vps=6&#038;jsv=169c&#038;sll=50.835164,-0.148243&#038;sspn=0.048027,0.151749&#038;ie=UTF8&#038;latlng=1536722392938973232&#038;ei=zAB4SrKsDsbOjAfSv8HFBQ&#038;cd=1&#038;usq=Earth+and+Stars');">map</a>)</p>
<p>Brighton&#8217;s only &#8220;organic&#8221; and &#8220;eco-friendly&#8221; pub, with solar panels on the roof, and a range of organic alcoholic drinks on offer. Has an upstairs room, where the wifi signal is weak, but you wouldn&#8217;t need to go up there unless the pub is completely crammed full. Landlord is usually happy for people to come in and use wifi even if they&#8217;re not eating/drinking (if the pub is relatively empty). Gets very busy on winter evenings, and thurs-sunday evenings all year round, but quiet most of the rest of the time.</p>
<h4>Hampton Arms &#8211; Pub &#8211; Insecure 3/5 (E:?)</h4>
<p>Like the Windmill, has an outdoors seating area in sunshine with wifi; unlike the Windmill, the signal here is strong. I tried in the middle of the day, and the wifi strength was fine, but the internet connection crashed every 30 seconds, losing all connections. The barstaff switched the router off and on again a couple of times, and eventually the internet connection held. Maybe just an ISP problem? Need to check again soon.</p>
<h4>Windmill &#8211; Pub &#8211; secure &#8211; 3/5 (E: some)</h4>
<p>You can sit outside, in the Sun, BUT &#8230; very Poor wifi, signal strength bounces between 20% and 100%, and even when wifi is up, the internet connection keeps giving up on websites like yahoo.com and google.com, randomly running very fast or very slow. Indoors, it worked a lot better, even though signal strength was almost the same. Amusingly, perhaps too optimistically, the wifi network is named &#8220;THE WINDMILL SUPER FAST FIBER OPTIC&#8221;.</p>
<h4>The Tin Drum &#8211; Restaurant/Pub &#8211; Secure 3/5 (E:2)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+The+Tin+Drum&#038;vps=7&#038;jsv=169c&#038;sll=50.822129,-0.139694&#038;sspn=0.01201,0.037937&#038;ie=UTF8&#038;latlng=13458987580720960228&#038;ei=-AB4St7QIISxjAeHxI3VBQ&#038;cd=2&#038;usq=The+Tin+Drum" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+The+Tin+Drum&#038;vps=7&#038;jsv=169c&#038;sll=50.822129,-0.139694&#038;sspn=0.01201,0.037937&#038;ie=UTF8&#038;latlng=13458987580720960228&#038;ei=-AB4St7QIISxjAeHxI3VBQ&#038;cd=2&#038;usq=The+Tin+Drum');">map</a>)</p>
<p>3/5 &#8211; recently, the internet has been &#8220;on the blink&#8221; and on some days you can&#8217;t get a connection at all. Check you can get on before sitting down for food and drink</p>
<p>Great food, popular venue, very noisy coffee machine. Place gets noisy throughout the day: at lunch, mid-afternoon, and evenings.</p>
<h4>The Duke of Wellington &#8211; Pub &#8211; Secure 3/5 (E:3)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+The+Wellington&#038;vps=8&#038;jsv=169c&#038;sll=50.824803,-0.149845&#038;sspn=0.024019,0.075874&#038;ie=UTF8&#038;latlng=1610624814903552426&#038;ei=GAF4SqL7I8bOjAetwJHGBQ&#038;cd=3&#038;usq=The+Wellington" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+The+Wellington&#038;vps=8&#038;jsv=169c&#038;sll=50.824803,-0.149845&#038;sspn=0.024019,0.075874&#038;ie=UTF8&#038;latlng=1610624814903552426&#038;ei=GAF4SqL7I8bOjAetwJHGBQ&#038;cd=3&#038;usq=The+Wellington');">map</a>)</p>
<p>3/5 &#8211; whenever someone pays using a debit or credit card, the PIN card reader causes  the internet connection to crash. On a busy day, this can mean long periods with no internet. Also, during quiz night, they turn it off completely.</p>
<p>Just around the corner from the Eddie, very recently completely renovated (it used to be horrible dive of a pub, now it&#8217;s clean and modern). Very bright inside, free Pool table in the afternoons.</p>
<h4>Prince of Wales &#8211; Pub &#8211; Insecure 2/5 (E:?)</h4>
<p>(no map, address reported by google maps is impossible)</p>
<p>2/5 &#8211; unpleasant venue, wifi works fine.</p>
<p>A very small pub right on the western side of Churchill Square (the main shopping precinct + shopping area). Unfortunately, as it&#8217;s a tiny pub, and they&#8217;re in one of the busiest places in Brighton, it seems they&#8217;ve had to get aggressive with people wandering in from the street &#8211; you have to buy a minimum amount of food/drink and ask for the wifi details each time. It&#8217;s also dimmer, dingier, and smellier than most pubs in the city. Not a great atmosphere.</p>
<h4>Cafe 37 &#8211; Internet Cafe &#8211; 1/5 (E:0)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=+cafe&#038;vps=24&#038;jsv=169c&#038;sll=50.826745,-0.141299&#038;sspn=0.001501,0.004742&#038;ie=UTF8&#038;latlng=18185833244306713471&#038;ei=fQZ4SqHnO8PMjAfetKSyBQ&#038;cd=1&#038;usq=cafe" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=+cafe&#038;vps=24&#038;jsv=169c&#038;sll=50.826745,-0.141299&#038;sspn=0.001501,0.004742&#038;ie=UTF8&#038;latlng=18185833244306713471&#038;ei=fQZ4SqHnO8PMjAfetKSyBQ&#038;cd=1&#038;usq=cafe');">map</a>)</p>
<p>2/5 &#8211; the only &#8220;internet cafe&#8221; if your own computer breaks. But &#8230;they may charge you extra (approx £1.00) for using the wifi</p>
<p>Standard english cafe, serving very cheap coffees + full english breakfast. Also doubles as an internet cafe, with 3 PC&#8217;s in the corner, charging £1.00 per hour for use.</p>
<p>In the early days, you could bring your own laptop, and so long as you were eating + drinking they didn&#8217;t mind you using the wifi for free. 6 months later, they started also charging for the wifi, which seemed over the top.</p>
<p>If the wifi were free, this would probably be the cheapest place in the whole of Brighton to get free wifi (in terms of cheap food/drink).</p>
<h4>Cafe Nero &#8211; Cafe &#8211; Secure 1/5 (E: n/a)</h4>
<p>(multiple around the city)</p>
<p>1/5 &#8211; Each coffee you purchase entitles you to an extra 15 minutes of free Wifi. This is pretty extreme, and not recommended, given how many places do free wifi with no strings attached.</p>
<p>You have to keep re-logging in with a 10-digit secret code (that changes each time you purchase something) each time your time runs out. A lot of hassle.</p>
<p>Only reason to use this place is that it usually has the best coffee of the places that have any wifi at all.</p>
<h4>Cafe Nia &#8211; Restaurant &#8211; Secure 1/5 (E:1 &#8211; pay!)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Cafe+Nia&#038;vps=17&#038;jsv=169c&#038;sll=50.825457,-0.136471&#038;sspn=0.012009,0.037937&#038;ie=UTF8&#038;latlng=7021425019987293313&#038;ei=DAZ4SvHxI8iwjAei6dXaBQ&#038;cd=1&#038;usq=Cafe+Nia" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Cafe+Nia&#038;vps=17&#038;jsv=169c&#038;sll=50.825457,-0.136471&#038;sspn=0.012009,0.037937&#038;ie=UTF8&#038;latlng=7021425019987293313&#038;ei=DAZ4SvHxI8iwjAei6dXaBQ&#038;cd=1&#038;usq=Cafe+Nia');">map</a>)</p>
<p>1/5 &#8211; They now *charge* by the hour for electricity if you bring a laptop. This is irrespective of whether you eat or drink anything (I had a full meal, two coffees, and still got charged separately for &#8220;using our electricity&#8221;)</p>
<p>One of the few places you can get both Wifi and Chai Latte. Good food, a bit pricey, but &#8230; the internet crashes frequently, and has done so constantly for the past few years. There is a &#8220;magic table&#8221; near the front, between the two doors, where you are less likely to get pushed off the internet connection. But, now that they charge for electricity, would you really bother?</p>
<h4>Taylor St Barista &#8211; Cafe &#8211; None 0/5 (E:0)</h4>
<p>(<a href="http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Taylor+St+Barista&#038;vps=18&#038;jsv=169c&#038;sll=50.823966,-0.137973&#038;sspn=0.01201,0.037937&#038;ie=UTF8&#038;latlng=3654811889829299951&#038;ei=LQZ4Sv7mD4iwjAeVytXSBQ&#038;cd=1&#038;usq=Taylor+St+Barista" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://maps.google.com/maps?f=q&#038;source=s_q&#038;hl=en&#038;geocode=&#038;q=Brighton,+UK+Taylor+St+Barista&#038;vps=18&#038;jsv=169c&#038;sll=50.823966,-0.137973&#038;sspn=0.01201,0.037937&#038;ie=UTF8&#038;latlng=3654811889829299951&#038;ei=LQZ4Sv7mD4iwjAeVytXSBQ&#038;cd=1&#038;usq=Taylor+St+Barista');">map</a>)</p>
<p>No wifi.</p>
<p>But the very best coffee in Brighton, bar none.</p>
<p>If these guys ever get wifi, I wouldn&#8217;t bother going anywhere else for coffee, drinks, and meetings.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/04/venues-with-free-wifi-in-brighton-hove/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LOGIN 2009: Middleware Roundup</title>
		<link>http://t-machine.org/index.php/2009/05/13/login-2009-middleware-roundup/</link>
		<comments>http://t-machine.org/index.php/2009/05/13/login-2009-middleware-roundup/#comments</comments>
		<pubDate>Tue, 12 May 2009 23:36:39 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=557</guid>
		<description><![CDATA[Moderator: Joe Ludwig (JL)
Patricio Jutard (PJ), Three Melons
Chris Dyl (CD), Turbine
Rick Lambright (RL), Gazillion
Mitch Ferguson (MF), Carbine
Summary
A lot of nice little anecdotes about MMO middleware experiences &#8211; but it would have been nicer to have had a lot more detail on them (not easy to do in panel format).
The panellists briefly touched upon several few [...]]]></description>
			<content:encoded><![CDATA[<p>Moderator: Joe Ludwig (JL)<br />
Patricio Jutard (PJ), <a href="http://www.threemelons.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.threemelons.com');">Three Melons</a><br />
Chris Dyl (CD), <a href="http://www.turbine.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.turbine.com/');">Turbine</a><br />
Rick Lambright (RL), <a href="http://www.gazillion.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gazillion.com/');">Gazillion</a><br />
Mitch Ferguson (MF), <a href="http://www.carbinestudios.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.carbinestudios.com/');">Carbine</a></p>
<h4>Summary</h4>
<p>A lot of nice little anecdotes about MMO middleware experiences &#8211; but it would have been nicer to have had a lot more detail on them (not easy to do in panel format).</p>
<p>The panellists briefly touched upon several few sacred cows &#8211; such as &#8220;Is it absolutely essential to have the full source code to exernally-licensed middleware?&#8221; (which I&#8217;m glad to hear being questioned &#8211; with server middleware especially the developers are hopelessly underqualified to understand huge chunks of source, even at a debugging level (e.g. the many cases where the devs simply cant practically debug distributed-system source)). There are good reasons for having source (and the other sacred cows) but more questioning and more critical thinking from developers about what they *really* need and especially what they&#8217;re going to *do* with it would be good for everyone, I think.</p>
<p>Any mistakes understandings and misattributions etc my own fault. My personal comments in [square brackets]</p>
<h4>Talk</h4>
<h4>If you were going to make a new engine/MMO today, what middleware would you use?</h4>
<p>PJ: we focussed on web based games when we started. We decided to use Unity, no royalty sharing made it a very attractive pricing model.</p>
<p>CD: hypothetically &#8230; I&#8217;d make substantial use of middleware, although we didn&#8217;t really at Turbine because it wasn&#8217;t there when we started.</p>
<p>RL: we look at what&#8217;s going to be unique about the game design we&#8217;re starting, and then look for middleware that matches well with the uniqueness of the individual game, whatever gets us a good chunk of the way towards that.</p>
<p>MF: we&#8217;ve decided each time to just do it ourselves.</p>
<h4>How do you deal with the risk of using middleware code that&#8217;s never been used in a shipped MMO, that you&#8217;re the first major user of / the other major users haven&#8217;t shipped yet?</h4>
<p>PJ: make sure you have the source code (although we couldn&#8217;t afford the more-expensive source-code license for Unity), make sure you have good support and responsiveness from vendor Tech Support.</p>
<p>CD: make sure the vendor is committed to the vertical business space, that your success is part of their core product strategy</p>
<p>JL: being first shipping user can get you a big price discount from the vendor</p>
<p>RL: with BigWorld we don&#8217;t have all the source. You have a limited number of engineers who&#8217;ll be skilled enough to do anything meaningful with that source anyway, and they could quit, leaving you in trouble. We have a commitment that if something exceptional comes up then we have the *possibility* of the vendor giving us source access temporarily, with their engineers physically present at all times, but we hope not to need that.</p>
<p>MF: any middleware that includes game design / game-logic elements is highest risk. I&#8217;ve had low-risk pieces of middleware fail, but that&#8217;s quite easy to workaround because it&#8217;s got relatively little effect on the overall project. I don&#8217;t want to name vendors in particular examples, because it&#8217;s not necesssarily their fault.</p>
<p>JL: we used SpeedTree for a couple of years, but eventually didn&#8217;t ship with it, because it couldn&#8217;t integrate with our art pipeline. Not a bug in that, just unfortunate accident of how it works and how we worked.</p>
<p>CD: we had the same problem with ST.</p>
<p>CD: the two scariest middlewares we used at Turbine were having Physics, and Kynapse for path-planning. Do we de-stabilise our live servers by integrating this cutting edge middleware new version in? As an MMO operator you really want to be able to keep an old version in situ for a long time &#8211; maybe a lot longer than the middleware vendor actually wants you to have it there.</p>
<p>[ADAM: that's an extremely interesting problem...]</p>
<p>We had a big problem with a middleware engine where the provider just went out of business. We got some support from our publisher there to work through it, but what do you do about that?</p>
<p>CD: source code escrow is a good thing, for the absolute disaster scenario. But it&#8217;s really no different from other catastrophic business risks. Make sure you have one (more than one) person who&#8217;s been over the source in detail with the vendor at least once, so understands it well enough to pick up if they vanish, etc.</p>
<p>RL: escrow is mandatory, including all the required libraries, correct verisons etc.</p>
<p>[ADAM: nb: same speaker who doesnt have full source for some aspects of BigWorld]</p>
<p>JL: we didn&#8217;t escrow Alchemy, too naive to realise we should, but we got someone to send it to us as they were going out of business. Just getting it to build was a huge problem, we found.</p>
<p>[ADAM: our industry is still cursed by the fact that almost no-one has a great build system in place :) ]</p>
<p>MF: with Renderware we had source for the main thing, but there were dev tools that we had no source for, and so we couldn&#8217;t fix bugs in the tools, it was a nightmare. Very fine Modularity of your middleware &#8211; which doesn&#8217;t really exist yet &#8211; would be a real saver in this area. A hyper-modular middlware, I think that would make the risk much lower. Then if the company did go out of business, you could replace those building-blocks one at a time. I think that modularity is very important, or as close as you can get.</p>
<p>[ADAM: ha. I fought hard at the tech level to keep exactly that as one of the top 3 features of our server middleware back in 2002, but unfortunately back then (my naivety in assuming developers understood more than they did) no game developer had anywhere near enough understanding of the problems to realise how valuable that was. Ultimately, it was a waste of money for us as a company, because no customer understood it enough to place the value on it that would pay for how much it was costing us to achieve and maintain it. I'm not convinced that's changed enough to make it profitable enough for MMO providers - even if developers now see the theoretical value, I don't think they are able to really afford it]</p>
<h4>Audience: Given how heavy the sales process is &#8230; is there a role for open source (OSS) in this?</h4>
<p>MF: I think OSS is actually necessary for our industry to remain profitable, to reduce the cost of development. If I say bad things about middleware it&#8217;s not because I want it to fail (I really want it to succeed, I think it&#8217;s critical for us), but because I&#8217;m so disappointed with the current state of it.</p>
<p>RL: how many games have Python in them? Well, that&#8217;s an example of OSS that&#8217;s now heavily in use. We have an enormous amount of OSS we use inside the backend systems / servers.</p>
<h4>What are the packages are you using for service side?</h4>
<p>CD: we use a 3rd party billing system, that I wouldn&#8217;t actually recommend. We chose it many years ago, and it isn&#8217;t really right for what we do now.</p>
<p>(audience): there&#8217;s big advnatages to using external billing provider, e.g. benefit of having someone else as the merchant of record, isn&#8217;t there.</p>
<p>[ADAM: personally, I think that's short-sighted, because in many ways the last thing in the world you want to have happen, as a service provider, is be disengaged from the customer's wallet. Never let someone else come between "you" and "your customer's money"; they can handle it, facilitate it, but not take over the CRM]</p>
<h4>What about internal middleware? A lot of companies form Core Technology teams, creating a culture of making MW for internal use, re-use in other titles, etc</h4>
<p>CD: D&#038;D and LoTRO have the exact same codebase on the platform level because of our internal middleware. We ported the LoTRO DirectX 10 layer as a full working initial Dx10 directly into D&#038;D, without changing it.</p>
<p>RL: the question comes down to whether you have a very specific target for what you&#8217;re doing. If you try to make one engine for all your games, and/or all your studios (if you&#8217;re multi-studio) then that&#8217;s a route to huge difficulties and disasters. At the same time I&#8217;ve seen companies that have huge in-house expertise in their internal wide-use engine and are able to churn out new games easily. But I think it&#8217;s a really really difficult problem to solve that way.</p>
<p>CD: we can have a full game prototype from zero to running in 3 months because we have all this internal re-usable code. For a relatively low investment we can build a small portion of a world to try out new game concepts.</p>
<p>[ADAM: I'm guessing the caveats there are simple that the content-cretion costs are of course still directly proportional to how much you want to show - hence "build a SMALL portion" etc]</p>
<p>MF: It was painful sometimes when the company was going down that they weren&#8217;t helping on the games themselves directly, but when Perpetual folded, the core tech group, the reusable code, was the one part that they managed to sell off. Clearly it has a lot of value, even if it&#8217;s painful getting there.</p>
<p>PJ: I think it makes sense to have one team on gameplay and building things, and one focussed on technology, because it&#8217;s different expertise for the staff to have.</p>
<h4>What about MMO Middleware on consoles? Will midleware bring MMOs to consoles finally?</h4>
<p>CD: it&#8217;s absolutely helped the transition, you&#8217;ll see stuff very soon where it&#8217;s facilitated console MMOs.</p>
<p>RL: stuff that&#8217;s provided to you multi-platform is a huge win from using middleware.</p>
<h4>Questions from Audience</h4>
<h4>Q: sounds from what you&#8217;ve said here today like the state of the middleware industry today is fragile and embryonic?</h4>
<p>MF: I agree. I think it&#8217;s a difficult industry. Business model is tough, it&#8217;s sales heavy, hard to get your cash in when people go under -</p>
<p>JL: &#8211; that&#8217;s what happened with Intrinsic, they had agreements with lots of companies paying a small amount each month towards the license fee, and when a few of those went out of business, the sudden cashflow damage killed Intrinsic</p>
<h4>Q: what are your experiences with the multi-platform engines?</h4>
<p>RJ: we tried most/all of the flash stuff. We&#8217;ve found Unity to provide the most-productive pipeline, fast and easy to prototype with, works nicely with our dev methodology (scrum).</p>
<p>RL: the more MMO development you do, the more you realise it&#8217;s all about the tools. The content-creation tools etc become more important, ultimately, than the engine itself.</p>
<p>CD: the cost of developing an MMO is never the technology, four or five times that cost is the cost of the content-generation. So the more efficient your tools are, the quicker you can get final game-content being made, that&#8217;s key.</p>
<h4>Q: (from MF) does middleware &#8220;help&#8221; or &#8220;hurt&#8221; innovation?</h4>
<p>MF: I feel it could hurt quite a lot. e.g. Some years ago, I could not find any middleware that would support instances, so we couldn&#8217;t use it. </p>
<p>CD: agreed. I think something monolothic like BigWorld could be particularly limiting, but the piecemeal approach of lots of little parts, increased productivity, actually I think helps innovation because it helps on your dev-resource costs a lot.</p>
<h4>Q: are any of your perspectives on middleware non-technology centric, it&#8217;s been very tech-centric so far? I&#8217;ve seen a lot of recurring frustration with middleware. What kind of heuristics do you use to establish whether middleware is the right choice?</h4>
<p>RL: you should never take a fully-staffed team and then dump in middleware on them. The two should be built hand-in-hand; middleware changes your hiring needs, and vice versa.</p>
<p>CD: Tech is always both an enabler and a limiter.</p>
<h4>Q: as a vendor looking-in &#8230; we see particular teams (art vs code vs design) a lot more vocal than others, and the decision to use/not-use it gets skewed.</h4>
<p>RL: the purchase decision is often lead by the lead client engineer, server stuff gets ignored, which is clearly wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/05/13/login-2009-middleware-roundup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone OS updated; developers let down by Apple (a little)</title>
		<link>http://t-machine.org/index.php/2009/01/28/iphone-os-updated-developers-let-down-by-apple-a-little/</link>
		<comments>http://t-machine.org/index.php/2009/01/28/iphone-os-updated-developers-let-down-by-apple-a-little/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 09:19:31 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=332</guid>
		<description><![CDATA[What&#8217;s in it?
Nobody knows &#8211; Apple didn&#8217;t bother with release notes for this 1.75GB monster. Allegedly, there aren&#8217;t even release notes inside the download itself.
What apps will it break?
Nobody knows &#8211; Apple didn&#8217;t allow developers to test it before they put it live.
What does Apple have to say about it?
I don&#8217;t know &#8211; the official [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s in it?</p>
<p>Nobody knows &#8211; Apple didn&#8217;t bother with release notes for this 1.75GB monster. Allegedly, there aren&#8217;t even release notes inside the download itself.</p>
<p>What apps will it break?</p>
<p>Nobody knows &#8211; Apple didn&#8217;t allow developers to test it before they put it live.</p>
<p>What does Apple have to say about it?</p>
<p>I don&#8217;t know &#8211; the official developer site has zero coverage other than the download link itself and a short note to say it is &#8220;mandatory&#8221; and that it might break your phone if wrongly installed.</p>
<p>More to come once I&#8217;ve got it working&#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/01/28/iphone-os-updated-developers-let-down-by-apple-a-little/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Thunderbird Beta (Firefox-related email client) finally available</title>
		<link>http://t-machine.org/index.php/2009/01/19/thunderbird-beta-firefox-related-email-client-finally-available/</link>
		<comments>http://t-machine.org/index.php/2009/01/19/thunderbird-beta-firefox-related-email-client-finally-available/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 17:51:45 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=329</guid>
		<description><![CDATA[If you&#8217;re still muddling along with Outlook, or suffering under the curse of some hopeless rubbish like Apple&#8217;s OS X Mail, salvation may well be on the horizon&#8230; ThunderBird version 3 is now in beta (and looks like it will be the first version of TB that will be usable as a general email client; [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re still muddling along with Outlook, or suffering under the curse of some hopeless rubbish like Apple&#8217;s OS X Mail, salvation may well be on the horizon&#8230; ThunderBird version 3 is now in beta (and looks like it will be the first version of TB that will be usable as a general email client; IME the previous releases never really worked properly). Try it out!<br />
<span id="more-329"></span><br />
This release is much much better than the alpha releases. It is fast, like the old Mozilla News and Mail (which preceded TB, and had awesome features that none of the TB&#8217;s ever had &#8211; basic essentials (like instant-search) that got cut when they transitioned to TB). It also has some funky new features, like tabbed-browsing of emails.</p>
<p>Bar one massive bug, IMHO it&#8217;s good enough for daily usage right now. Sadly, that bug is a showstoppper. It&#8217;s partly due to a big bug that the developers are aware of (so big they hilight it on the download page), but it seems to also be partly due to something else. The overall effect is that ThunderBird 3 Beta simply &#8220;doesn&#8217;t&#8221; download IMAP emails. As far as I can see, this makes it useless for the most common uses of a dedicated email client (but &#8230; it *is* a beta).</p>
<p>According to the bug report for the bug the developers are aware of, the inability to download IMAP email shouldn&#8217;t be a problem because they have a new super-secret invisible &#8220;automatic background download&#8221;. Obviously, this is a stupid feature for any finished app &#8211; there&#8217;s no way you can have something like that be non-inspectable &#8211; but they&#8217;re a long way away from a gold launch, and I&#8217;m happier to get early access to it as-is rather than wait ages for bells-and-whistles.</p>
<p>However, either Gmail has an extra bug (quite possible &#8211; Google broke the IMAP standard when they added IMAP to Gmail), or OS X has an extra bug, or the TB team simply don&#8217;t realise quite how bad the situation is &#8211; right now, as an IMAP email client, TB beta is practically useless with OS X + Gmail, and having used it for the past 3 weeks or so, I don&#8217;t see how you could think of it otherwise. Since it won&#8217;t batch download IMAP emails (the bug they hilight), and the alleged new feature of &#8220;background download&#8221; simply isn&#8217;t working (they dont mention this one :( ), you have to manually click every single one of your emails in every single folder in order to get them to download. How long does it take to click on 1,000 emails? Quite a long time&#8230;</p>
<p>(and, NB: you have to wait for each one to start downloading before clicking the next, or it appears to cancel the download)</p>
<p>I tried it out on a gmail account that had 5,000 or so emails &#8211; randomly a couple (about 10-20) got downloaded. The vast majority did not. I had a look at the traffic going through the network card, and after a few seconds it was idling, so Thunderbird wasn&#8217;t even attempting to download anything. If I go offline, all the messages have &#8220;this message hasn&#8217;t been downloaded&#8221; errors. Surprise! Nothing I do has any effect (unsurprising, given the bug report).</p>
<p>I wonder if it&#8217;s partly got by unnoticed because the developers already had most of their mail cached (successive installs of TB re-use the cache of downloaded IMAP email), and didn&#8217;t get to see what happens with a fresh install of this &#8220;new&#8221; mail client? Maybe the bug only shows up when you have more than, say, 10 new emails to download? (when you first install, any Gmail account is likely to have many thousands to download)</p>
<p>Sadly, since there&#8217;s not even a progress UI to tell you what&#8217;s happening, I can&#8217;t really tell what&#8217;s going wrong.</p>
<p>But *apart* from that it&#8217;s looking really good, and &#8211; assuming that IMHO critical bug doesn&#8217;t affect you (I suspect it doesn&#8217;t happen on Windows, perhaps?) &#8211; I think a lot of people will be doing a mail-client switch soon. And after a few weeks of usage it already seems to work much, much better on OS X than Apple&#8217;s own Mail application.</p>
<p>If you don&#8217;t need offline IMAP, give it a try: <a href="http://www.mozillamessaging.com/en-US/thunderbird/early_releases/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.mozillamessaging.com/en-US/thunderbird/early_releases/');">Downloads page for Thunderbird beta</a></p>
<p>One final note to OS X users: the beta still has at least one nasty bug from the alpha, so be warned:  it interacts very badly with OS X&#8217;s window manager, and after about 10 minutes of running it suddenly takes about 50% of your CPU usage in OS X windowing libraries. So you probably dont want to leave the app running in the background permanently. Although your CPU has spare processor time, TB has basically taken exclusive control of the windowing library (perhaps they&#8217;re acquiring locks and failing to drop them?).</p>
<p>Once that happens, the whole OS grinds to a halt: you&#8217;ll find it very hard in *any* application to click on buttons, dialogues will take ten seconds to appear (instead of 0.01 seconds), etc. Kill TB, and your system goes back to normal. Check your CPU usage, and it&#8217;s being gobbled by the OS X Window Server, or related OS X internals. I am sure this is an OS-X only issue, since it seems to be the OS X libs themselves that are going AWOL.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/01/19/thunderbird-beta-firefox-related-email-client-finally-available/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Arrange a meeting in multiple timezones</title>
		<link>http://t-machine.org/index.php/2008/10/30/arrange-a-meeting-in-multiple-timezones/</link>
		<comments>http://t-machine.org/index.php/2008/10/30/arrange-a-meeting-in-multiple-timezones/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 11:12:48 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=274</guid>
		<description><![CDATA[Lots of people are using Yahoo&#8217;s Upcoming more and more these days, going by the invites I get (many have switched from using Facebook to using Upcoming recently). But it completely sucks for arranging anything in a foreign country, or where people will be attending from foreign locations. Common examples:

Any meeting, event, or party at [...]]]></description>
			<content:encoded><![CDATA[<p>Lots of people are using Yahoo&#8217;s Upcoming more and more these days, going by the invites I get (many have switched from using Facebook to using Upcoming recently). But it completely sucks for arranging anything in a foreign country, or where people will be attending from foreign locations. Common examples:</p>
<ul>
<li>Any meeting, event, or party at an international conference; many attendees will be flying in a day or so beforehand
<li>Conference calls with people in more than one timezone; conference calls tend to be with multi-timezone, otherwise you&#8217;d just have a face-to-face meeting
</ul>
<p>I&#8217;ve tried lots of things, and although Outlook 2003 and beyond have some moderately handy tools for this (you can view &#8220;2 timezones simultaneously&#8221;, although IIRC *only* 2, sigh), 99% of the time I need something web-based that anyone/everyone can use. And today I found this piece of awesomeness:</p>
<p><a href="http://www.timeanddate.com/worldclock/advmeeting.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.timeanddate.com/worldclock/advmeeting.html');">http://www.timeanddate.com/worldclock/advmeeting.html</a></p>
<p>&#8230;which produces things like this:</p>
<p>(I would insert an image here, but unfortunately &#8211; despite the claims of the Debian maintainer of Wordpress &#8211; Debian Wordpress still can&#8217;t do file uploads, and Wordpress&#8217;s authors haven&#8217;t fixed their extremely poor approach to file uploads. Sigh)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/10/30/arrange-a-meeting-in-multiple-timezones/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thunderbird 3.0: stick with Alpha2</title>
		<link>http://t-machine.org/index.php/2008/10/22/thunderbird-30-stick-with-alpha2/</link>
		<comments>http://t-machine.org/index.php/2008/10/22/thunderbird-30-stick-with-alpha2/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 16:57:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/index.php/2008/10/22/thunderbird-30-stick-with-alpha2/</guid>
		<description><![CDATA[Mozilla just released Alpha3 of Thunderbird version 3; my advice: don&#8217;t bother.

It&#8217;s got a few mildly graphically improved widgets, but no other noticeable feature improvements (so far).
BUT &#8230; it completely breaks online/offline operation, and refuses to download ANY emails unless you manually download EACH AND EVERY email by clicking on it.
This makes it, well, entirely [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla just released Alpha3 of Thunderbird version 3; my advice: don&#8217;t bother.<br />
<span id="more-271"></span><br />
It&#8217;s got a few mildly graphically improved widgets, but no other noticeable feature improvements (so far).</p>
<p>BUT &#8230; it completely breaks online/offline operation, and refuses to download ANY emails unless you manually download EACH AND EVERY email by clicking on it.</p>
<p>This makes it, well, entirely useless for anyone using it as an offline mail client (which, I&#8217;m assuming, is the main use case for most people!)</p>
<p>So, don&#8217;t bother downloading it &#8211; stick with Shredder 2 / Thunderbird 3 alpha 2. It&#8217;s buggy, but at least it does download email when you tell it to! (usually).</p>
<p>NB: in case anyone wonders why I&#8217;m using an alpha/pre-alpha in production, here&#8217;s why: On OS X (and, yes, this is partly a reflection that OS X is a second-citizen when it comes to TB releases), Thunderbird 2 is so utterly useless that the 3.0 pre-alpha works better *across the board*. I was rather depressed to discover that TB 2, gold version, is missing many of the core features of Mozilla Mail, which TB 1 was based upon. TB 3 at least manages to bring back some of the basic functionality (although not all, not yet &#8211; I have fingers crossed!). In particular: where TB 2 cannot cope with Gmail (apparently because Gmail willfully ignores bits of the Internet Standards; sigh &#8211; BAD google!), for TB 3 the Mozilla devs hacked around Gmail&#8217;s bugs to make TB 3 work with Gmail *mostly* correctly.</p>
<p>NB2: Mozilla Mail was the best graphical mail client I&#8217;ve ever used, even today some years after it got replaced by Thunderbird. There is (was) some great usability stuff in there. So, much as it is frustrating to be stuck with an alpha build right now, it&#8217;s still pretty good, and I&#8217;ve got high hopes for the final release of TB 3!</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/10/22/thunderbird-30-stick-with-alpha2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtual Worlds Forum Europe 2008: &#8220;Show Us the Money&#8221;</title>
		<link>http://t-machine.org/index.php/2008/10/07/virtual-worlds-forum-europe-2008-show-us-the-money/</link>
		<comments>http://t-machine.org/index.php/2008/10/07/virtual-worlds-forum-europe-2008-show-us-the-money/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 14:34:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/index.php/2008/10/07/virtual-worlds-forum-europe-2008-show-us-the-money/</guid>
		<description><![CDATA[(Monetization options for Virtual Worlds)
VWFE 2008 (Virtual Worlds Forum Europe) got cancelled because the venue was taken away by the Police, so the organizers arranged an emergency Unconference for today instead. I decided &#8211; with only five minutes of prep (this is an Unconference&#8230;) &#8211; to do a session on &#8220;ways to monetize virtual worlds&#8221;.
I [...]]]></description>
			<content:encoded><![CDATA[<p>(Monetization options for Virtual Worlds)</p>
<p>VWFE 2008 (Virtual Worlds Forum Europe) got cancelled because the venue was taken away by the Police, so the organizers arranged an emergency Unconference for today instead. I decided &#8211; with only five minutes of prep (this is an Unconference&#8230;) &#8211; to do a session on &#8220;ways to monetize virtual worlds&#8221;.</p>
<p>I ran this session, so I took very few notes, sorry.</p>
<p>So &#8230; if you weren&#8217;t at the session, you probably missed most of the good bits :P.<br />
<span id="more-259"></span></p>
<h4>Background</h4>
<p>I&#8217;ve been in MMOs in some form or other for ten years, and I&#8217;ve seen VWs arise as a viable product, but the companies I meet seem to often have serious lack of understanding / plans of how they are going to make anything more than trivial revenues. Each year, the average technology of new companies (both presentation/graphics, and back-end/servers) seems to improve, but each year the monetization plans of new companies seem to get poorer, on average.</p>
<p>This is quite disappointing, so I wanted to do a session on ways to monetize VWs, and show that there&#8217;s no excuse to merely say &#8220;advertising&#8221;, or to stick to one or two plain derivative revenue models.</p>
<h4>Reference points</h4>
<p>How much revenue should we be talking about here?</p>
<p><a href="http://kara.allthingsd.com/20080131/chatty-zuckerberg-tells-all-about-facebook-finances/">2008 FaceBook &#8211; $300m<br />
2007 FaceBook &#8211; $150m<br />
</a></p>
<p><a href="http://blogs.zdnet.com/BTL/?p=5899">2008 MySpace &#8211; $800m<br />
2007 MySpace &#8211; $550m<br />
</a></p>
<p>So &#8230; if your monetization method tops out at a million dollars a year, forget it.</p>
<h4>How can you monetize a VW or MMO?</h4>
<p>Here I opened it up: in the few minutes before the presentation, I had thought up 9 different unique methods of monetization; how many could the audience come up with?</p>
<p>My ones (shared afterwards)</p>
<ul>
<li>virtual item sales
<li>dual-currency systems (currency-sales)
<li>physical merchandise
<li>lead-generation advertising / research
<li>sponsoring
<li>marketplace ownership
<li>subscription
<li>event fees
<li>consumable / rentable resource fees (LAND, also INGREDIENTS)
</ul>
<p>Audience ones:</p>
<ul>
<li>subcriptions
<li>virtual item sales
<li>ad-supported
<li>sponsorship
<li>merchandise
<li>event fees
<li>physical goods sales inside virtual worlds
<li>currency exchange fees
<li>be a deposits bank
<li>licensing in-world businesses
<li>tax
</ul>
<p>&#8230;I liked the &#8220;licensing&#8221; and &#8220;become a deposit bank&#8221; in particular :).</p>
<p>We then ran through them all and shared what our estimations of the total amount of money people across the industry were making using that particular monetization model. I can&#8217;t remember exactly what we said, and it was heavily influenced by me (because I&#8217;m quite up to date on figures for global public compnies for this &#8211; its something I&#8217;ve researched a lot and tracked for the past few years)</p>
<p>Something in the region of $5billion for subs, $3billion for virtual item sales, a guesstimated $1b or less for advertising (really really unsure of this one &#8211; I was guessing blind basing it mostly off CPM figures for ad-driven games &#8211; I hoped someone else present would know a real figure for this), a few billion for merchandise.</p>
<p>But &#8230; Villi shared a figure he had researched formally for a report last year: $2.1billion for the worldwide revenue from virtual-item sales. I reckoned that is looking like $3billion for 2008 (going off the projected revenues of the Chinese operators and how much they&#8217;ve gone up).</p>
<h4>An interesting comment&#8230;</h4>
<p>&#8220;Many VW&#8217;s don&#8217;t think about the problem of getting physical money into the world in the first place &#8211; the use of payment providers etc&#8221;</p>
<p>Think about that. Think about it until you understand what it means, what it implies for those &#8220;many VWs&#8221; &#8211; and how it relates to the current real-world financial crisis.</p>
<h4>Summary</h4>
<p>Companies are spoilt for choice when it comes to VW monetization, really.</p>
<p>And there are half a dozen forms of monetization that &#8211; straw poll &#8211; are already producing billions of dollars revenue across the industry.</p>
<p>And &#8230; forget &#8220;advertising&#8221;: there are better things out there, each of which is as good or better than advertising.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/10/07/virtual-worlds-forum-europe-2008-show-us-the-money/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What’s the future for Game Development Studios?</title>
		<link>http://t-machine.org/index.php/2008/09/14/whats-the-future-for-game-development-studios/</link>
		<comments>http://t-machine.org/index.php/2008/09/14/whats-the-future-for-game-development-studios/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 09:55:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[recruiting]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=249</guid>
		<description><![CDATA[(this is part 2 of Publishers are from Mars, Developers are from Venus)
Last time I said that “good Developers are very similar to Valley Technology Startups”, which suggests one obvious way things could develop:
Publishers to become Venture Capitalists; Developers to become commodities
In this model, the Publishers spend their time “speculating” in Dev studios: instead of [...]]]></description>
			<content:encoded><![CDATA[<p>(this is part 2 of <a href="http://t-machine.org/index.php/2008/09/09/publishers-are-from-mars-developers-are-from-venus/" >Publishers are from Mars, Developers are from Venus</a>)</p>
<p>Last time I said that “good Developers are very similar to Valley Technology Startups”, which suggests one obvious way things could develop:</p>
<h4>Publishers to become Venture Capitalists; Developers to become commodities</h4>
<p>In this model, the Publishers spend their time “speculating” in Dev studios: instead of buying a studio in order to own the output of that studio, you buy it with the intent of later selling the studio itself at a profit.</p>
<p>This is a good model; as I first heard from <a href="http://www.emma.cam.ac.uk/teaching/fellows/display/index.cfm?fellow=239" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.emma.cam.ac.uk/teaching/fellows/display/index.cfm?fellow=239');">Jack Lang</a>, at one of the Cambridge Enterprise Conferences many years ago:</p>
<blockquote><p>“The best way to get rich is by buying and selling things. Preferably companies”</p></blockquote>
<p>IIRC it’s a quote that’s been around for a long time, but I can’t remember where the original quote came from, unfortunately.</p>
<p>(of course, this observation is why Publishers are box-shifters in the first place: simply buying and selling things is an easy, fast, stable, sustainable way of making a very large amount of money. It’s not particularly creative, perhaps, but it’s a very efficient way of generating profit, and lets you leverage your resources/cashflow way above the profit you would generate simply from manufacturing your own goods and selling them)</p>
<p>The real beauty of this is that &#8211; as Jack’s quote illustrates &#8211; a Publisher and a VC have very similar fundamental business models: they buy stuff that they have no intention of using themselves primarily to sell those things at a profit to other people. In both cases, the less time the company can hold onto the products, while getting the same price differential between purchase and sale, the better. What is a VC? A VC is just a higher-value version of a box-shifter. So, for a Publisher to diversify into being a VC may not be so difficult…</p>
<p>As someone who’s been through the mill of raising finance for startups before, I’d also like to add that “funding game development” is commonly thought of as having no equal in risk and unpredictability &#8211; save “providing venture capital for a new startup”. The hardest part of being a VC &#8211; the insanely high risks involved &#8211; is bread and butter for Publishers, who routinely spend tens of millions of dollars on stuff they don’t understand, cannot effectively control, and cannot reliably predict!</p>
<p>Studios would find that:</p>
<ol>
<li>Publishers would look after them more &#8211; you don’t want to harm something you’re planning to sell
<li> Funding and marketing decisions would be driven more by what was in the interests of the studio rather than the Publisher’s marketing dept or cashflow
<li> Publishers would stop being stupid about trying to “reduce costs” of development purely for the sake of it
<li> Publishers would be a LOT more interested in supporting and creating external partnerships for the studio, especially where those partnerships involved competing publishers or their subsidiaries (because that would make it easier in the future to sell the studio to that competing publisher), which would help reduce development costs (a little) and increase productivity / quality of working environment (probably a lot more &#8211; publishers usually consider this too little justification for allowing such things)
<li> If the publisher got cold feet about publishing a certain game and it was far advanced, they would push for POSTPONING it rather than RUSHING it &#8211; they’d rather sell the studio BEFORE it publishes the game, and “price-in” the potential of the game than sell AFTER the game had launched and flopped
<li> The publisher would push harder for maintaining quality standards of the games output by the studio &#8211; they have literally invested in the brand of the studio, a brand they are planning to build up in value as much as possible, before selling
</ol>
<p>Publishers would find that:</p>
<ol>
<li>Development costs would no longer mar their balance sheets and make their financial performance look bad; the offset of being able to mark the studio as a sellable asset with a quantifiable value in excess of the money being poured into it would make it all smell sweeter to shareholders
<li> There would be less friction with studios, leading to better communication, less frustration, and probably better overall quality of product &#8211; and hence, more profits
<li> Studios could safely be given more leeway to make strategic business decisions that were “right for them”, offering the possibility of mega-wins for the publisher whenever those paid-off (e.g. the decision by early FPS developers to not only allow but encourage modding was enough to terrify publishers even today, and yet a massive win in sales and profits), but also to not have to take responsibility &#8211; and blame &#8211; when they failed; this would all be priced into the “value” of the studio as a separate, tradeable, entity
<li> If a studio made some bad strategic decisions that led to commercial failures, that might actually INCREASE its tradeable value, if the market perceived that the studio had “learnt” significantly from the mistakes; potentially, such increased value could completely offset the actual financial losses incurred from the mistake
</ol>
<h4>A practical example</h4>
<p>I’m just pulling this out of thin air, trying to think of a studio that many years ago was worth something, got acquired, went internal, and now is probably worthless. When EA bought Westwood Studios, one of the things they paid for was the brand; how much value did they really extract from that brand? How much value does it have *today*? Today, it’s probably next to none &#8211; customers don’t care, and other games industry companies all know that the real meat of Westwood Studios (the staff, the equipment, the processes) was disbanded shortly after being bought by EA. Could they have made more money by promoting and protecting the WS as an owned-but-independent studio? If they’d taken that route, and even if they had made less money than they have with the route they chose, would it be more than made up for by the fact that they might be able to sell WS right now for, say, a couple of hundred million dollars &#8211; if only it still existed as more than a name?</p>
<h4>And why not?</h4>
<p>But this isn’t the way Publishers work right now, so … where does this plan all go wrong? Why hasn’t it happened already? What might prevent people from trying this?</p>
<h4>1. Cojones</h4>
<p>At the moment, the funding decisions that Publishers make are so distantly removed from the actual point of capitalizing on them that it’s quite easy for the people making the funding decisions to blame many other departments and personnel within their organization should the investment go poorly. Indeed, this plausibly deniability, this easy abrogation of responsibility by the decision makers &#8211; and the great distance between them and the people actually implementing the game &#8211; are root causes of a lot of the practical problems in the Publisher/Developer relationship whenever they do “external” publishing (i.e. publish a game made by an independent / external studio, as opposed to a wholly-owned internal studio).</p>
<p>A lot of the benefits for the New Way cited above stem from removing that indirection; that means a bunch of people making hundred-million-dollar decisions would be exposed to rather more scrutiny and responsibility than they hold right now. I’ve heard people (usually the ones who don’t really understand VC’s, have acted naively or foolishly with them, and come away poor and bitter) describe VC’s as “arrogant”, “bullies”, and “too demanding”; while I don’t agree with that, just think how you’d act if you were the named individual responsible for a handful of $10million investment decisions, and how that might come across sometimes. Could the individual people working for Publishers accomodate such a change? If they were content with that level of personal exposure to risk, would they be working in the games industry, or would they already be working in the higher-paid VC industry?</p>
<h4>2. The Art of the Sale</h4>
<p>Another issue is that the success of selling a studio depends on, well … your ability to sell!</p>
<p>Publishers do not, generally, have any experience of selling companies. A publisher might spin-out or sell off one division every decade, at most &#8211; and many of those are instigated by the division itself (management buy-outs), or are fire-sales (find a buyer at any cost, no matter how low). They don’t have staff who are experience in doing this, they don’t have any contacts suitable for doing it, and they don’t (generally) maintain the level of immersion in the marketplace of studio buyers to be able to setup great deals when selling on a studio. Look at how much time the individual staff at VC’s spend purely “networking”, both looking for things to invest in (new purchases), but also looking for, befriending, understanding, and keeping up to date with the needs and desires of potential buyers (people who might acquire some of their portfolio).</p>
<h4>3. Organizational Change</h4>
<p>Lastly, have a look at the typical VC organization &#8211; a handful of Partners (maybe half a dozen people who make investment decisions), a handful of Entrepreneurs in Residence (EIR &#8211; maybe one or two domain-experts who make recommendations and help in due diligence). This is enough to manage billions of dollars of investments.</p>
<p>Now look at the typical Publisher organization &#8211; 50 people in each of marketing, customer service, and sales, perhaps 15 handling external develoment (finding and making development/publishing deals), and another 10-50 people in internal support roles. This is enough to own 1-3 development studios.</p>
<p>This isn’t to say that Publishers would need to downsize. Rather, it’s to point out that if the external development side started doing sales of studios for as much as $100million a time, their revenues and profits would suddenly massively eclipse (20 to 1, perhaps even 200 to 1) the whole of the rest of the organization, despite being outnumbered more than ten to one. Sooner or later, the “rest of the organization” would become politically weak and subservient to the massively profitable “trading in ownership of development studios part”.</p>
<p>The VPs of the current departments may well find that the total pie they’re sharing in becomes much bigger, and much more than makes-up-for the fact that their slice has got smaller, but will they accept their slice going from being a “Vice President” sized slice to a “Operations Manager” sized slice?</p>
<h4>A few little Notes…</h4>
<p>1. When I wrote Publishers are from Mars, Developers are from Venus, I had *no idea* that NCsoft had <a href="http://www.gamesindustry.biz/articles/58-staff-face-the-axe-at-ncsoft-europe" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesindustry.biz/articles/58-staff-face-the-axe-at-ncsoft-europe');">just decided to shutdown its European development studio</a>, and make a swathe of redundancies in European publishing. Sheer coincidence, and sad for a lot of people involved, but very interesting nonetheless.</p>
<p>NB: if you work for a publisher or developer and are interested in picking up any of the good NCsoft Europe staff, especially development, QA, localization, and customer support &#8211; and you have jobs in or within commuting distance of Brighton &#8211; let me know. Lots of people are suddenly looking for stuff to do next…</p>
<p>2. I said that “Developers exist to make a loss, every day”, and some people questioned that.</p>
<p>Yes, I really mean this: the more they spend, the greater the potential profit, and they should be maximizing their potential profit. Obviously, there is a point of diminishing returns, but generally speaking whenever you have an R&#038;D lab, you want to pump as much money into it as you can possibly spare. Generally, R&#038;D labs are rather good at soaking up almost infinite amounts of money.</p>
<p>Compare the revenues and the expenditures of, say, GTA IV with those of Bookworm Adventures. The latter may have been much much more profitable in percentage terms, but the former made a bigger amount of money overall. Often, the sheer amount of money you make is more important than your profit percentage.</p>
<p>3. I decided to write these blog posts after a comment I made to <a href="http://www.playnoevil.com/serendipity/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.playnoevil.com/serendipity/');">Steven Davis</a> about the problems of publishers owning development studios, which he replied to with “Actually, the publishers should fund these things like a movie studio or VC. Let them be independent, get them off the books, and use your money to control distribution or via publishing rights.”</p>
<p>I’d been thinking along similar lines, but I also realised I saw some big problems with the approach, so I thought it would be interesting to explore in more detail. But if he hadn’t made the comment, I probably wouldn’t have got around to it :).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/09/14/whats-the-future-for-game-development-studios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publishers are from Mars, Developers are from Venus</title>
		<link>http://t-machine.org/index.php/2008/09/09/publishers-are-from-mars-developers-are-from-venus/</link>
		<comments>http://t-machine.org/index.php/2008/09/09/publishers-are-from-mars-developers-are-from-venus/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 09:46:49 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[recruiting]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=248</guid>
		<description><![CDATA[Over the last few years, there has been a big shift in power and success away from independent studios, and towards in-house, publisher-owned studios. This has been driven by several things, sound economic reasons, competitive reasons, and because the strong independent studios had done a good job at creating a slew of new IPs (which [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few years, there has been a big shift in power and success away from independent studios, and towards in-house, publisher-owned studios. This has been driven by several things, sound economic reasons, competitive reasons, and because the strong independent studios had done a good job at creating a slew of new IPs (which publishers were eager to snap up, as always).</p>
<p>In my experience relatively few people in the games industry realise this, but all these things are cyclical (it’s a lot more obvious in non-niche industries, like the IT industry, where you have many more companies, and the billion-dollar companies can’t be counted on one hand). So, what’s next? What’s going to happen over the next 3-5 years?</p>
<h4>Some (recent) history</h4>
<p>My last job was working for a large publisher (NCsoft &#8211; <a href="http://ncsoft.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://ncsoft.com');">http://ncsoft.com</a>) where we were setting up a new internal development studio from scratch. When I arrived I there was only one other person (plus my manager). We were doing a lot of other things at the same time &#8211; external development, pitching new internal projects, etc &#8211; but over the course of the first year I spent a lot of time looking at what we had to do to get a studio up and running, starting from scratch.</p>
<p>Interesting and fun. But also … surprisingly difficult. I’ve been one of the first employees at a couple of startups, and founded some, so I’m accustomed to starting up teams and departments, and a lot of the problems we encountered with this studio were just variations on familiar themes. But then there were also some new ones, side-effects of being inside a huge, well-established, publisher &#8211; one whose head-office was on the other side of the world, where the vast majority of the staff didn’t share any languages with the vast majority of the publishing office in our country, and our staff.</p>
<p>To summarize: the things that should have been completed fast were incredibly slow, and the things that should have been easy often turned out to be extremely hard. My definition of “should have” here is based on “whatever plays to the strengths of large corporates”.</p>
<p>As that became clear, one option would have been to throw up our hands and say: “this company is crap! No other similar company works this way!”. Instead, I dug deeper, and tried to understand how it was that we seemed to be seeing a lot of the opposite of what I expected. Sure, a lot of it could be explained by some over the top internal politics, and some by issues with individuals, but … this is a billion-dollar public company, and it’s foolish to think that management could be so weak and disorganized that a few internal battles and a few individuals could cause major aims of the organization to fail. No, there were underlying problems that were natural side-effects of the way the company worked. IMHO, these same issues are almost certainly causing problems for other internal development studios already, and will probably be major contributory causes of the move away from internal studios (when that day comes).</p>
<blockquote><p>Publishers exist to make profit, every day; Developers exist to make a loss, every day</p></blockquote>
<p>I could stop there. In that one sentence is encapsulated a problem so powerful and subtle that it’s more than capable of causing all the secondary problems &#8211; the ones people actually notice &#8211; that lead to publisher/developer acrimony when the two are together in the same company.</p>
<p>A traditional publisher is a box-shifter that pays a hefty license fee for exclusive rights to import a popular, trendy product from a foreign country. The things they need to be good at are:</p>
<ul>
<li>Identifying the Next Big Thing, and signing an exclusive deal before anyone else gets it
<li> Efficiently importing that thing and distributing it out to mass-market consumers (this is where most of the opportunity for profit exists)
<li> Persuade as many people as possible to buy the product, as quickly as possible, for as high a price as possible (this is where ALL their revenue comes from)
</ul>
<p>Why did I mark the SECOND point as the point for profit? Because profit is extracted through the differential between the costs generated in that bullet point, and the price point that the publisher &#8211; arbitrarily &#8211; places on the product as sold to retailers (who then, typically in retail (forget the games industry &#8211; this is normal for all industries!) double the price again before selling to consumers).</p>
<p>The price point can be … anything you want. The volume you sell comes from the third bullet &#8211; but you have NO control over how much you sell. You *try* to sell as much as you can, but you cannot wake up tomorrow and *decide* to double sales. However … in contrast, you can wake up tomorrow and *decide* to halve costs. Or double them. So you focus on that middle bullet point: Efficiency (while making sure you assign a healthy slab of money to a sales + marketing department, and set them “targets” to try and meet).</p>
<p>A traditional developer is an R&#038;D (research and development) laboratory. They try to be as scientific as possible, whilst spending every day working with masses of unknowns (and several unknowables &#8211; what is “fun” anyway?). After working for an indefinite period of time (no way of telling how long it will take) they’re trying to create (or discover) something that has never been created before, and which satisfies various criteria &#8211; many of which cannot be measured until after the project is complete.</p>
<p>They absorb money like a dry sponge in a puddle, with very little to show for it. The things they need to be good at are:</p>
<ul>
<li>Securing as large a pile of resources as they can, and spending it to the fullest
<li> Trying crazy stuff that they can’t explain, and waiting to see what will happen
<li> Sticking as close to the cutting edge as possible, and always investing in long-term improvements
</ul>
<p>Why do they have to secure a large pile of resources?</p>
<p>Because their success is limited only by two things: their resource, and their skill. That translates into three concrete things:</p>
<ul>
<li>How good is their equipment? (”equipment” means EVERY TOOL they use to do their work &#8211; including lots of indirect things that you may not think of as “tools”)
<li> How much reagants and raw materials do they have? (everything consumable … including “time” … that could contribute towards doing MORE experiments)
<li> How good are their staff?
</ul>
<p>Those three things are, in turn, only limited by “money” and “the quality of the people they hire”.</p>
<p>Publishers hate this. No, that’s not strong enough; Publishers REVILE, DESPISE, RESENT and LOATHE Developers for always, ever, and only going after those two things. And … they don’t understand it.</p>
<p>Frankly, as a box-shifter, with “efficiency” your only concern, WHO GIVES A F*** HOW “GOOD” YOUR PEOPLE ARE?</p>
<p>But that’s not the worst. No, the worst is this: as a box-shifter, the only thing you can directly control is your costs. Everything in your business, from the structure, to the choice of staff, to the processes, is designed to reduce costs. And what does every R&#038;D laboratory obsessively try to do? Yep &#8211; raise costs!</p>
<p>If you ask a Publisher to create, fund, nurture, and partner with a Developer, you are asking the staff to encourage, to aid and abet, the one thing that you are already telling them every day to hunt down and destroy. Capiche? Does anyone see a problem here?</p>
<h4>Developers in the Wild: R&#038;D for profit</h4>
<p>Well, this is clearly insane &#8211; how could a Developer ever make a profit? The answer can be found most easily by looking to the one place in the world where R&#038;D laboratories make more money than anywhere else: Silicon Valley.</p>
<p>In the Valley, the Technology guys have become Entrepreneurs (or found an Entrepreneur to work with), and they’ve gone out there and applied their intelligence to a new problem: “Given this thing I’ve created, which is novel and cool and awesome, how could I use it to drive a product that people would pay for, and which (because of my NEW tech) I can sell cheaper than what is available, or (because of my NEW tech) does something people have been trying to pay for but been unable to find a working solution for?”</p>
<p>Despite appearances otherwise, good Developers are very similar to Valley Technology Startups: it’s all about the monetization, the capitalization &#8211; what bridge are you going to build between “what you’ve created” and “someone who has money and a problem”, and HOW are you going to build that bridge?</p>
<p>“Sell the exclusive publishing rights” is one bridge. It can be built many ways.</p>
<p>“Create an infrastructure that lets us deliver this product to the public, and take money from them” is another bridge, with just as many potential schematics.</p>
<p>But then there are others too, many others. Just because those two are the ones that the game-playing public tends to talk about (and are the two that Publishers are most familiar with) doesn’t &#8211; by any stretch of the imagination &#8211; mean those are the only ones that exist. Ask Blitz (an independent developer) about their Advergames for Burger King (definitely not-a-game-publisher). But, in general, just like in the Valley, the “other” bridges are tricky to invent, and tend to make someone rich just once or twice once invented and done for the first time. There are always new bridges to invent, and if the Technology person’s main role is to invent new tech, the Entrepreneur’s main role is to invent new bridges. So don’t be surprised if you find it hard to think of some.</p>
<p>What happens when a Publisher catches a Developer, puts it in a cage, and ships it back home? Or, more specifically, what do they do to the people that are thinking up innovative new bridges for monetizing the Developer’s assets, and trying to implement them? I’ll give you a clue: if everyone you know believes the world is flat, and has never walked more than a few hundred miles, and one day you meet a person who claims to have walked around the circumference of the planet, would do you do?</p>
<p>Yep. These people tend to be first in the firing line when nerves start to fray and the tensions between Developer and Publisher flare up. They’re an easy target &#8211; they make no sense to the Publisher, and their very existence is an affront to their core business model, to their box-shifter mentality (it suggests that the box-shifter is doing a simpler business, something run by simpler, less imaginative, more stupid, people).</p>
<p>UPDATE: I’ve just written a followup looking at <a href="http://t-machine.org/index.php/2008/09/14/whats-the-future-for-game-development-studios/" >one of the possible future directions</a> coming out of this</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/09/09/publishers-are-from-mars-developers-are-from-venus/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Java Web Start / JNLP maker</title>
		<link>http://t-machine.org/index.php/2008/05/11/java-web-start-jnlp-maker/</link>
		<comments>http://t-machine.org/index.php/2008/05/11/java-web-start-jnlp-maker/#comments</comments>
		<pubDate>Sun, 11 May 2008 19:24:31 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=172</guid>
		<description><![CDATA[A few years ago I wrote a web-service that would automatically create JNLP files, making it much easier to deploy java applications. They&#8217;re just XML files, but they have some very odd syntactical quirks and can be a pain in the ass to get working correctly. This post has an early alpha version that works [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago I wrote a web-service that would automatically create JNLP files, making it much easier to deploy java applications. They&#8217;re just XML files, but they have some very odd syntactical quirks and can be a pain in the ass to get working correctly. This post has an early alpha version that works as a downloadable application you can run from your desktop.<br />
<span id="more-172"></span><br />
I kept hoping someone would get around to making a simple, easy to use, desktop equivalent. But it didn&#8217;t seem to happen, so today I was browsing through the code and decided I&#8217;d convert it to a desktop version, and give it away. So, here it is: a program that lets you specify all the config for your java web start application and then creates a JNLP for you automatically.</p>
<p>You need ALL the attached jars, download them into the same directory. Then run jnlpcreator-bin.jar</p>
<p>NB: this is a work-in-progress &#8211; the Save and Test buttons don&#8217;t do anything yet, but you can get a lot of the functionality just by using the Preview button and copy/pasting out of the window that it pops up.</p>
<p>NB2: for some reason, teh popup window doesn&#8217;t popup on OS X. I have no idea why.</p>
<p>NB3: there are still some old references to the original hardcoded paths in the codebase and href at top of the JNLP; you&#8217;lll need to manually correct those for now, but next version I&#8217;ll replace them with some clever uto-generated stuff.</p>
<h4>Files to download (you need ALL of them):</h4>
<ol>
<li><a href='https://t-machine.org/wp-content/uploads/2008/05/jnlpcreator-bin.jar'>jnlpcreator-bin</a></li>
<li><a href='https://t-machine.org/wp-content/uploads/2008/05/log4j.jar'>log4j</a></li>
<li><a href='https://t-machine.org/wp-content/uploads/2008/05/tmachine-basics.jar'>tmachine-basics</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/05/11/java-web-start-jnlp-maker/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Funorb first impressions</title>
		<link>http://t-machine.org/index.php/2008/04/09/funorb-first-impressions/</link>
		<comments>http://t-machine.org/index.php/2008/04/09/funorb-first-impressions/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 22:09:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=149</guid>
		<description><![CDATA[(the new casual games portal from Jagex, the people behind Runescape)
 &#8211; good game/website integration, very smooth
 &#8211; very basic game design &#8211; most games seem to ahve never been playtested, or designed by very novice game-designers. Most simply aren&#8217;t fun, and need just a few basic tweaks.
 &#8211; control systems mostly awful, bouncing and [...]]]></description>
			<content:encoded><![CDATA[<p>(the new casual games portal from <a href="http://www.jagex.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.jagex.com/');">Jagex</a>, the people behind <a href="http://www.runescape.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.runescape.com/');">Runescape</a>)</p>
<p> &#8211; good game/website integration, very smooth<br />
 &#8211; very basic game design &#8211; most games seem to ahve never been playtested, or designed by very novice game-designers. Most simply aren&#8217;t fun, and need just a few basic tweaks.<br />
 &#8211; control systems mostly awful, bouncing and snapping and with unnecessary lag.<br />
 &#8211; No ability to see your achievements! Achievements rock, but they don&#8217;t seem to understand the main point of them &#8211; showing them off.<br />
 &#8211; artwork and sound are extremely polished.</p>
<p>Summary:<br />
 &#8211; a very highly-polished (graphics, sound) attempt to clone Pogo, but without fully understanding how and why it works so well, and ultimately coming tragically short. Go play <a href="http://Kongregate.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://Kongregate.com');">Kongregate</a> instead &#8211; its much more of a mixed bag, but the overall experience is much, much more satisfying.</p>
<p>(Notes from several weeks ago, accidentally clicked save instead of publish at the time)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/04/09/funorb-first-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GDC08: SQL Considered Harmful</title>
		<link>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/</link>
		<comments>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 01:14:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[GDC 2008]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[massively multiplayer]]></category>

		<guid isPermaLink="false">http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/</guid>
		<description><![CDATA[Summary
Speaker: Shannon Posniewski, Cryptic
I was expecting something shockingly naive and/or stupid from the title of the session. The first thing the speaker said was that the title was completely wrong, so I ran with that. With that out of the way, the talk was fine, although small things kept coming out during the talk that [...]]]></description>
			<content:encoded><![CDATA[<h4>Summary</h4>
<p>Speaker: Shannon Posniewski, Cryptic</p>
<p>I was expecting something shockingly naive and/or stupid from the title of the session. The first thing the speaker said was that the title was completely wrong, so I ran with that. With that out of the way, the talk was fine, although small things kept coming out during the talk that were hard to believe or worrying claims.</p>
<p>So it was going OK, until &#8230; right at the end, just before the Q&#038;A, and partly during the Q&#038;A, the speaker dropped some serious shockers:<br />
<span id="more-113"></span><br />
 &#8211; they&#8217;ve never actually used this custom DB: everything that the speaker says RDBMS&#8217;s can&#8217;t do he doesn&#8217;t yet know for sure that his proprietary DB server can do either<br />
 &#8211; they never bothered to try alternative SQL servers, they just used MS SQL Server<br />
 &#8211; they&#8217;d never heard of Versant until after they&#8217;d developed this proprietary DB &#8211; apparently they never did any evaulating of other possible DB engines<br />
 &#8211; they&#8217;ve created their own proprietary query language based on C and C syntax, and don&#8217;t find any value in using SQL</p>
<p>Disclaimer: I recently started to work for the company that published CoH/CoV, and apparently forced the speaker into using SQL and an RDBMS in the first place. I didn&#8217;t join the company until a long time after this had all happened, and I work in a different division in a different continent, so everything in this talk was new to me (although I admit I&#8217;d be fascinated to hear what NCsoft&#8217;s thoughts were on these development directions)</p>
<p>My own commentary in [ square brackets ], any mistakes/misunderstandings my own fault :).</p>
<h4>Title</h4>
<p>The title is deliberately wrong and provocative &#8211; it&#8217;s really that current vendor solutions are inappropriate for the needs of MMOs</p>
<h4>Databases 101</h4>
<p>[Adam: spent 15 mins explaining basics of modern database usage:</p>
<p>ACID explanation</p>
<p>Relational explanation</p>
<p>SQL explanation</p>
<p>Keys explanation]</p>
<p>SQL DBMSs are safe, tested, used by practically everyone, lots of experience of using them exists.</p>
<h4>Why not use it [SQL + RDBMS]?</h4>
<p>SQL is optimized for the general case, and is generally &#8220;OK&#8221; &#8211; it will never be terrible. It will always work..</p>
<p>Sometimes queries take a long time to setup &#8211; creating an index automatically, etc.</p>
<p>It self-optimizes on the fly with caching etc, but that introduces stalls at unpredictable times. Unpredictable latency caused by this is very bad because sometimes you e.g. try to pick up something in the game world from within the game client, and nothing happens, so user is confused &#8211; because of that latency.</p>
<p>[Adam: if this strikes you as very strange behaviour for an RDBMS, you are not alone. It might help to know that the end of the talk, the speaker revealed that they'd only ever used Microsoft SQL Server and hadn't bothered trying out any alternative RDBMS's, and didn't really know much about the others]</p>
<p>Inserts are extremely slow &#8211; just for each single row that you insert. Because of all the overhead of checking for consistency etc, inserts are slow.</p>
<p>Once you&#8217;ve got data into the database, the per-row overhead to update anything in the row is also fairly expensive (although you can do several changes per row at once for almost no extra penalty).</p>
<h4>Object-Relational Impedance Mismatch</h4>
<p>Trying to map OO systems into Relational databases is painful and shoehorning it comes with lots of performance loss.</p>
<p>Every class I&#8217;ve ever seen in database architecture talks about normalizing all your data. Doing it that way &#8211; the &#8220;right way&#8221; &#8211; can really backfire on you.</p>
<p>[Adam: ... apart from all the other classes in DBA, the ones that also talk about DE-normalizing data. I went to different database classes than the speaker, apparently :) ]</p>
<p>On COH we had this idea that we&#8217;d store statistics on each individual player &#8211; how many times did they pick stuff up, how many times did they kill people, how long they spent online, the number of times they trash-talked in chat, etc.</p>
<p>[Adam: i.e. gameplay metrics, a la the work done by Bungie with Halo heatmaps, or by various 3rd party companies at the moment in the games industry. Cool stuff]</p>
<p>We made a table where there was one row-insert per player PER piece of data that had changed. Some of those stats change all the time, like &#8220;how long have they been online&#8221;.</p>
<p>So the traffic to the database was extremely high, because each thing had to be updated constantly.</p>
<p>[Adam: Well ... IME this isn't the *normal* way of dealing with that use-case, so I'm not surprised it bombed. If they'd approached it in a more standard way, using simple multi-server database organization, I suspect it might have worked out fine from the start]</p>
<p>So &#8230; we threw out all the tranditional DB concepts, and made one column per stat, with no actual names for columns, instead just have &#8220;Stat 1 value&#8221;, &#8220;stat 2 value&#8221;, etc.</p>
<p>[Adam: I really don't get how this ever even seemed like a sensible idea, but there was a long queue of people asking questions at the end so I didn't manage to ask before I had to go to next session]</p>
<p>In the interests of performance, we were twisting our data, either in code, or in the DB, or in both places. This became a huge impedance to our development process.</p>
<h4>Solution: Caching</h4>
<p>Problems:<br />
 &#8211; unexpected unpredictable 1-second and multi-second latencies</p>
<p>[Adam: I'm really suspcipious about this problme - where is it coming from?]</p>
<p>Solution:<br />
 &#8211; created a server process that all DB calls from other server processes were indirected through<br />
 &#8211; it had a second thread that was busy writing stuff out to the DB<br />
 &#8211; appeared that all writes were instantaneous, but they were being buffered.<br />
 &#8211; i.e. write-through cache<br />
 &#8211; all changes you made in game-server memory would show instantly as having been committed</p>
<p>Problems2:<br />
 &#8211; throughput was still far too slow, although at least now there was no latency</p>
<p>Solution:<br />
 &#8211; instead of updating every stat every time it changes, we did &#8220;snapshots&#8221; and only occasionally save them<br />
 &#8211; &#8230;but means that there was no ACID properties being used any more except for Durability</p>
<p>Since that was shot anyway, we went whole-hog, basically. What we decided was we&#8217;d keep all the data for the players on a given map on that game server. The database was being used just as a storage engine instead of as a transaction engine. The business logic is now all inside the game-server, and we just periodically flush it all out to the DB.</p>
<p>Problems3:<br />
 &#8211; lost data<br />
 &#8211; server-server comms</p>
<p>Solution:<br />
 &#8211; flush data faster</p>
<p>Conclusion: we optimized the servers, the database engine, to the point that we lost all the benefits of RDBMSs. All the ACID stuff etc had just become a hindrance to us.</p>
<h4>Final solution: Cryptic DB</h4>
<p>Requirements<br />
 &#8211; regain ACID benefits<br />
 &#8211; low predictable latency<br />
 &#8211; high read/write throughput<br />
 &#8211; minimize code-db impedance (the schemas changed very often, and that was very painful)<br />
 &#8211; backup and restore easily</p>
<p>[Adam: suggests that hiring a professional DBA, and using a commercial OODB, would be the best option to start with]</p>
<p>Relaxations<br />
 &#8211; offline character access is unimportant<br />
 &#8211; domain integrity became the responsibility of the programmer<br />
 &#8211; general ad-hoc queries can be slow (we don&#8217;t use them)<br />
 &#8211; SQL not needed</p>
<h4>Background &#8211; some stuff they&#8217;d already done</h4>
<p>In CoX we took all static data (mission data, character class template etc) and didn&#8217;t put it into a DB. We stored it on disk and loaded it into memory manually.</p>
<p>To help us do this, we created a &#8220;StructParser&#8221; [just a serialization tool]. This was what we used to start building Cryptic DB. We wrote a pre-parser that looked at our C structs in the source code and wrote out parserss/serializers for it.</p>
<p>Using this for live data as well as static gave us benefits of not having two different storage systems in parallel.</p>
<p>[Adam: in general, that's a pretty good thing to achieve]</p>
<p>Allowed us to create generic mutators, because we know the datatypes and memory layout. So, now we have a generic mutator database. Only simple operations at this point, like mathematical addition of a single counter.</p>
<p>Complicated things like checking whether to allow a trade (lots of rules and things to check) need business logic. We decided to sepaaret the data and logic away from the database, and put it into our game server.</p>
<p>A particular game server owns the data for an entity. E.g. a team server would know about teams, and anything that has to do with teams will be held on that server. It knows how to modify those entities.</p>
<p>[architecture diagram]</p>
<p>Most transactional actions are now being done locally only, so execute extremely fast.</p>
<p>To make it easier to develop, we created auto-transactions. These instrument and change the code so that transactions are written in C. We did field-level locking on the items we were modifying.</p>
<p>[C code with a bunch of special macros implementing a basic transaction, but mostly written in C]</p>
<p>[Adam: here he gave a simple example of distributed transaction processing (although he didn't call it that), enough to convey the general idea, although he ommitted the details that make DTP hard / interesting technically]</p>
<p>Cryptic DB uses basic journal-based techniques for data consistency longterm.</p>
<h4>Conclusion</h4>
<p>We&#8217;ve tried stored procedures etc, doesn&#8217;t work. Other MMO devs have had to resort to using solid-state disks etc to make it work fast enough. So, don&#8217;t just believe what they say in database classes.</p>
<p>[Adam: the mention of SSD is disingenuous: only one MMO company has decided to try that, and their from Iceland so they're a bit odd anyway (/me ducks and runs for cover) - but seriously for them it's part of an overall game-design and/or technology strategy - they aimed for and achieved gameplay that Cryptic hasn't (single-server world)]</p>
<h4>Q: Did you look at federated data as a solution?</h4>
<p>We looked a little, didn&#8217;t try to implement it, because we&#8217;d worked out a proprietary solution already that we reckoned would work.</p>
<p>Latency would still be a problem anyway with it.</p>
<h4>Q: How do you handle corruption of data in your DTP?</h4>
<p>There&#8217;s certain things we relax &#8211; we don&#8217;t worry about cosmic rays flipping bits randomly.</p>
<p>Within the database, everything is checksummed.</p>
<h4>Q: what&#8217;s the throughput of your cross-server transactions? How many of your servers are local versus distributed?</h4>
<p>I would say at a guess we have a very small number of distributed TP&#8217;s. We have a zoned games, so almost everything is local, probably less than 5%.</p>
<p>I have no idea how much slower cross-server transactions are. I don&#8217;t think they&#8217;re particuarly slower, the biggest problem is just the overhead of having to wait for the locking of data. Probably a couple of times slower, but not an order of magnitude.</p>
<h4>Q: you&#8217;re saying that with your proprietary &#8220;Cryptic DB&#8221; you keep all data in memory. What do you do when you hit the limit of RAM in a machine?</h4>
<p>It&#8217;s a pretty straightforward task to virtualize your memory. If you&#8217;re WoW you&#8217;ve got no chance of fitting it all into memory, so you only keep in memory the working set of characters that are online right now.</p>
<p>If you still run out, then we make a second shard. We&#8217;re talking tens and hundreds of thousands of simultaneous players before we get to that problem.</p>
<h4>Q: Do you cluster machines to make the DB?</h4>
<p>It&#8217;s one giant machine with a lot of memory in it</p>
<p>[Adam: which would suggest you could benefit from SSD, maybe... :P]</p>
<h4>Q: Have you considered co-locating the data cache with the servers themselves?</h4>
<p>No. We haven&#8217;t needed to consider it yet.</p>
<p>You can compress the data in memory and other tricks, so it&#8217;s not a problem yet.</p>
<h4>Q: how do you do backups?</h4>
<p>A set of three servers work together to make sure they can handle the load and so that they can ensure they are being back up correctly.</p>
<p>These are effectively zipped flat files, for simplicity. There&#8217;s one server frontend to rest of games, responding to read requests and making in-memory changes for transactions that come through. The second server is slaved to it, and every once in a while writes out an image of it&#8217;s DB in a safe way. The last server picks up the things that have been changed and merges them into the master DB. Master DB is then copied back to first and second servers.</p>
<p>At any one spot in the change the data is consistent within that one machine. There may be a huge journal at some point, but it will be consistent.</p>
<p>It turns out that MMO players care more about not being able to play than about losing ten minutes of game data. By about an order of magnitude.</p>
<p>When someone claims they lost a Sword of Death, don&#8217;t worry too much, just give them a new sword, because you save a lot of pain and money in customer support costs.</p>
<h4>Q: Sounds like you&#8217;ve made an OODB, how does that compare with Objectivity or Versant? And the disadvantage of an OODB seems to be the loss of querying ability, so you can&#8217;t research behaviour or do metrics to examine your gameplay etc &#8211; how do you sovle that?</h4>
<p>When we started working on this we didn&#8217;t know that Versant existed. We only found out when we first spoke about it publically.</p>
<p>Other ones we knew about but we already had what we wanted from a previous game that was fully tested by us and used in produciton. We were going to have to worry about learning the vendor specifics, and converting our data and pipeline stuff.</p>
<p>I&#8217;m also not convinced that an OODB would have worked for the stuff we&#8217;re trying to do. We&#8217;re writing a lot of code, and the fact you can write AUTO_TRANSACT at the top of a function, and knowing it will Just Work is worht it&#8217;s weight in gold.</p>
<p>Re: adhoc queries, we have created a proprietary query language that looks a lot more like C than it does like SQL.</p>
<p>If for some reason we lack a feature we need in our DB, it&#8217;s so easy for the DB to interact with C code that you could just write the damn thing in C and have the DB execute that.</p>
<h4>Q: Is this in production?</h4>
<p>No</p>
<h4>Q: How do you test it?</h4>
<p>We eat our own dogfood. The true test will be the next time we have a game that goes live.</p>
<p>We have a zillion stress tests, and run that stuff routinely, of course. Right now we just have test-harnesses that fake it.</p>
<h4>Q: Could you have made Cryptic DB from the start, or did you only learn it by using SQL from the start? Did you get anyt benefit from SQL?</h4>
<p>We got nothing from SQL, it was forced upon us by our publisher who forced us to use SQL. NCsoft were doing network operations and backups etc, so they said look we already know how to use it, and go ahead with it.</p>
<p>I have no idea if we&#8217;d have used it given free chance.</p>
<p>We learnt from it that variant latency is a killer, and learnt where the major bottlenecks were in MMO data writing, so we did learn a lot by working with SQL that was transferable knowledge.</p>
<h4>Q: How do you handle verisoning on the data, like schema changes?</h4>
<p>The actual DB if it sees a field that it doesn&#8217;t know, it just ignores it silently. If we add a field that isn&#8217;t there, it silently creates it.</p>
<p>We set things to zero or null to create them.</p>
<h4>Q: Do you have a central contorl of the DB design, the schema?</h4>
<p>Every programmer can add whatever fields they want. We haven&#8217;t run into any problems with it yet.</p>
<p>There&#8217;s a certain data structure which is the character definition. At the start of the project someone sat down and designed that, and that doesn&#8217;t change often. What does change is the occasional adding of a new data field every now and then [i.e. no additional tables being added]</p>
<h4>Q: How much did it cost in money and hours to build?</h4>
<p>Whole system from start to finish was two people for maybe a year.</p>
<h4>Q: Did you try multiple implementations of your SQL server? Different vendors?</h4>
<p>No, we did not. There was no indication to us why different ones would ever be faster, so it didn&#8217;t seem worth investigating it. I think it is problems endemic to all databases in general.</p>
<p>unless, maybe, you just spent huge amounts of time and effort on database administration. We don&#8217;t know how many players we will have, so we can&#8217;t actually define optimal schemas and things in advance.</p>
<p>One of our main goals was to spend more time on game coding and less on database coding.</p>
<h4>Q: did you spend a lot of time profiling your SQL server?</h4>
<p>I think we tried profiling everything, automatically created indexes, stored procedures, etc. We got maybe 15%, 20% improvement, and DBA&#8217;s think that&#8217;s great, but we were looking for multiple hundreds of percent improvement in performance.</p>
<h4>Q: Does your new DB store quests?</h4>
<p>It stores state for how you&#8217;re progressing through, but not yet the actual quest template data.</p>
<h4>Q: Have you looked at any vertical file DB systems?</h4>
<p>No.</p>
<p>It&#8217;s entirely possible that it&#8217;s much faster than using Relational. We were already used to using SQL so we kept in that direction.</p>
<h4>Q: will you be releasing this as a third-party DB?</h4>
<p>Maybe &#8211; but not at least until we&#8217;ve put it into production for ourselves!</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2008/02/21/gdc08-sql-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Re-install complete; blog should be OK</title>
		<link>http://t-machine.org/index.php/2007/08/14/re-install-complete-blog-should-be-ok/</link>
		<comments>http://t-machine.org/index.php/2007/08/14/re-install-complete-blog-should-be-ok/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 01:28:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/index.php/2007/08/14/re-install-complete-blog-should-be-ok/</guid>
		<description><![CDATA[Someone brute-forced their way into the server last week, my fault for not disabling all logins to the server.
Normally, this isn&#8217;t a problem, as the default firewall setup I always use prevents any remote logins except from known-good hosts. However, this server was accidentally provided with partially missing firewall code by the hosting company, and [...]]]></description>
			<content:encoded><![CDATA[<p>Someone brute-forced their way into the server last week, my fault for not disabling all logins to the server.</p>
<p>Normally, this isn&#8217;t a problem, as the default firewall setup I always use prevents any remote logins except from known-good hosts. However, this server was accidentally provided with partially missing firewall code by the hosting company, and so I couldn&#8217;t run my firewall without first upgrading the kernel. And I&#8217;d been &#8220;too busy to get around to&#8221; doing that&#8230;<br />
<span id="more-23"></span><br />
Oh well. Fortunately, I had a very recent backup of the blog, and I&#8217;ve now discovered a couple of major flaws in WordPress&#8217;s backup system (note: it doesn&#8217;t bother even trying to backup your uploads, embedded images, etc) that I can now change my backup procedure to accomodate.</p>
<p>Apologies to anyone trying to follow the links in the last 6 hours. You were probably locked-out &#8211; I firewalled off the whole machine for a few hours to investigate how they got in and what they did once they were in. You still have to wipe all harddisks and re-install, of course, but you need first to find out how they did it, or you have no way of making sure they don&#8217;t get in again.</p>
<p>Oh, and I kept enough incriminating evidence to give to the police / FBI if the hosting providers manage to track down the perpetrators. One of them left his IP address in, but I&#8217;m pretty sure that was just another compromised host (have informed the large, famous, north-american telco it came from. Probably one of their naive users with a compromised windows 2k/xp box).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2007/08/14/re-install-complete-blog-should-be-ok/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Server got hacked; has now been wiped</title>
		<link>http://t-machine.org/index.php/2007/08/14/server-got-hacked-has-now-been-wiped/</link>
		<comments>http://t-machine.org/index.php/2007/08/14/server-got-hacked-has-now-been-wiped/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 00:29:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/?p=3</guid>
		<description><![CDATA[Sorry, the entire blog is temporarily offline whilst I re-install the server. Will be restoring from backup imminently.
Adam
]]></description>
			<content:encoded><![CDATA[<p>Sorry, the entire blog is temporarily offline whilst I re-install the server. Will be restoring from backup imminently.</p>
<p>Adam</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2007/08/14/server-got-hacked-has-now-been-wiped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Post</title>
		<link>http://t-machine.org/index.php/2007/07/08/hello-world-2/</link>
		<comments>http://t-machine.org/index.php/2007/07/08/hello-world-2/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 20:15:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tmachine1.dh.bytemark.co.uk/blog/?p=7</guid>
		<description><![CDATA[oh, the excitement.
oh, the drama!
Another First Post from Adam&#8230;
]]></description>
			<content:encoded><![CDATA[<p>oh, the excitement.</p>
<p>oh, the drama!</p>
<p>Another First Post from Adam&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2007/07/08/hello-world-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
