<?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</title>
	<atom:link href="http://t-machine.org/index.php/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>Wed, 01 Sep 2010 12:09:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>VCs, Angels, and Beta Pages: They&#8217;re wrong</title>
		<link>http://t-machine.org/index.php/2010/08/31/vcs-angels-and-beta-pages-theyre-wrong/</link>
		<comments>http://t-machine.org/index.php/2010/08/31/vcs-angels-and-beta-pages-theyre-wrong/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 11:00:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=1001</guid>
		<description><![CDATA[There is a curse afflicting the startup world right now. It&#8217;s insidious, it&#8217;s harmful, and &#8211; as a potential customer &#8211; I&#8217;m fed up of running into these brick walls of customer-hatred. Each time it happens, yet another startup generates massive harm for itself, and I&#8217;d like to see this madness STOP. (by &#8220;startup world&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>There is a curse afflicting the startup world right now. It&#8217;s insidious, it&#8217;s harmful, and &#8211; as a potential customer &#8211; I&#8217;m fed up of running into these brick walls of customer-hatred. Each time it happens, yet another startup generates massive harm for itself, and I&#8217;d like to see this madness STOP.</p>
<p>(by &#8220;startup world&#8221; I mean: West-coast USA-style startups &#8211; i.e. Silicon Valley VC&#8217;s and Angels, the startups they back, the people seeking money from there, and any startup that follows their way of thinking. I do *not* mean &#8211; for instance &#8211; old-style Europe startups, who haven&#8217;t even grasped the idea of a pre-funded &#8220;beta&#8221; release yet. This post probably will sound new and scary to some of them. For everyone else, this is already standard practice)</p>
<p>EDIT: I forgot (!) to add: when it works, for the startups that use it sparingly, and for the *minority* that are well-suited to it, it works fine. But the current trend is for *everyone* to try it &#8211; and that&#8217;s where the failure lies. &#8220;When all you have is a hammer&#8230;&#8221;</p>
<h4>What are we talking about?</h4>
<p>Startups today are advised to build a micro-website with just 1-3 pages that gathers people&#8217;s email addresses and does nothing else. This is supposed to show &#8220;traction&#8221; (in the number of emails captured) and &#8220;early lead generation&#8221; (by creating a pre-made mailing list of potential customers you can later approach), as well as &#8220;idea/product feedback from potential customers&#8221; (soliciting opinions from these people by emailing them and trying-out your ideas on a fresh audience &#8211; BEFORE spending the money to make the product).</p>
<p>I can&#8217;t remember where I first saw this, but its been promoted by a number of major VC&#8217;s on their blogs and tweets, and it&#8217;s generally seen as a sign that a startup is hip and modern and knows its shit. From memory, it&#8217;s been popularized too by things like Y Combinator, Seedcamp, etc &#8211; the places that up-and-coming startups go to learn &#8220;how to be better at being a startup&#8221;.</p>
<h4>The importance of courting Early Adopters</h4>
<p>First para of wikipedia&#8217;s summary on what is an <a href="http://en.wikipedia.org/wiki/Early_adopter_%28marketing%29" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Early_adopter_%28marketing%29');">Early Adopter</a>?</p>
<blockquote><p>
Typically this will be a customer who, in addition to using the vendor&#8217;s product or technology, will also provide considerable and candid feedback to help the vendor refine its future product releases, as well as the associated means of distribution, service, and support.
</p></blockquote>
<p>Why do we care about these people? Because we certainly do care; we care very much. Startups pore vast amounts of energy into wooing this crowd.</p>
<p>In this context, there&#8217;s several valuable uses of these people (</p>
<ol>
<li>They&#8217;re customers: they&#8217;ll pay us
<li>They&#8217;re &#8220;easy sell&#8221;: by their nature, and their needs, they&#8217;ll buy the product with only a small amount of urging
<li>They&#8217;re trendstters: they will do considerable amounts of marketing *on our behalf*, unasked-for, and unpaid
<li>They&#8217;re vocal on feedback: they give us huge amounts of valuable insight into what&#8217;s good and bad about our product, and what we could/should/mustn&#8217;t change about it. Ditto for pricing. Ditto for marketing. Everything, really &#8211; they&#8217;re like the world&#8217;s most friendly and hard-working investor, giving the most honest feedback about the company&#8217;s products every single day
</ol>
<p>Three things on that list shine brightly, and are where old-style startups haven&#8217;t caught up yet: these people massively reduce the startup&#8217;s SALES and MARKETING costs. A small, lean startup doesn&#8217;t yet have the cash to hire a sales team. Nor a marketing team. Also, the founders usually don&#8217;t *quite* know what it is they&#8217;re selling, or how best to describe it.</p>
<p>These early adopters make SALES EASY, they do FREE MARKETING, and they ADVISE ON WRITING A BETTER SALES MESSAGE. Wow. Awesome!</p>
<h4>When Early Adopters Turn Bad</h4>
<p>Let&#8217;s look at the *second* para of Wikipedia&#8217;s description:</p>
<blockquote><p>
The relationship is synergistic, with the customer having early (and sometimes unique, or at least uniquely early) access to an advantageous new product or technology.
</p></blockquote>
<p>i.e. for all that FREE juicy goodness your Early Adopters are giving you, you&#8217;re expected (usually: required) to give back, in spades. Usually what you give back is worth more in cash than what you receive &#8211; but it&#8217;s all about timing. The cash &#8220;cost&#8221; to you is due in the future, in the long-term product discounts, etc. Whereas the cash &#8220;benefit&#8221; to you is accrued in the present, in the form of increased sales *today*. And cashflow is the thin that tends to kill startups, so this is hugely valuable for you.</p>
<p>And &#8211; unfortunately &#8211; these &#8220;beta&#8221; websites tend to completely ignore the &#8220;give back&#8221; part of the relationship.</p>
<p>Here&#8217;s the problem: if you piss-off the visitors to that micro-site, you generate *disproportionately* large hatred of your company, your team, and your product. Just as an Early Adopter is inclined to tell everyone how wonderful your product is (even though it doesn&#8217;t work yet, and they&#8217;ve only got a partial version) &#8230; they&#8217;ll equally tell everyone how terrible your product is (even though it&#8217;s not finished, and they&#8217;ve only got partial info).</p>
<p>These people don&#8217;t conveniently sit around waiting to SERVE YOUR STARTUP &#8230; no, they&#8217;re people with reputations of their own, with thoughts and feelings. That&#8217;s what makes them so valuable &#8211; other people trust and listen to them. And that means they&#8217;re expected/required to report the bad along with the good. Upset them at your peril.</p>
<h4>What does a potential customer want?</h4>
<p>When they come to your website, an Early Adopter has a rough pyramid of needs. The more convinced they are of your product &#8211; OR the more it seems to fit a problem they already know they have &#8211; the further down this list they&#8217;ll go:</p>
<ol>
<li>information
<li>a demo
<li>a service/product
<li>purchase-form
</ol>
<p>&#8230;and they&#8217;re impatient, by nature. If you convince them with your first sentence that your product is even ATTEMPTING to fix a problem that&#8217;s causing them major pain right now, they may well *immediately* run to your &#8220;pricing&#8221; link, straight from the home page.</p>
<p>Incidentally &#8230; in that case, here is a person TRYING TO GIVE YOU MONEY. You don&#8217;t always want their money &#8211; it might come with too many strings attached &#8211; but, generally, you probably do. You certainly want to consider it, not cut-them off mid-stride and tell them to piss off and leave you alone (which is what a lot of sites do).</p>
<h4>It takes two to trade</h4>
<p>But lets go back to the most basic need: information.</p>
<p>Someone comes to your site. Why?</p>
<p>You can bet that &#8211; no matter what else &#8211; they want Information. Who you are, what you&#8217;re selling, why is it useful &#8230; might they want to use/buy it for themselves?</p>
<p>And here is where most of these beta sites today do a full-frontal face-plant straight onto the tarmac.</p>
<p>Here&#8217;s what most sites do:</p>
<ol>
<li>I won&#8217;t let you see the site until you fill in a form
<li>Give me your email address
<li>I&#8217;ll show you a webpage telling you nothing, but vaguely promising to contact you &#8220;at some time in the future&#8221;
<li>The rest of my site is completely empty
</ol>
<p>This reminds me of The Pirate Code, courtesy Disney:</p>
<ol>
<li>Take what you can
<li>Give nothing in return
</ol>
<p>&#8220;Synergistic&#8221;, says Wikipedia: i.e. a trade, an equivalence: you rub my back, I rub yours.</p>
<p>Only &#8230; with these startups, it&#8217;s all about TAKING the customer&#8217;s info, and then sending them away empty-handed. No wonder a lot of visitors come away with a vague sense of having just been scammed &#8211; this is exactly how most con-artists work!</p>
<h4>Why? Why, for the love of all that is good?</h4>
<p>Not every startup is created equal; if the founder of Twitter, or Facebook, or Google, or &#8230; etc &#8230; choose to start a new startup now, with a new product, then you can be sure thousands of people will beat a path to their door just on spec of who the founder is. They don&#8217;t know what it will be, but they know they want in &#8211; if only for the bragging rights to say &#8220;First!&#8221;.</p>
<p>To a lesser extent, there are startups whose product approaches a need so great, and so tightly defined, and so cutting-edge &#8230; that customers will again come beating down the door IRRESPECTIVE of any sense of rationality or sense.</p>
<p>But, for most startups, that&#8217;s not the case.</p>
<p>For most startups, if you throw up a &#8220;gathering email addresses TRUST ME I&#8217;M NOT A PORN-IN-YOUR-INBOX SITE REALLY&#8221;, it&#8217;s not so simple.</p>
<p>For most starutps, who then use that landing page as *the main funnel for all outside contact*, this is a disaster.</p>
<p>For instance, last week I met a startup co-founder who gave me his business card. Only it wasn&#8217;t his card &#8211; when I followed the web-address, it proved to direct straight to the funnel for gathering email addresses. Ironically, the site didn&#8217;t even have contact info. The founders had linked to their twitter profiles.</p>
<p>(and the main founder had then back-linked his Twitter profile to this funnel site! Way to go, idiot: now there&#8217;s literally no way of contacting you directly. I have to @reply you on Twitter and &#8220;hope&#8221; that you will be gracious enough to a) bother to check your @-replies (since Twitter doesn&#8217;t inform you automatically) and b) avoid irritating my own followers with meaningless private messages I had to send to you in public)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/31/vcs-angels-and-beta-pages-theyre-wrong/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Warner Bros FAILs again: Piracy for the win</title>
		<link>http://t-machine.org/index.php/2010/08/27/warner-bros-fails-again-piracy-for-the-win/</link>
		<comments>http://t-machine.org/index.php/2010/08/27/warner-bros-fails-again-piracy-for-the-win/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:28:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[advocacy]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=997</guid>
		<description><![CDATA[What happens if you want to watch the Animatrix films on the WB website? Here&#8217;s the direct link, in the intothematrix.com website, as of August 2010: http://progressive.warnerbros.com/thematrix/us/med/Episode1l_dl.zip The handful of Google links I tried all just redirected to the WB hosting. Right. So. The only way to see the free content, from their OWN website, [...]]]></description>
			<content:encoded><![CDATA[<p>What happens if you want to watch the Animatrix films on the WB website?</p>
<p>Here&#8217;s the direct link, in the intothematrix.com website, as of August 2010:<br />
<a href="http://progressive.warnerbros.com/thematrix/us/med/Episode1l_dl.zip" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://progressive.warnerbros.com/thematrix/us/med/Episode1l_dl.zip');">http://progressive.warnerbros.com/thematrix/us/med/Episode1l_dl.zip</a></p>
<p>The handful of Google links I tried all just redirected to the WB hosting.</p>
<p>Right. So. The only way to see the free content, from their OWN website, is now to go and pirate the full version, and &#8220;promise not to look at the non-free parts&#8221;.</p>
<p>Sigh. Remind me again, what was the film companies&#8217; stance on digital piracy?</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/27/warner-bros-fails-again-piracy-for-the-win/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>No, no, no: Contractors are NOT your salvation</title>
		<link>http://t-machine.org/index.php/2010/08/26/no-no-no-contractors-are-not-your-salvation/</link>
		<comments>http://t-machine.org/index.php/2010/08/26/no-no-no-contractors-are-not-your-salvation/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 15:11:09 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=994</guid>
		<description><![CDATA[Anyone saying &#8220;redundancies are inevitable for games industry companies&#8221; should never be allowed to run a studio. Ditto for the raving loons who think everyone should be hired as contractors instead. I was pointed at this by Nicholas Lovell&#8217;s wholehearted supporting tweet, reminding me that Nicholas is a finance guy, not a game developer: &#8220;If [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone saying &#8220;redundancies are inevitable for games industry companies&#8221; should never be allowed to run a studio. Ditto for the raving loons who think everyone should be hired as contractors instead.</p>
<p>I was pointed at <a href="http://game-linchpin.com/2010/08/why-does-redundancy-happens-in-game-development.html#comments" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://game-linchpin.com/2010/08/why-does-redundancy-happens-in-game-development.html#comments');">this</a> by Nicholas Lovell&#8217;s wholehearted supporting tweet, reminding me that Nicholas is a finance guy, not a game developer:</p>
<blockquote><p>
&#8220;If you’re a work-for-hire/self-funded studio working for little profit who employs 100% of your staff on a permanent basis then expect redundancies at the end of every project and or the business completely failing.&#8221;
</p></blockquote>
<p>No. If you&#8217;re in that situation *you don&#8217;t deserve to be in business*. Contractors are no solution here at all: your &#8220;solution&#8221; is to *raise income*. Making games is not a box-shifting industry, it&#8217;s a creative industry. The ONLY way this works is to charge high prices, because you can never directly control creative-cost.</p>
<p>This has absolutely NOTHING to do with &#8220;Cyclical business&#8221; and &#8220;Core teams&#8221; and &#8220;Contractor flexibility&#8221; &#8211; those are the terms of idiots who think it&#8217;s reasonable to run a business as if it were a hobby, always on the brink of bankruptcy. You&#8217;ll go the way of Woolworths et al &#8211; and you damn well deserve it.</p>
<p>A healthy, profitable, creative business not only ALWAYS runs at less than 100% staff efficiency, it positively THRIVES on it. The open secret of successful creative industries is that you pay someone&#8217;s salary just to get them in the door and to keep them content &#8230; so you can reap the rewards by being the one to exploit the new IP that &#8211; randomly, spontaneously &#8211; flows out of them.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/26/no-no-no-contractors-are-not-your-salvation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Copyright greatly reduced European growth?</title>
		<link>http://t-machine.org/index.php/2010/08/24/copyright-greatly-reduced-european-growth/</link>
		<comments>http://t-machine.org/index.php/2010/08/24/copyright-greatly-reduced-european-growth/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 09:41:01 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=992</guid>
		<description><![CDATA[I&#8217;ve long felt this intuitively to be true, but the weight of opinion and accepted &#8220;evidence&#8221; has made the idea laughable: Copyright has no social benefit. So this article in Spiegel Online is fascinating: No Copyright Law &#8211; The Real Reason for Germany&#8217;s Industrial Expansion? (I&#8217;ve been in hospital recently, just catching up now on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long felt this intuitively to be true, but the weight of opinion and accepted &#8220;evidence&#8221; has made the idea laughable: Copyright has no social benefit.</p>
<p>So this article in Spiegel Online is fascinating:</p>
<p><a href="http://www.spiegel.de/international/zeitgeist/0,1518,710976,00.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.spiegel.de/international/zeitgeist/0,1518,710976,00.html');">No Copyright Law &#8211; The Real Reason for Germany&#8217;s Industrial Expansion?</a></p>
<p>(I&#8217;ve been in hospital recently, just catching up now on old posts, but I see <a href="http://www.wired.com/epicenter/2010/08/copyright-germany-britain/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.wired.com/epicenter/2010/08/copyright-germany-britain/');">other outlets such as Wired have finally caught-on to this too</a> &#8211; I haven&#8217;t read their take on this yet)</p>
<p>It appears to be mostly centered on a contrast between two similarly advanced nations, England and Germany, which had radically different copyright laws at the time.</p>
<p>&#8220;In Great Britain, people were dependent on the medieval method of hearsay for the dissemination of this useful, modern knowledge&#8221;, whereas &#8220;The prospect of a wide readership motivated scientists in particular to publish the results of their research&#8221;.</p>
<p>&#8230;and so we see a key part of modern research and academia, the concept of publishing your work: born from the *abscence* of Copyright.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/24/copyright-greatly-reduced-european-growth/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>One Hundred MEELLEON Dollar! (&#8230;wasted, on RTW/APB)</title>
		<link>http://t-machine.org/index.php/2010/08/18/one-hundred-meelleon-dollar-wasted-on-rtwapb/</link>
		<comments>http://t-machine.org/index.php/2010/08/18/one-hundred-meelleon-dollar-wasted-on-rtwapb/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 13:13:13 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=984</guid>
		<description><![CDATA[18 months ago, Scott and I described our perspectives on the fall of Tabula Rasa. I said that if you&#8217;re going to spend $100m on an MMO, you&#8217;d better be aware of MMO history and not repeat those mistakes. It would seem that Real Time Worlds wasn&#8217;t listening &#8211; coincidentally, $100m is how much *publically [...]]]></description>
			<content:encoded><![CDATA[<p>18 months ago, <a href="http://brokentoys.org" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://brokentoys.org');">Scott</a> and I described our <a href="http://t-machine.org/index.php/2009/01/16/we-need-to-talk-about-tabula-rasa-when-will-we-talk-about-tabula-rasa/" >perspectives on the fall of Tabula Rasa</a>. I said that if you&#8217;re going to spend $100m on an MMO, you&#8217;d better be aware of MMO history and not repeat those mistakes.</p>
<p>It would seem that Real Time Worlds wasn&#8217;t listening &#8211; coincidentally, $100m is how much *publically announced* money just went down the pan, now they&#8217;ve gone into administration.</p>
<p>No-one in this industry likes to talk openly about their enormous fuck-ups &#8211; and the few that do tend to become pariahs, sued by their employers or shunned by future investors. No major company openly documents &#8211; or &#8220;allows to be documented&#8221; &#8211; anything of import. It&#8217;s a system that punishes progress in the professional field.</p>
<p>There&#8217;s a single public analysis on RTW/APB right now. It&#8217;s an anonymous source (oh, for god&#8217;s sake! When will we stop shooting the messengers?), but some non-anonymous sources have backed it up. So, let&#8217;s take a look&#8230;</p>
<h4>Anonymous: ExRTW on RPS</h4>
<p>(<a href="http://www.rockpapershotgun.com/2010/08/16/redundancies-at-real-time-worlds/#comment-491791" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.rockpapershotgun.com/2010/08/16/redundancies-at-real-time-worlds/#comment-491791');">source is here</a>)</p>
<h5>APB:</h5>
<blockquote><p>&#8220;lead you to think it’s going to come right by release &#8230; You end up in this situation where you’re heads down working your ass off&#8221;
</p></blockquote>
<p>Me, 18 months ago:</p>
<blockquote><p>
&#8220;The implication being that they didn’t do anything wrong, perhaps, but that they stood by and watched the train rolling slowly towards the brick wall and didn’t try (hard enough) to stop the collision.&#8221;
</p></blockquote>
<h5>APB:</h5>
<blockquote><p>
&#8220;APB &#8230; came together&#8230; relatively late in its development cycle &#8230; leaving too little time for content production and polish &#8230; lacking any real quality in some of its core mechanics&#8221;
</p></blockquote>
<p>Me, 18 months ago:</p>
<blockquote><p>
It wasn’t ready for beta. I said so. Many others said so.
</p></blockquote>
<h5>APB:</h5>
<blockquote><p>
&#8220;it was pretty clear to me that the game was going to get a kicking at review – the gap between expectation and the reality was huge.&#8221;
</p></blockquote>
<p>Me, 18 months ago:</p>
<blockquote><p>
A survey was taken, internally, asking what people thought. The results were never published – so no-one (apart from the survey takers) knows exactly what the results were, but we were told that the *company* knew.
</p></blockquote>
<p>Incidentally &#8230; I was afraid to come clean at the time (and upset individuals), but that survey of all staff was EXTREMELY negative about the project, and I have been told (but you&#8217;ll have to take this as unsubstantiated rumour) that the reaction of the top-level execs on seeing the results was simple:</p>
<blockquote><p>
&#8220;Bury it&#8221;
</p></blockquote>
<h5>APB:</h5>
<blockquote><p>
&#8220;I wasn’t on the APB team, so I played it infrequently, during internal test days etc. I was genuinely shocked when I played the release candidate – I couldn’t believe Dave J would be willing to release this.&#8221;
</p></blockquote>
<p>Me, 18 months ago:</p>
<blockquote><p>
[I wasn't on the TR dev team, but] given my position I had the luxury of a lot of insights that other people wouldn’t have had.<br />
&#8230;<br />
I played TR in the alpha, and I actually enjoyed it<br />
&#8230;<br />
it was a good pre-production prototype [but - at best - YEARS away from being a finished project - and they went to beta only 6 months later]
</p></blockquote>
<h5>APB:</h5>
<blockquote><p>&#8220;The real purpose of beta is publicity, not bug fixing. We never took that lesson on board.&#8221;
</p></blockquote>
<p>[I didn't cover this, but Scott's post did, IIRC]</p>
<h5>And, finally&#8230;</h5>
<blockquote><p>
&#8220;MyWorld is an innocent bystander caught up in the demise of APB. Which is a real shame, because it is genuinely ground breaking, though not aimed at the traditional gamer audience. &#8221;
</p></blockquote>
<p>&#8230;which sounds an awful lot like Scott&#8217;s team and Steve Nichols team (the former very basic playable but unreleased, the latter Dungeon Runners)</p>
<h4>Major differences</h4>
<p>EDIT: it&#8217;s 100k sales, not 10k.</p>
<p>APB:</p>
<blockquote><p>
&#8220;the real killer, IMO, is the business model. This was out of the team’s hands. The game has issues, but I think if you separate the business model from the game itself, it holds up at least a little better.&#8221;
</p></blockquote>
<p>I originally (mis-)understood<br />
<a href="http://www.gamesbrief.com/2010/08/hubris-ambition-and-mismanagement-the-first-post-mortem-of-realtime-worlds/?utm_campaign=twitter&#038;utm_medium=twitter&#038;utm_source=twitter" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesbrief.com/2010/08/hubris-ambition-and-mismanagement-the-first-post-mortem-of-realtime-worlds/?utm_campaign=twitter&#038;utm_medium=twitter&#038;utm_source=twitter');">the figures that Nicholas Lovell has dug out</a>, but apparently sales were over 100k (presumably that means practically zero sales in USA?).</p>
<p>By comparison, the previous big-failure MMO which went down because of the &#8220;bad business model&#8221; was Hellgate: London.</p>
<p><a href="http://www.shacknews.com/featuredarticle.x?id=1094" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.shacknews.com/featuredarticle.x?id=1094');">Hellgate sold 500,000 units, and estimated that even if they&#8217;d made their subscription compulsory, they&#8217;d still have sold 250,000</a>.</p>
<p>So, not as strongly as I originally put it, but I&#8217;m still dubious about the business model being the cause. This stinks to me of a marketing/sales failure (unless those 100k sales are spread equally across territories)</p>
<p>APB:</p>
<blockquote><p>&#8220;we should have kept our powder dry. Our PR felt tired and dragged on and on, rather than building a short, sharp crescendo of excitement pre-release.&#8221;
</p></blockquote>
<p>IMHO this is a really bad idea &#8211; unless you remove the entire &#8220;MMO&#8221; part of the game. Big Bang Marketing doesn&#8217;t work for MMOs; this is the old-school of game-marketing.</p>
<p>Although, given how ineffective RTW&#8217;s marketing seems to have been, I doubt a big-bank-marketing-campaign could have done any worse.</p>
<h4>Conclusions &#8230; and &#8220;moving forwards from here&#8221;</h4>
<p>Two parts of this industry need to talk, one part doesn&#8217;t. As I said in 2009: &#8220;We need to talk [about failure]; when will we talk [about failure]?&#8221;</p>
<p>The professionals: you&#8217;re getting burned out, chewed up, and spat out. Your lives are being wasted.</p>
<p>The investors: you&#8217;re getting screwed. You write it off as random failure, and you can afford it, but you&#8217;re shying away from &#8220;games&#8221; as a result, leaving good profits behind on the table.</p>
<p>The inexperienced, the mediocre, and all those people who don&#8217;t actually MAKE the game, but do get to ruin the process (rockstar-designers, producers, marketers, directors, managers, etc) : you&#8217;re doing great. Your lack of skill hasn&#8217;t held you back, and the company will often go bankrupt before anyone gets around to firing you for incompetence.</p>
<h4>&#8230;Can we actually move forwards, though?</h4>
<p>When I left NCsoft, I was cold-contacted with some new job offers.</p>
<p>A typical example: &#8220;make a success of&#8221; a project that had already spent several years and many millions of dollars and was about to launch. But I wasn&#8217;t allowed to move said launch, and they had &#8220;infinite&#8221; funding (I kid you not).</p>
<p>There was a fat salary for anyone willing to shepherd that disaster (and, I suspect, become the public fall-guy). The game itself launched as they insisted, and was a laughable failure. I doubted it could have been fixed without another 12-18 months of development.</p>
<p>And me, personally? Nowadays, I run a freeform studio developing mobile apps and games for corporate clients. Each employee is responsible for themself and for their own decisions. If you need a project-manager to mollycoddle you every day, you can&#8217;t work here.</p>
<p>Personal responsibility, and personal authority; so far, it&#8217;s working pretty well&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/18/one-hundred-meelleon-dollar-wasted-on-rtwapb/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Tech Director in Games industry: what do they do?</title>
		<link>http://t-machine.org/index.php/2010/08/17/tech-director-in-games-industry-what-do-they-do/</link>
		<comments>http://t-machine.org/index.php/2010/08/17/tech-director-in-games-industry-what-do-they-do/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 22:58:14 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=982</guid>
		<description><![CDATA[Came up recently on TCE. I finally figured out a concise definition of the job role being filled by the &#8220;good/great&#8221; Tech Directors &#8211; someone who&#8217;s worth every penny of the $150k salaries they command: &#8220;Figure out the worst things that go wrong which nobody is specifically to blame for, and make sure they don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Came up recently on TCE. I finally figured out a concise definition of the job role being filled by the &#8220;good/great&#8221; Tech Directors &#8211; someone who&#8217;s worth every penny of the $150k salaries they command:</p>
<blockquote><p>
&#8220;Figure out the worst things that go wrong which nobody is specifically to blame for, and make sure they don&#8217;t happen&#8221;
</p></blockquote>
<p>The point with TD is that 9 times in 10 you have a hierachical company structure:</p>
<p>Owners<br />
&#8230;<br />
Company Directors<br />
&#8230;<br />
Senior Management<br />
&#8230;<br />
Exec Producer<br />
&#8230;<br />
Project Management<br />
&#8230;<br />
Leads<br />
&#8230;<br />
Teams</p>
<p>&#8230;with the setup that responsibility flows DOWNWARDS (companies where responsibility flows UP are very rare in games industry, IME. Nice idea but very few companies have the culture to obey that ideal!).</p>
<p>So &#8230; e.g. &#8230; anything that the PM&#8217;s don&#8217;t think of, and don&#8217;t delegate to one or more leads &#8230; gets completely ignored/forgotten.</p>
<p>This is a gross generalization &#8211; in practice, people lower down tend to notice if something&#8217;s missing, and apply pressure up the chain until someone takes it on, or take it on themselves.</p>
<p>That works for small stuff. But the big stuff &#8211; especially something that needs two disciplines to fix, or that is too much workload for one person to &#8220;absorb&#8221;, you need someone with management power (i.e. the authority to take people away from pre-existing tasks).</p>
<p>That&#8217;s where the [X] Director comes in. (X = Technical, Art, Design, etc)</p>
<p>TD, AD, etc have the sweeping power to get different departments to collaborate, or to persuade a Producer to relinquish some of their team for a week to get a &#8220;more important but so subtle you didn&#8217;t see it yet&#8221; problem fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/17/tech-director-in-games-industry-what-do-they-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduate/intern games job, London (SixToStart)</title>
		<link>http://t-machine.org/index.php/2010/08/13/graduateintern-games-job-london-sixtostart/</link>
		<comments>http://t-machine.org/index.php/2010/08/13/graduateintern-games-job-london-sixtostart/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 17:27:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[alternate reality games]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[games design]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=980</guid>
		<description><![CDATA[Details here&#8230; a six-week paid internship, beginning in October. We’re looking for smart people who are interested in making social and story-based online games. You must be able to demonstrate experience of having worked on games in the past, whether you helped make a big game, or worked on your own in your spare time, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sixtostart.com/onetoread/2010/be-a-paid-intern-at-six-to-start/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://sixtostart.com/onetoread/2010/be-a-paid-intern-at-six-to-start/');">Details here</a>&#8230;</p>
<blockquote><p>
a six-week paid internship, beginning in October. We’re looking for smart people who are interested in making social and story-based online games. You must be able to demonstrate experience of having worked on games in the past, whether you helped make a big game, or worked on your own in your spare time, and we’re particularly interested in:</p>
<p>    * Front and back-end web developers<br />
    * Game designers<br />
    * Artists and graphic designers (aimed at games)
</p></blockquote>
<p>This is one of those &#8220;exceptional&#8221; opportunities &#8211; SixToStart is a tiny tiny company, but they have a habit of winning awards for their unique mix of modern games, at the cutting-edge of game-design, using computers as only a part of the overall game. Google if you don&#8217;t know them&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/13/graduateintern-games-job-london-sixtostart/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Escapist talks crap &#8230; again</title>
		<link>http://t-machine.org/index.php/2010/08/10/the-escapist-talks-crap-again/</link>
		<comments>http://t-machine.org/index.php/2010/08/10/the-escapist-talks-crap-again/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 22:44:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=978</guid>
		<description><![CDATA[Typical Escapist. The very first page of their article on &#8220;Videogame mths debunked&#8221; waxes eloquently (and contemptuously) about supposed &#8220;facts&#8221; without much apparent fact-checking. And then the following pages go off on a personal journey of ignorance and attitude. Nuanced opinion, researched journalism, or even useful commentary &#8230; this is not. (The only scientificly valid [...]]]></description>
			<content:encoded><![CDATA[<p>Typical Escapist. <a href="http://www.escapistmagazine.com/articles/view/issues/issue_266/7954-Videogame-Myths-Debunked" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.escapistmagazine.com/articles/view/issues/issue_266/7954-Videogame-Myths-Debunked');">The very first page of their article on &#8220;Videogame mths debunked&#8221; waxes eloquently (and contemptuously) about supposed &#8220;facts&#8221; without much apparent fact-checking</a>.</p>
<p>And then the following pages go off on a personal journey of ignorance and attitude. Nuanced opinion, researched journalism, or even useful commentary &#8230; this is not.</p>
<p>(The only scientificly valid studies I&#8217;ve seen for the brain-training game showed that it DOES have a positive effect. They also suggested that people who otherwise claimed to play it every day were apparently lieing, or blurring their memories of how often they played &#8230; which might explain the failures of some of the other &#8220;studies&#8221;, including the pop-science one that The Escapist bothers to cite)</p>
<p>Apart from Zero Punctuation (a canny acquisition on the editors&#8217; part), TheEscapist seems to continue to be happy as mostly a waste of (internet) space. Sigh. I think EDGE has a lot to answer for&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/10/the-escapist-talks-crap-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Someone at LinkedIn needs to be fired</title>
		<link>http://t-machine.org/index.php/2010/08/10/someone-at-linkedin-needs-to-be-fired/</link>
		<comments>http://t-machine.org/index.php/2010/08/10/someone-at-linkedin-needs-to-be-fired/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 16:00:51 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=976</guid>
		<description><![CDATA[LinkedIn has unofficially officially removed their &#8220;updates&#8221; system &#8211; you can no longer find out what&#8217;s changed in your contacts&#8217; roles, busines, lives, etc. Some idiot at LI corp &#8211; who apparently is unaware of the normal consequences of becoming the lowest-common-denominator (i.e. unless you are the market leader on size, and *force* your competitors [...]]]></description>
			<content:encoded><![CDATA[<p>LinkedIn has unofficially officially removed their &#8220;updates&#8221; system &#8211; you can no longer find out what&#8217;s changed in your contacts&#8217; roles, busines, lives, etc.</p>
<p>Some idiot at LI corp &#8211; who apparently is unaware of the normal consequences of becoming the lowest-common-denominator (i.e. unless you are the market leader on size, and *force* your competitors out of business, you price yourself out of existence. Well, you&#8217;re nowhere near Facebook, so you&#8217;re most likely to just put LI bankrupt) &#8211; has replaced it with a massive, 5-page long aggregation of twitter feeds.</p>
<p>(currently 5 pages on my account, but who knows how long it will get if more people add their twitter accounts?)</p>
<p>There&#8217;s a website for that &#8211; it&#8217;s called Twitter.com. Funnily enough, I already have 5 different Twitter clients, and they do an AWESOME job of subscribing to the twitter feeds I want to read.</p>
<p>None of that is applied to LI, of course &#8211; LI simply *forces* me to view everything that is tweeted by anyone. It&#8217;s as if the LI management team HAVE NEVER USED TWITTER IN THEIR LIVES, and have no idea how it works. Amazing!</p>
<p>The (hypothetical) idiot at LinkedIn has clearly achieved something &#8211; they&#8217;ve given a very short-term boost to the &#8220;Activity&#8221; on the site. At the cost of removing functionality that used to be there.</p>
<p>I suspect this is the beginning of the end for LinkedIn. At this rate, it will get more and more useless.</p>
<p>I wonder, is there a community anywhere for maintaining business contacts, viewing resumes, while preventing spam and leaving you in full control of who sees what and who can contact whom?</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/10/someone-at-linkedin-needs-to-be-fired/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How not to market an MMO: EA/Mythic Entertainment</title>
		<link>http://t-machine.org/index.php/2010/08/01/how-not-to-market-an-mmo-eamythic-entertainment/</link>
		<comments>http://t-machine.org/index.php/2010/08/01/how-not-to-market-an-mmo-eamythic-entertainment/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 17:04:15 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=962</guid>
		<description><![CDATA[Mythic Entertainment &#8211; End of Subscription (subtitle: EA/Mythic forces themselves into commercial failure) 8 months ago, I tried to play Warhammer Online. Tried, and failed, because EA Mythic told me &#8211; in no uncertain terms &#8211; that it was completely impossible for me to play. This was after releasing press announcements and running a big [...]]]></description>
			<content:encoded><![CDATA[<h4>Mythic Entertainment &#8211; End of Subscription</h4>
<p>(subtitle: EA/Mythic forces themselves into commercial failure)</p>
<p>8 months ago, I tried to play Warhammer Online.</p>
<p><a href="http://t-machine.org/index.php/2009/11/21/whats-wrong-with-ea-ea-mythic-and-the-fail-of-war/" >Tried, and failed, because EA Mythic told me &#8211; in no uncertain terms &#8211; that it was completely impossible for me to play.</a></p>
<p>This was after releasing press announcements and running a big campaign trying to get people like me to play. They&#8217;d been too lazy / stupid to remove the &#8220;you cannot play this game&#8221; message from their own website, even several days after the marketing campaign started.</p>
<p>Net result: I never got around to playing. They made it such a pain in the ass that even when offered this *for free*, I never got that far.</p>
<p>So, I got this message today. And this just double-underlines my previous point. Read this message, and ask yourself: does it entice me into the game?</p>
<h4>Throwing away money, one customer at a time</h4>
<blockquote><p>
End of Subscription Notification</p>
<p>Your subscription for Mythic Entertainment Warhammer Online: Age of Reckoning for Game Account [username] has ended for the following reason:</p>
<p>    * Subscription is not set to renew</p>
<p>If you did not authorize this, please contact support at (650) 628-1001. Phone support hours are 10:00 am &#8211; 10:00 pm eastern time, Monday through Friday. You can find further information on account security at http://help.warhammeronline.com.</p>
<p>Thank you!</p>
<p>This is an automated email from the Account Management site for Mythic Entertainment.</p>
<p>Games Workshop, Warhammer, Warhammer Online, Age of Reckoning, and all associated marks, names, races, race insignia, characters, vehicles, locations, units, illustrations and images from the Warhammer world are either ®, ™ and/or © Games Workshop Ltd 2000-2009. Used under license by Electronic Arts Inc
</p></blockquote>
<p>Let&#8217;s do a quick analysis. Here you have a DIRECT contact with the consumer &#8211; moreover a consumer who isn&#8217;t yet paying you any money, and who you know has NEVER logged-in to the game.</p>
<ol>
<li>36% of the message is an IRRELEVANT copyright notice that shouldn&#8217;t be there
<li>30% of the message is an INCORRECT security advisory
<li>12% of the message is &#8220;this is an automated email&#8221;
<li>&#8230;leaving a mere 22% of actual content
</ol>
<p>Let&#8217;s look at the content, as any good marketing person would.</p>
<ol>
<li>What&#8217;s the Call To Action? (we&#8217;re talking to a customer; what are we asking them to do?)
<li>How easy do we make it to respond to the CTA? (the easier we make it, the more people will do it)
<li>Where&#8217;s the Appeal &#8211; a.k.a. what do we do to make the CTA attractive? (the more attractive it is, NOT ONLY will more people do it, but a great percentage will follow-through by paying money / engaging after the CTA)
</ol>
<p>Hmm. Respectively:</p>
<ol>
<li>None
<li>Make a international phone call &#8211; at cost! &#8211; to an unrelated department
<li>Technical language with no hint of &#8220;game&#8221;, or welcome. Wording is both appallingly bad English ( &#8220;is not set to renew&#8221;), and also fundamentally negative (implies that I *shouldn&#8217;t* want to renew, even if I do want to)
</ol>
<p>As I said 8 months ago, someone ought to deploy the PlayFish folks onto the smoking remains of Mythic. I very much doubt they&#8217;d allow such terrible excuse for marketing to go on&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/08/01/how-not-to-market-an-mmo-eamythic-entertainment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>This video is no longer available due to a copyright claim by APRA.</title>
		<link>http://t-machine.org/index.php/2010/07/20/this-video-is-no-longer-available-due-to-a-copyright-claim-by-apra/</link>
		<comments>http://t-machine.org/index.php/2010/07/20/this-video-is-no-longer-available-due-to-a-copyright-claim-by-apra/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 09:43:12 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[advocacy]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=959</guid>
		<description><![CDATA[Someone makes a highly controversial amateur YouTube video, showing an Auschwitz survivor and his children and grandchildren dancing at Auschwitz, to the song &#8220;I Will Survive&#8221;. And, in the middle of the debate *that* stirs up, someone hits them with a copyright violation, forcing YouTube to remove the video. There&#8217;s no option to read why [...]]]></description>
			<content:encoded><![CDATA[<p>Someone makes <a href="http://www.independent.co.uk/arts-entertainment/music/news/auschwitz-i-will-survive-dance-video-is-internet-sensation-2027725.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.independent.co.uk/arts-entertainment/music/news/auschwitz-i-will-survive-dance-video-is-internet-sensation-2027725.html');">a highly controversial amateur YouTube video, showing an Auschwitz survivor and his children and grandchildren dancing at Auschwitz, to the song &#8220;I Will Survive&#8221;</a>.</p>
<p>And, in the middle of the debate *that* stirs up, someone <a href="http://www.metro.co.uk/news/834948-i-will-survive-auschwitz-dance-routine-sparks-outrage" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.metro.co.uk/news/834948-i-will-survive-auschwitz-dance-routine-sparks-outrage');">hits them with a copyright violation, forcing YouTube to remove the video</a>. There&#8217;s no option to read why &#8211; although my best guess is that they &#8220;didn&#8217;t pay to license the music&#8221;. Ha! Can lawyers silence debate where the Third Reich failed?</p>
<p>There&#8217;s no link to <a href="http://www.apra-amcos.com.au/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.apra-amcos.com.au/');">who ARPA actually is, although it seems to be an Australian music-copyright org that specialises in &#8220;collecting money&#8221;</a>.</p>
<p>I think this situation neatly sums up quite how much loathing I have for some of the selfish, greedy, petty-minded scum that fight for the preservation <a href="http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act');">*and infinite extension*</a> of Copyright law, and who seek to criminalise everyone in the world who won&#8217;t feed them money.</p>
<p>(and, incidentally, if this *is* over money &#8211; I&#8217;m surprised the challenge went ahead, given that Copyright law has specific terms exempting &#8220;commentary&#8221; (i.e. exactly this kind of situation). Actually, I&#8217;m not. It&#8217;s the kind of thing you expect of the <a href="http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act');">&#8220;guilty-until-you-bribe-a-lawyer-to-prove-you-innocent&#8221; laws</a> that the USA (especially) has put in place in recent years (and other govts to a lesser extent))</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/20/this-video-is-no-longer-available-due-to-a-copyright-claim-by-apra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HMRC disdains Internet standards</title>
		<link>http://t-machine.org/index.php/2010/07/19/hmrc-disdains-internet-standards/</link>
		<comments>http://t-machine.org/index.php/2010/07/19/hmrc-disdains-internet-standards/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 16:15:20 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bitching]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=957</guid>
		<description><![CDATA[Is there a place to complain that UK government departments are breaking the internet standards and refuse to fix their websites? Occasionally, you find sites that do this. Usually, when you tell the organization, they&#8217;re a little embarassed, and rush to fix them. From HMRC, I got a polite, pedantic, *but entirely incorrect* response telling [...]]]></description>
			<content:encoded><![CDATA[<p>Is there a place to complain that UK government departments are breaking the internet standards and refuse to fix their websites?</p>
<p>Occasionally, you find sites that do this. Usually, when you tell the organization, they&#8217;re a little embarassed, and rush to fix them.</p>
<p>From HMRC, I got a polite, pedantic, *but entirely incorrect* response telling me that the &#8220;standard&#8221; was X, when I know that to be false (as does anyone who has read the offiicial standards, as documented by the Internet RFCs).</p>
<p>They apparently can&#8217;t be bothered to read the standards, and don&#8217;t care that they&#8217;re wrong.</p>
<p>No wonder so many people hate civil servants: holier-than-thou attitude coupled with being clearly, inarguably, wrong. Sigh.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/19/hmrc-disdains-internet-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un-format your SD card (Android)</title>
		<link>http://t-machine.org/index.php/2010/07/18/un-format-your-sd-card-android/</link>
		<comments>http://t-machine.org/index.php/2010/07/18/un-format-your-sd-card-android/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 13:04:44 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=955</guid>
		<description><![CDATA[Android 2.2 has a nasty bug where it disables the SD Card on Google Nexus One phones. Fine, I found a workaround. But there&#8217;s a down-side &#8211; what happens when you only AFTERWARDS remember that it&#8217;s got the ONLY copy of several hundred photos, including plenty of uniques that can never be re-captured? No way [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://t-machine.org/index.php/2010/07/15/nexus-one-android-2-2-if-your-sd-card-stops-working/comment-page-1/#comment-6882" >Android 2.2 has a nasty bug where it disables the SD Card on Google Nexus One phones</a>.</p>
<p>Fine, I found a workaround. But there&#8217;s a down-side &#8211; what happens when you only AFTERWARDS remember that it&#8217;s got the ONLY copy of several hundred photos, including plenty of uniques that can never be re-captured?</p>
<p>No way I was getting the photos back &#8211; after all, it *formatted* the card.</p>
<p>But &#8230; saved by Google&#8217;s poor OS &#8230; a couple of days after I&#8217;d formatted the card, I had the thought:</p>
<blockquote><p>
Hmm. This Android OS has a lot of design flaws and bugs. I wonder if &#8230; &#8220;formatting&#8221; the SD card doesn&#8217;t actually format it, but simply marks all the files as deleted?</p>
<p>After all, it&#8217;s flash memory &#8211; older Flash cards could only be formatted a set number of times before they&#8217;d stop working. Maybe, just maybe, Google&#8217;s OS doesn&#8217;t do what it says it does&#8230;
</p></blockquote>
<p>Yep, turns out that&#8217;s what it did: mark all the files as deleted, without actually deleting them. So I was able to get back about 95% of my photos. I could probably have got all of them if I&#8217;d known in advance that the format &#8230; doesn&#8217;t format.</p>
<h4>Time for &#8230; CardRecovery</h4>
<p><a href="http://www.cardrecovery.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.cardrecovery.com/');">http://www.cardrecovery.com/</a></p>
<p>Card Recovery is awesome. It&#8217;s an excellent example of one of the best sales techniques:</p>
<ol>
<li>Free (no barrier to trying it)
<li>Very easy to use (idiot-proof)
<li>Shows you exactly what you&#8217;ll get for your money (it does all the work FIRST, and shows you the photos it&#8217;s recovered &#8211; all of them!)
<li>Offers a one-click, in-app purchase of the &#8220;full&#8221; app, that will actually *save* all those photos it&#8217;s recovered
<li>Reasonably priced
</ol>
<p>I got to the end, and was expecting something vicious &#8211; $500-$1000 price (after all, they have you in a vice at this point). Their software proved it was possible &#8211; the data was still there &#8211; so I prepared myself to manually recover the files, even if it took many hours. I&#8217;ve been using computers so long that I&#8217;ve had to do data-recovery by hand more than once, in the days before data-recovery firms existed.</p>
<p>Most &#8220;data-recovery&#8221; firms do this: get the customer in, get the physical media off them, show a tiny piece of data to give the customer hope (oftenn deliberately NOT mentioning how much data is missing), then charge outrageously high prices for their services, because at this point it&#8217;s hard for the customer to back out of the deal.</p>
<p>CardRecovery was barely $50.</p>
<p>No hesitation, I bought it on the spot. Especially since I&#8217;ve now got this handy utility should I ever need it again in the future&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/18/un-format-your-sd-card-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nexus One / Android 2.2: If your SD card stops working</title>
		<link>http://t-machine.org/index.php/2010/07/15/nexus-one-android-2-2-if-your-sd-card-stops-working/</link>
		<comments>http://t-machine.org/index.php/2010/07/15/nexus-one-android-2-2-if-your-sd-card-stops-working/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 10:13:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=953</guid>
		<description><![CDATA[Google&#8217;s Nexus One auto-upgraded a few weeks ago, to Android 2.2 It immediately broke itself. It was no longer able to use the SD card. As a side-effect, it was impossible to install any applications. Making this a very expensive, very heavy, very slow excuse for a mobile phone. The error was that the SD [...]]]></description>
			<content:encoded><![CDATA[<p>Google&#8217;s Nexus One auto-upgraded a few weeks ago, to Android 2.2</p>
<p>It immediately broke itself. It was no longer able to use the SD card.</p>
<p>As a side-effect, it was impossible to install any applications. Making this a very expensive, very heavy, very slow excuse for a mobile phone.</p>
<p>The error was that the SD card permanently unmounted itself, with a message in status bar &#8220;SD card can now be safely removed&#8221;, accompanied by an error if you tried to install anything: &#8220;your SD card is unavailable or missing&#8221; (or words to that effect.</p>
<p>Factory-reset of the phone? Still broken.</p>
<p>By fiddling around, I eventually found the solution (and you&#8217;re probably not going to like this): Format the SD card.</p>
<p>Yep. It seems that Google changed something between Android 2.1 and 2.2 that &#8211; in some cases &#8211; makes it unable to read the SD card any more.</p>
<p>For the record, other things I tried include: remove the card physically and reseat; dismiss the error messages and try again; install apps from private sources (e.g. our own apps we wrote).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/15/nexus-one-android-2-2-if-your-sd-card-stops-working/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>3 things a News Website should NOT do</title>
		<link>http://t-machine.org/index.php/2010/07/14/3-things-a-news-website-should-not-do/</link>
		<comments>http://t-machine.org/index.php/2010/07/14/3-things-a-news-website-should-not-do/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:43:05 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=948</guid>
		<description><![CDATA[There&#8217;s a conference in Brighton this week, and one of the industry media &#8211; GamesIndustry.biz &#8211; has a base here, so they&#8217;ve been cropping up a lot in the reporting. In passing, I noticed some glaring howlers in their web-design. The 1990&#8242;s called, they want their web-design templates back&#8230; Three glaring errors I noticed in [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a conference in Brighton this week, and one of the industry media &#8211; GamesIndustry.biz &#8211; has a base here, so they&#8217;ve been cropping up a lot in the reporting. In passing, I noticed some glaring howlers in their web-design. The 1990&#8242;s called, they want their web-design templates back&#8230;</p>
<p>Three glaring errors I noticed in particular. One of these they&#8217;re in good company &#8211; it&#8217;s the same thing Rupert Murdoch has done, along with sticking his fingers in his ears and screaming &#8220;NA, NA! I CAN&#8217;T HEAR YOU! GO AWAY AND TAKE YOUR STUPID INTERNET-THINGY WITH YOU, YOU FREELOADING BASTARDS!&#8221; (not a literal quote, of course). Although a lot of people seem to think that&#8217;s a weak strategy even for the mighty news empire&#8230;</p>
<h4>1. Sell a large number of Flash ads, and put them ALL in the same place. At the same time</h4>
<p>What do you see when you view a page <a href="http://www.gamesindustry.biz/articles/store-retail-has-abused-games-industry-castle" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesindustry.biz/articles/store-retail-has-abused-games-industry-castle');">on this site</a>?</p>
<p>If you have a laptop, and you surf their site, does the battery last noticeably less than normal? (hint: yes, it should &#8211; I&#8217;ve seen this happen on a wide variety of PC and Mac laptops)</p>
<p>Why?</p>
<p>Because they put not 1, not 2, not even 5 &#8230; not even TEN &#8230; but up to FIFTEEN SEPARATE FLASH ADS all animated SIMULTANEOUSLY on every page.</p>
<p>Flash wasn&#8217;t designed for this &#8211; the flash runtime can overhwelm a modern computer with just 1 rogue flash app; 15 is begging for trouble.</p>
<p>I suspect (because some of my former employers used to purchase them, regularly) that these &#8220;mini-ads&#8221; are a decent source of revenue for GI.biz. It&#8217;s a pity then that they&#8217;re mostly Flash, because that means an awful lot of people in the target audience (game developers), see something like this:</p>
<p><a href="https://t-machine.org/wp-content/uploads/Screen-shot-2010-07-14-at-20.09.40.png" ><img src="https://t-machine.org/wp-content/uploads/Screen-shot-2010-07-14-at-20.09.40.png" alt="Screen shot 2010-07-14 at 20.09.40" title="Screen shot 2010-07-14 at 20.09.40" width="305" height="830" class="alignright size-full wp-image-949" /></a></p>
<p>Incidentally, I offer a tip-of-the-hat to Relentless, whose animated-GIF has so many frames of animation that it smoothly animates some stuff that looks straight out of a Flash ad. Smart move on their behalf &#8211; they DIDN&#8217;T use a Flash movie.</p>
<p>OMGWTFBBQ! That must take TONNES of animating frames! Why, yes &#8211; it uses an *unholy* 50 kilobytes, just to display one ickle GIF. Shocking. And yet &#8230; in 2010 &#8230; such a tiny tiny file in the scheme of things that it suffers nothing for not being Flash. (Flash was originally needed because internet bandwidth was poor; it only gradually grew into the all-singing, all-dancing beast we love today)</p>
<h4>2. Hide all your content. Keep your news &#8230; secret</h4>
<p>Try viewing any article on the site.</p>
<p>Follow any link that a friend sends you via email</p>
<p>Click on a link in any blog post or forum post.</p>
<p>Actually &#8230; you&#8217;ll have some trouble there. Lots of blogs and forums no longer link to GI.biz. Why?</p>
<p>Because anyone who follows the link only gets to see ONE SENTENCE of the article:</p>
<p><a href="https://t-machine.org/wp-content/uploads/Screen-shot-2010-07-14-at-20.19.36.png" ><img src="https://t-machine.org/wp-content/uploads/Screen-shot-2010-07-14-at-20.19.36.png" alt="Screen shot 2010-07-14 at 20.19.36" title="Screen shot 2010-07-14 at 20.19.36" width="661" height="188" class="alignright size-full wp-image-950" /></a></p>
<p>Hmm.</p>
<h4>3. Block anyone who uses Gmail</h4>
<p>If you try to sign-up on their site for an account using Gmail, the site refuses to &#8220;allow&#8221; you to create an account. It seems they have hard-coded a list of email domains that they consider &#8220;unacceptable&#8221; for game-developers to use.</p>
<p>Funny. I&#8217;ve been using gmail for my professional email for many years now. It seems a fairly common practice. Google&#8217;s &#8230; well &#8230; Google is a pretty well-known company these days. Their products are &#8230; well &#8230; kind-of popular. No?</p>
<p>I tried emailing the site admins to ask if there was a way I could create my account anyway &#8211; it&#8217;s fairly easy to check that my gmail account is bona fide. A funny thing happened.</p>
<p>Their website has no email addresses. Instead, it has a javascript that creates email-addresses on the fly. It&#8217;s a neat little javascript, and used differently would be pretty cool. But the way they chose to use it has two obvious effects:</p>
<ol>
<li>It is impossible to use a web-mail client to email anyone at GamesIndustry.biz direct from the site (the right-click, &#8220;copy email address&#8221; won&#8217;t work because of the javascript)
<li>Spammers have to look at the source-code to find the email address, and be a very very little creative with their bots (well within their capabilities these days)
</ol>
<h4>Internet: 0, Newspaper/Web newsite: 1</h4>
<p>O RLLY?</p>
<p>No, not really. I&#8217;ve got nothing against the news-site, and I&#8217;m well aware that this is only an echo of a bigger, louder noise: mainstream newspapers are in their dieing throes, lashing out at anyone and everyone in their panic.</p>
<p>But I&#8217;m suprised that a tech-industry focussed site chooses to fight so hard against the medium that so much of its own industry relies upon and worships. The first and third items above I would normally attribute to ignorance and just spending too little money for their web design team. But the middle one reflects an active decision to block the internet at large &#8211; even though the workaround is to create a &#8220;free&#8221; account, it&#8217;s an artificial barrier entirely of their own making.</p>
<p>I&#8217;ve spent a lot of time this year working with or around mainstream journalists, magazine staff, and authors. I&#8217;ve noticed a lot of this stuff going on. This is just a personal opinion, but &#8230; I humbly suggest that whenever ANY news/journalism site acts as though it&#8217;s at war with the very medium that the world + dog uses for spreading said news &#8230; that whatever else happens, it&#8217;s probably not going to end well.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/14/3-things-a-news-website-should-not-do/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tim Langdell sells a game on Amazon</title>
		<link>http://t-machine.org/index.php/2010/07/08/tim-langdell-sells-a-game-on-amazon/</link>
		<comments>http://t-machine.org/index.php/2010/07/08/tim-langdell-sells-a-game-on-amazon/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 11:12:28 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=943</guid>
		<description><![CDATA[&#8230;and Amazon&#8217;s intelligent recommendation engine leaps into action: (if you don&#8217;t know who Tim Langdell is, and you work in the games industry, just Google him.]]></description>
			<content:encoded><![CDATA[<p>&#8230;and Amazon&#8217;s intelligent recommendation engine leaps into action:</p>
<p><img src="http://www.freeimagehosting.net/uploads/c509add44c.gif"/></p>
<p>(if you don&#8217;t know who Tim Langdell is, and you work in the games industry, just Google him.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/08/tim-langdell-sells-a-game-on-amazon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A successful, smart, dumb person fails to defend the sale of sheet music</title>
		<link>http://t-machine.org/index.php/2010/07/06/a-successful-smart-dumb-person-fails-to-defend-the-sale-of-sheet-music/</link>
		<comments>http://t-machine.org/index.php/2010/07/06/a-successful-smart-dumb-person-fails-to-defend-the-sale-of-sheet-music/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 22:14:20 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[advocacy]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=939</guid>
		<description><![CDATA[There are many examples, every day, of people saying stupid things on the internet. But rarely do you see smart people write long reasoned arguments that they appear to wholeheartedly believe, yet are fundamentally untrue. Jason Robert Brown has written a great post, and comes across as highly literate, reasonable, fair, etc. I was rooting [...]]]></description>
			<content:encoded><![CDATA[<p>There are many examples, every day, of people saying stupid things on the internet. But rarely do you see smart people write long reasoned arguments that they appear to wholeheartedly believe, yet are fundamentally untrue.</p>
<p><a href="http://www.jasonrobertbrown.com/weblog/2010/06/fighting_with_teenagers_a_copy.php" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.jasonrobertbrown.com/weblog/2010/06/fighting_with_teenagers_a_copy.php');">Jason Robert Brown has written a great post, and comes across as highly literate, reasonable, fair, etc</a>. I was rooting for him from the start. Sounds like a nice guy.</p>
<p>But it&#8217;s long. So &#8230; it&#8217;s quite far down that you get to the tiny tiny key step in the exchange. This is the point where the author&#8217;s whole argument &#8211; a beautifully written argument &#8211; crumbles to dust:</p>
<blockquote><p>
&#8220;And I say to you that just because technology makes doing a bad thing easier doesn&#8217;t mean it&#8217;s suddenly not a bad thing.&#8221;
</p></blockquote>
<p>Funny. They said that of the Printing Press too. This is precisely what technology DOES do: it changes us. It changes society. Nothing is sacrosanct; our definitions of &#8220;good&#8221; and &#8220;bad&#8221; fluctuate. Not even the law is static. Ask any senior lawyer &#8211; the law is a fluid concept, defined by the society of its day.</p>
<p>There&#8217;s a fascinating exercise: to examine a period and place in history simply by looking at the prevailing laws of the day&#8230;</p>
<p>IMHO &#8230; at his core, Jason is in that group of people that still haven&#8217;t come to terms with the unavoidable side-effects of the &#8220;copy&#8221; button that exists on all digital-data devices. This is a storm that brewed for decades, and burst with music piracy. Everyone *ought* to be aware of it by now, even if in practice a lot of old-guard media and authors seem to be jamming their fingers in their ears and screaming &#8220;I CANT HEAR YOU! GO AWAY!&#8221;.</p>
<p>How much longer before posts such as his cease to become anything more than &#8220;fascinating historical record &#8230; of a time now passed&#8221;? Not much, I think&#8230;</p>
<p>(PS: I&#8217;m ignoring the very much NOT smart &#8211; and rather offensive &#8211; attempts to re-define words such as &#8220;theft&#8221; in support of a specious argument. I believe the author did that purely accidentally)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/06/a-successful-smart-dumb-person-fails-to-defend-the-sale-of-sheet-music/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Awesome Ad Agency FAIL: Steal, then Insult</title>
		<link>http://t-machine.org/index.php/2010/07/05/awesome-ad-agency-fail-steal-then-insult/</link>
		<comments>http://t-machine.org/index.php/2010/07/05/awesome-ad-agency-fail-steal-then-insult/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 16:33:44 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=936</guid>
		<description><![CDATA[(where normaly people might &#8220;Be original, then Apologize if you fail&#8221;) Just a minor piece of recent DRAMA! DRAMA!, something to cheer up the week&#8230; This excellent piece of Advertising / Fun / Augmented Reality / Creativity was &#8211; like most big-budget ideas &#8211; based on someone else&#8217;s idea, someone who had the basic idea [...]]]></description>
			<content:encoded><![CDATA[<p>(where normaly people might &#8220;Be original, then Apologize if you fail&#8221;)</p>
<p>Just a minor piece of recent DRAMA! DRAMA!, something to cheer up the week&#8230;</p>
<p>This <a href="http://www.digitalbuzzblog.com/times-square-augmented-reality-billboard/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.digitalbuzzblog.com/times-square-augmented-reality-billboard/');">excellent piece of Advertising / Fun / Augmented Reality / Creativity</a> was &#8211; like most big-budget ideas &#8211; based on someone else&#8217;s idea, <a href="http://www.pixelsumo.com/post/inspired-by-hand-from-above" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.pixelsumo.com/post/inspired-by-hand-from-above');">someone who had the basic idea (and proved it non-commercially) first</a>.</p>
<p>So far, so good.</p>
<p>This is the 21st Century. <a href="http://vimeo.com/12855619" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://vimeo.com/12855619');">People notice when you clone ideas, and they comment</a>. A lot of comments are brief and reflect the emotional reaction rather than a considered opinion. Especially if you disingenuously claim to have invented the idea, and put out press releases to that effect &#8230; when there&#8217;s plenty of evidence suggesting otherwise.</p>
<p>Still, that&#8217;s how life goes; you try something, you veer too close to &#8220;copying&#8221;, and you get some minor pillorying on a public website. You re-adjust; next time, you&#8217;ll try to add a bit more novel to an idea &#8211; or you&#8217;ll work harder to give credit where it&#8217;s due.</p>
<p>OR &#8230; or, one of your team can always just go for the all-out nuclear option, and insult everyone and everything in sight. In the world-readable comments thread. For bonus points, you can then delete your comments a day later when you realise what a douchebag you appear, and how damaging it&#8217;s become to your future career:</p>
<p><a href="http://www.flickr.com/photos/pixelsumo/4752204508/sizes/o/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.flickr.com/photos/pixelsumo/4752204508/sizes/o/');">http://www.flickr.com/photos/pixelsumo/4752204508/sizes/o/</a></p>
<p>(I love how Nicholaus is naive enough / bad enough at his own career to imagine that simply deleting or editing a comment makes all evidence of it vanish :))</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/07/05/awesome-ad-agency-fail-steal-then-insult/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 [...]]]></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 (&#8220;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>2</slash:comments>
		</item>
		<item>
		<title>Startups: how NOT to write your website sales pages</title>
		<link>http://t-machine.org/index.php/2010/06/15/startups-how-not-to-write-your-website-sales-pages/</link>
		<comments>http://t-machine.org/index.php/2010/06/15/startups-how-not-to-write-your-website-sales-pages/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 08:08:59 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=923</guid>
		<description><![CDATA[If your startup sells stuff via the internet (you have an online product, service, web-app, etc), this may be the single most important thing to get right (assuming your core idea, team, etc has inherent merit). And yet so many companies spend so much money doing it so wrong. Why are modern software companies so [...]]]></description>
			<content:encoded><![CDATA[<p>If your startup sells stuff via the internet (you have an online product, service, web-app, etc), this may be the single most important thing to get right (assuming your core idea, team, etc has inherent merit). And yet so many companies spend so much money doing it so wrong.</p>
<p>Why are modern software companies so bad at selling software? Today I was looking at Scrum tools (or Agile if you prefer), and I was struck by how hopeless some of their websites are. With some of these sites, I am sure that I could increase the sales of most of these companies by hundreds or thousands a year, just through basic principles of sales.</p>
<p>(and, obviously, HOWEVER you design your sales page, you should be using A/B testing to increase sales, conversion, etc. But A/B testing is no panacea: you still need the creativity and understanding to make the &#8220;big leaps&#8221; yourself)</p>
<h4>Example: VersionOne</h4>
<p>I&#8217;m going to pull out one example (by accident, the first I came across). Many others are much the same.<br />
<a href="http://www.versionone.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.versionone.com/');">VersionOne.com</a></p>
<p>Before we go further, let me be clear what &#8220;kind&#8221; of customer I am. I&#8217;m currently looking for solutions for two commercial setups. One is for tiny projects on a case-by-case basis. This would be 5-seat licenses (worth up to $3000 at VersionOne&#8217;s current prices). The other is for a company-wide purchase of up to 30 licenses per annum (worth up to $15,000).</p>
<p>But, at the same time, my last full time job was running development for a large development studio. I was the primary reviewer and purchase-maker for software tools that were 50-person per annum immediately, and meant a commitment of up to 150 within 3 years. I&#8217;ve done a *lot* of this purchase-review process, on a lot of software.</p>
<p>My negative reactions to VersionOne&#8217;s sales are fairly consistent across the 3 profiles (although the reasons behind that are complex)</p>
<h4>Landing page, from Google: the &#8220;don&#8217;t ask questions, you&#8217;re too stupid, just buy instead&#8221;, and &#8220;we love ourselves, we&#8217;re awesome&#8221; page</h4>
<p>Page: <a href="http://pm.versionone.com/Trial_ScrumProjects.html?c-aws=trs&#038;gr-tss&#038;v-029abt&#038;gclid=CNGTgsrEoaICFUcA4wod82WOwg" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://pm.versionone.com/Trial_ScrumProjects.html?c-aws=trs&#038;gr-tss&#038;v-029abt&#038;gclid=CNGTgsrEoaICFUcA4wod82WOwg');">http://pm.versionone.com/Trial_ScrumProjects.html?c-aws=trs&#038;gr-tss&#038;v-029abt&#038;gclid=CNGTgsrEoaICFUcA4wod82WOwg</a></p>
<p>This has a *concealed* URL, so it pretends to be the front page, but actually lies, and redirects you to this page instead:</p>
<p>Ont this page, your website states it&#8217;s a commercial product, yet REFUSES to answer the single most important question: how much does this cost?</p>
<p>There aren&#8217;t even any LINKS to finding out about the product. It&#8217;s just &#8220;buy our product, or piss off&#8221;.</p>
<p>This page serves one purpose: lock the customer into a product they don&#8217;t want. You are &#8220;not allowed&#8221; to know the cost, you are only &#8220;allowed&#8221; to &#8220;signup now for a 30-day trial&#8221; &#8211; you have to commit yourself, and they&#8217;ll sting you with a price later, when you have no choice.</p>
<p>Word of advice: merely making something &#8220;free, for a few minutes, then I charge you&#8221; does NOT lower the customer&#8217;s barriers to purchase. For an ultra-long-term product like Project Management tools, it often has the *reverse* effect. The MINIMUM trial for a PM tool is &#8220;one project&#8221;. Most projects &#8211; using new tools &#8211; will need several months; 2 week to learn the tool, 10 weeks to run + launch + finish the project. The customer knows this; they know that a &#8220;30 day trial&#8221; is completely dishonest.</p>
<p>So, we use the navbar, and head to the &#8220;Product&#8221; page:</p>
<h4>Product page: the &#8220;Want more info? Oh no you don&#8217;t! You&#8217;re too stupid, you&#8217;re just a customer!&#8221;</h4>
<p>Page: <a href="http://www.versionone.com/Product/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.versionone.com/Product/');">http://www.versionone.com/Product/</a></p>
<p>I&#8217;ll sum up the stupidity and smug self-satisfied attitude of the person who wrote this page with just one quote, their final bullet point in the top-section:</p>
<blockquote><p>
&#8220;Accelerate agile adoption&#8221;</p>
<p>[hey! Look at that! I'm so clever - three words all beginning with "a"! They're guaranteed to buy now! I'm so sharp, sometimes I cut myself]
</p></blockquote>
<p>Sigh. Ignoring the &#8220;infographic&#8221; which has been screen-captured with a font-size of 2pts (i.e. literally physically impossible to read), we try to do something useful with this page: review the product (we&#8217;ve given up on pricing, for now &#8211; they obviously don&#8217;t wany anyone to buy the product, but maybe the product is so good we can force our way past that?)</p>
<h4>Product page, part 2: the &#8220;we don&#8217;t trust you, we&#8217;ll spam you with marketing crap&#8221;</h4>
<p>Page: <a href="http://www.versionone.com/Product/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.versionone.com/Product/');">http://www.versionone.com/Product/</a></p>
<p>(below the infographic)</p>
<p>Just look at that page. It has literally zero information about the product, yet it&#8217;s the &#8220;product&#8221; page.</p>
<p>Instead, it has paragraphs of marketing crap. There&#8217;s no other term for it; let&#8217;s look at the first example.</p>
<p>Bullet-point: &#8220;Product Planning&#8221;</p>
<p>What does this mean? Absolutely nothing. BY DEFINITION, this is a whole website devoted to project-management-planning software used on projects that create products. Why do you repeat this, in such a childish gross genealization, as if it&#8217;s a &#8220;feature&#8221;?</p>
<p>Ah, but &#8230; actually, that&#8217;s not necessarily true. Scrum is often used on projects that are NOT generating a Product.</p>
<p>So, in fact, this lazy marketing title has already told some of the target-customers: &#8220;Don&#8217;t use our product. Go away&#8221;.</p>
<p>Let&#8217;s look at the text underneath the bullet:</p>
<p>&#8220;Plan and manage your requirements, epics, stories, and goals across multiple projects, products and teams.&#8221;</p>
<p>What is this &#8211; Dictionary.com? Why are you patronising me by telling me what you think &#8220;Product Planning&#8221; means, as an abstract concept? What kind of project manager &#8211; or engineer &#8211; is so stupid as to not know what it is they do on a day to day basis, and to feel happy that you&#8217;re telling them?</p>
<p>I WANT TO BUY YOUR SOFTWARE, NOT LISTEN TO YOUR PHILOSOPHICAL DISCOURSE.</p>
<p>I suspect that the weak marketing person who wrote this copy thought it &#8220;looked nicer&#8221; to put features into a long sentence. Let&#8217;s look at that sentence, from a copy-writing perspective. It has eight separate phrases. EIGHT. The average sentence has 2-4. Concise sentences have 1-2. Waffle has 5 or more. This is a sales page; every sentence should be no more than 3 phrases. EIGHT! NO-ONE is going to pull useful information from that sentence.</p>
<p>Onto another problem with this page, for the customer who comes here: No screenshots. Anywhere.</p>
<p>OK. Take a deep breath. This is a company that, so far:<br />
 &#8211; wants to deceive us into locking-in to their product<br />
 &#8211; patronises us intensely<br />
 &#8211; works hard to hide features (check that &#8220;unreadable&#8221; infographic)</p>
<p>&#8230;but let&#8217;s put all that to one side, and drill down into the links from the Product page.</p>
<h4>Features (1 of 8): &#8220;You can look, but don&#8217;t touch AND DON&#8217;T LOOK CLOSELY!&#8221;</h4>
<p>Page: <a href="http://www.versionone.com/Product/Product_Planning.asp" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.versionone.com/Product/Product_Planning.asp');">http://www.versionone.com/Product/Product_Planning.asp</a></p>
<p>Finally, if you follow one of the links from this page, you get to a page that contains some actual, concrete, info about the product. There&#8217;s even some screenshots!</p>
<p>Oh. BUT. You are &#8220;not allowed&#8221; to actually see the screenshots. They&#8217;ve been deliberately blurred-out a low-resolution, so that text is literally unreadable and there is NO WAY to judge the product. (NB: this is *after* you&#8217;ve clicked on the almost-full-size thumbnails in the page). They are then further blurred (to no purpose except to fit the Web Designer&#8217;s fetish for popup images) and embedded in the page.</p>
<p>Overall impression: this company knows it&#8217;s own product is not fit for purpose, and will do anything to stop the customer from finding that out until AFTER they&#8217;ve paid their money. Whatever you do DO NOT BUY VersionOne&#8217;s project-management software.</p>
<h4>Final thoughts: First one is free</h4>
<p>A decent usability person &#8211; or a really good web designer &#8211; would make huge sweeping changes to that site.</p>
<p>A flippant starter, something I&#8217;d personally try immediately (today): move the &#8220;see it; drive it; try it&#8221; buttons that hide in top-right of the site to CENTER STAGE, both on the Product page and the Google Landing page.</p>
<p>AND &#8230; I&#8217;d add a fourth button: &#8220;Buy it&#8221;.</p>
<p>What? There&#8217;s no &#8220;buy&#8221; link on this site? Yep. I think that eloquently sums up what a poor job this site does of MAKING MONEY FOR THE COMPANY.</p>
<p>(NB: and I *absolutely* would instigate A/B tests to prove &#8211; day by day, hour by hour &#8211; that my changes were having a noticeable effect on increasing sales to the site. If you don&#8217;t do that, then you&#8217;re just pissing into the wind. You have no idea, afterwards, whether your changes &#8220;worked&#8221;. See <a href="http://www.amazon.com/gp/product/0887309836?ie=UTF8&#038;tag=tmachine09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0887309836" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.amazon.com/gp/product/0887309836?ie=UTF8&#038;tag=tmachine09-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0887309836');">Sergio Zyman</a>&#8216;s book for more&#8230;)</p>
<h4>Where do these terrible sites come from?</h4>
<p>I believe that these often-amateurish websites come from one of two sources (possibly both):</p>
<p>1. Expensive &#8220;Web Design&#8221; agency that only cared about making it &#8220;beautiful&#8221; without understanding a single thing about the reality of sales. In the example I run through below, dead giveaways include: Popup images that are only 15% larger than the thumbnails that trigger them; grey-on-white text; very small font-sizes. All those are characteristic of visual designers who know nothing about product sales.</p>
<p>2. A marketing team that&#8217;s worked for big corporates (multinational, public companies) and thinks that the most important thing in their job is to &#8220;clone&#8221; the website of &#8220;a real company &#8211; you know, like Microsoft&#8221;, and pretend to &#8220;be like the big boys&#8221;. They have no idea why those websites look the way they do, and don&#8217;t bother to ask themselves; they just blindly clone it. In the example below, dead giveaways include: 12 pages to describe a simple product where 3 would have been more than sufficient; hiding information at all costs; never committing to a list of features; using &#8220;freeform text&#8221; instead of simple &#8220;bullet points&#8221; to describe the product.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/06/15/startups-how-not-to-write-your-website-sales-pages/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>You just answered your own question&#8230;</title>
		<link>http://t-machine.org/index.php/2010/06/13/you-just-answered-your-own-question/</link>
		<comments>http://t-machine.org/index.php/2010/06/13/you-just-answered-your-own-question/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 15:36:24 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=917</guid>
		<description><![CDATA[From one of those strange wending web-browsing sessions that started as innocent &#8220;work-related research&#8221; and ended up following the history of CDC&#8230; IBM, 1964: How is it that this tiny company of 34 people —including the janitor — can be beating us when we have thousands of people? &#8230;to which Cray reportedly quipped: You just [...]]]></description>
			<content:encoded><![CDATA[<p>From one of those strange wending web-browsing sessions that started as innocent &#8220;work-related research&#8221; and ended up following the history of CDC&#8230;</p>
<p>IBM, 1964:</p>
<blockquote><p>
How is it that this tiny company of 34 people —including the janitor — can be beating us when we have thousands of people?
</p></blockquote>
<p>&#8230;to which Cray reportedly quipped:</p>
<blockquote><p>
<a href="http://en.wikipedia.org/wiki/Control_Data_Corporation" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Control_Data_Corporation');">You just answered your own question.</a>
</p></blockquote>
<p>(and, incidentally, FUD &#8211; a phrase I associated with the 1990&#8242;s and linux &#8211; apparently dates back to the early 20th century. It puts in an appearance here, in the 1960&#8242;s, and lead to CDC winning a lawsuit for $600 million. Nice. Can you imagine someone pulling that one off against Microsoft in the 1995-2005 era? Or Apple, today? I doubt it&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/06/13/you-just-answered-your-own-question/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Some people are telling me I should just let it go&#8221;</title>
		<link>http://t-machine.org/index.php/2010/06/11/some-people-are-telling-me-i-should-just-let-it-go/</link>
		<comments>http://t-machine.org/index.php/2010/06/11/some-people-are-telling-me-i-should-just-let-it-go/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 19:52:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[bitching]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=913</guid>
		<description><![CDATA[Some people are telling me I should just let it go, but honestly I just can’t do that. I’d rather quit. (As they say: It&#8217;s funny, becaus it&#8217;s true. If you develop for Apple platforms, that eloquently sums up how Apple (currently) appears to everyone they partner with: a childish, passive-aggressive approach to everything)]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.fakesteve.net/2010/06/god-bless-you-john-gruber.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.fakesteve.net/2010/06/god-bless-you-john-gruber.html');">Some people are telling me I should just let it go, but honestly I just can’t do that. I’d rather quit.</a></p>
<p>(As they say: It&#8217;s funny, becaus it&#8217;s true. If you develop for Apple platforms, that eloquently sums up how Apple (currently) appears to everyone they partner with: a childish, passive-aggressive approach to everything)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/06/11/some-people-are-telling-me-i-should-just-let-it-go/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OS X: A burst of mouse-y awesomeness</title>
		<link>http://t-machine.org/index.php/2010/06/07/os-x-a-burst-of-mouse-y-awesomeness/</link>
		<comments>http://t-machine.org/index.php/2010/06/07/os-x-a-burst-of-mouse-y-awesomeness/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 14:46:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=911</guid>
		<description><![CDATA[Apple added some of the earliest, best *hardware* support for mouse and trackpad gestures (2-finger swipes, pinch/zoom, etc), but has been very slow to add support for gestures to their *software*. Out of the box, OS X can do almost nothing with them. Previously, I&#8217;d used the quick-n-dirty-but-it-works &#8220;MultiClutch&#8221; app to make OS X much [...]]]></description>
			<content:encoded><![CDATA[<p>Apple added some of the earliest, best *hardware* support for mouse and trackpad gestures (2-finger swipes, pinch/zoom, etc), but has been very slow to add support for gestures to their *software*. Out of the box, OS X can do almost nothing with them. Previously, I&#8217;d used the quick-n-dirty-but-it-works &#8220;MultiClutch&#8221; app to make OS X much more usable.</p>
<p>But I broke my laptop, bought a new desktop, and had to re-install everything. Today, I found this awesome app:</p>
<p><a href="http://blog.boastr.net/?page_id=1619" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://blog.boastr.net/?page_id=1619');">http://blog.boastr.net/?page_id=1619</a></p>
<p>Why&#8217;s it so awesome? Well, plug in an apple mighty mouse, hit &#8220;Show Live View&#8221; and start touching your mouse. You can visually track all 4 touch points, and try out a variety of funky custom gestures.</p>
<p>NB: this isn&#8217;t old-fashioned &#8220;move the mouse in circles&#8221; gestures. Oh no. This is the new-style &#8220;glide your fingers over the surface of the mouse&#8221; gestures (treat the top of your mouse like an iPhone).</p>
<p>Great little app. Even has a decent UI, and options for exporting/importing settings, so you can setup some very complex setups on a per-app basis, share them with colleagues, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/06/07/os-x-a-burst-of-mouse-y-awesomeness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;but Gmail said I don&#8217;t have to do anything&#8221;</title>
		<link>http://t-machine.org/index.php/2010/05/26/but-gmail-said-i-dont-have-to-do-anything/</link>
		<comments>http://t-machine.org/index.php/2010/05/26/but-gmail-said-i-dont-have-to-do-anything/#comments</comments>
		<pubDate>Wed, 26 May 2010 08:29:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=905</guid>
		<description><![CDATA[(Google just made a major change to Gmail accounts in the UK, now that they&#8217;ve settled a trademark case brought against them. This is great &#8211; it will simplify mailing list management for a lot of people, and everyone in the world can (legally) be &#8220;@gmail.com&#8221;) However &#8230; I&#8217;ve now had two friends write the [...]]]></description>
			<content:encoded><![CDATA[<p>(Google just made a major change to Gmail accounts in the UK, now that they&#8217;ve settled a trademark case brought against them. This is great &#8211; it will simplify mailing list management for a lot of people, and everyone in the world can (legally) be &#8220;@gmail.com&#8221;)</p>
<p>However &#8230; I&#8217;ve now had two friends write the above (&#8220;it said I didn&#8217;t have to do anything&#8221;) when asking for help with the changeover. Hmm. When the message came up for me first time, I got that impression too, but looking at it more closely, it doesn&#8217;t explicitly say that:</p>
<p><a href="https://t-machine.org/wp-content/uploads/gmail-changeover-screenshot-instructions.png" ><img src="https://t-machine.org/wp-content/uploads/gmail-changeover-screenshot-instructions.png" alt="gmail changeover screenshot instructions" title="gmail changeover screenshot instructions" width="776" height="478" class="alignright size-full wp-image-906" /></a></p>
<p>Anway, two friends in quick succession is a suggestion that I&#8217;m going to have to answer this question a few times. Instead, from now on I&#8217;ll just send them a link to this blog post :). Copy/paste of my original response:</p>
<blockquote><p>
Sorry, Google&#8217;s instructions aren&#8217;t very clear. You need to click the &#8220;more info/FAQ&#8221; link to get the &#8220;true&#8221; instructions, which include this gem:</p>
<p>&#8220;Mailing Lists: If you have signed up to send mail to mailing lists on behalf of your @googlemail.com address, you might need to re-register for the group using your @gmail.com address. Google Groups will automatically accept your new address.&#8221;</p>
<p>&#8230;although Google is being disingenuous when they say &#8220;might need to&#8221; &#8211; they know that *most* mailing lists will require you to manually change address, re-signup, or ask the admins to change your address :).
</p></blockquote>
<p>I like the visual approach that Google took here &#8211; the page is simple, clearly formatted, etc &#8211; but it&#8217;s tragic that it fails to include the critical information. &#8220;Breaking every mailing list you are on&#8221; should not be relegated to &#8220;Have questions? Not sure you want to switch?&#8221; &#8211; it should be right there on the main screen with a big red warning sign. I&#8217;m intrigued as to how the page was designed: it&#8217;s hard to believe that the usability people missed something as obvious as this. Are mailing lists not used that much by Gmail users? Even harder to believe. Have mailing lists fixed the gmail/googlemail problem? Possibly, but none of the ones I administer have (mostly for orgs that are using mainstream &#8220;free&#8221; list managers).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/26/but-gmail-said-i-dont-have-to-do-anything/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More &#8220;interesting MMO/online games jobs&#8221;</title>
		<link>http://t-machine.org/index.php/2010/05/25/more-interesting-mmoonline-games-jobs/</link>
		<comments>http://t-machine.org/index.php/2010/05/25/more-interesting-mmoonline-games-jobs/#comments</comments>
		<pubDate>Tue, 25 May 2010 11:57:23 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=903</guid>
		<description><![CDATA[Here we have Zynga recruiting for a CTO in SF: http://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&#038;c=qoX9Vfw9&#038;j=oRigVfw4 (see also the last post, on UK online games jobs)]]></description>
			<content:encoded><![CDATA[<p>Here we have Zynga recruiting for a CTO in SF:</p>
<ul>
<li><a href="http://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&#038;c=qoX9Vfw9&#038;j=oRigVfw4" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&#038;c=qoX9Vfw9&#038;j=oRigVfw4');">http://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&#038;c=qoX9Vfw9&#038;j=oRigVfw4</a>
</ul>
<p>(see also <a href="http://t-machine.org/index.php/2010/05/16/uk-games-companies-are-hiring-2010/" >the last post, on UK online games jobs</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/25/more-interesting-mmoonline-games-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UK games companies are hiring (2010)&#8230;</title>
		<link>http://t-machine.org/index.php/2010/05/16/uk-games-companies-are-hiring-2010/</link>
		<comments>http://t-machine.org/index.php/2010/05/16/uk-games-companies-are-hiring-2010/#comments</comments>
		<pubDate>Sun, 16 May 2010 15:45:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=898</guid>
		<description><![CDATA[UPDATE: I&#8217;ll add other roles in as/when I get the OK from the relevant people; not all of these are public yet. &#8212; Despite the heavy rash of studio closures (well documented by Nicholas Lovell), it seems there&#8217;s a lot of exciting online/social games hiring going on right now &#8211; I&#8217;m getting lots of requests [...]]]></description>
			<content:encoded><![CDATA[<p>UPDATE: I&#8217;ll add other roles in as/when I get the OK from the relevant people; not all of these are public yet.<br />
&#8212;<br />
Despite the heavy rash of studio closures (<a href="http://www.gamesbrief.com/joblosstracker/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesbrief.com/joblosstracker/');">well documented by Nicholas Lovell</a>), it seems there&#8217;s a lot of exciting online/social games hiring going on right now &#8211; I&#8217;m getting lots of requests from friends, ex-colleagues etc.</p>
<ul>
<li><a href="http://www.linkedin.com/jobs?viewJob=&#038;jobId=964022&#038;goback=.hom&#038;trk=NUS_JOBP-title" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.linkedin.com/jobs?viewJob=&#038;jobId=964022&#038;goback=.hom&#038;trk=NUS_JOBP-title');">Head of Mini Games</a> at <a href="http://mindcandy.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://mindcandy.com');">Mind Candy</a> (London-based social games startup; runs a successful kids MMO &#8211; Moshi Monsters)
<li>Financial Manager / Social Gaming Economy Modeller and Virtual Goods Data Analysis at <a href="http://www.lockwoodpublishing.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.lockwoodpublishing.com');">Lockwood</a> (Nottingham-based online / virtual world startup; built most of the cool stuff in PlayStation Home, now building their own MMOs) &#8211; *entry level
</ul>
<p>There&#8217;s also some interesting roles in publishing, and some in startup online games companies.</p>
<p>If you&#8217;re UK-based, you&#8217;ve worked in MMO / social games / etc, and you&#8217;re looking for a job, feel free to email me. No CV&#8217;s, just tell me who you are and what you&#8217;re looking for in 4 sentences or less.</p>
<p>Or, if you see an entry-level job here you want to apply for, ditto and I&#8217;ll put you in touch (or just follow the links to the company directly).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/16/uk-games-companies-are-hiring-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google, your attitude sucks</title>
		<link>http://t-machine.org/index.php/2010/05/11/google-your-attitude-sucks/</link>
		<comments>http://t-machine.org/index.php/2010/05/11/google-your-attitude-sucks/#comments</comments>
		<pubDate>Tue, 11 May 2010 20:17:03 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=892</guid>
		<description><![CDATA[Dear Eric &#8230; here&#8217;s my problem: Somehow that didn&#8217;t feel right for Google. We wanted something much more transparent and open&#8221; (Eric Schmidt, Chairman/CEO Google, writing in the Harvard Business Review this month) How, exactly, would you reconcile that with the fact that I had to serve Google with a legal document (here&#8217;s how to [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Eric &#8230; here&#8217;s <a href="http://t-machine.org/index.php/2010/04/09/rejected-by-and-rejecting-google/comment-page-1/" >my problem</a>:</p>
<blockquote><p>
<a href="http://hbr.org/2010/05/how-i-did-it-googles-ceo-on-the-enduring-lessons-of-a-quirky-ipo/ar/2" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://hbr.org/2010/05/how-i-did-it-googles-ceo-on-the-enduring-lessons-of-a-quirky-ipo/ar/2');">Somehow that didn&#8217;t feel right for Google. We wanted something much more transparent and open&#8221;</a> (Eric Schmidt, Chairman/CEO Google, writing in the Harvard Business Review this month)
</p></blockquote>
<p>How, exactly, would you reconcile that with the fact that I had to serve Google with a legal document (<a href="http://www.ico.gov.uk/what_we_cover/data_protection/your_rights/how_to_access_information.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.ico.gov.uk/what_we_cover/data_protection/your_rights/how_to_access_information.aspx');">here&#8217;s how to use the Data Protection Act of 1998</a>) to get the feedback that your employees admitted they already had?</p>
<p>How do you explain the difference between the 10 seconds of feedback I received from your in-house recruiter, and the 12 pages (yes, *pages*) of feedback I received after I served the legal notice. Is this transparent? Is it open?</p>
<p>I&#8217;ve met many Googlers, and a lot of them are excellent salespeople for the company. If I truly believed that Google lived up to it&#8217;s claimed principles, I would go to great lengths to work there. Why devote my time, the precious days of finite life, to any other kind of organization? Before the interview process, I *did* believe, thanks to the testimonies of friends and ex-colleagues.</p>
<p>But the reality is clearly &#8211; &#8220;transparently&#8221;, to use your terminology &#8211; different. And it&#8217;s only thanks to the insightful and diligent work of UK lawmakers that I got anything out of Google at all. Amusingly, you didn&#8217;t even pay my travel expenses! Ironically, at the same office, when I went to the London Open House party, many years ago, I provided less &#8230; and received more &#8230; than when *you* asked *me* to come to an interview for a job. Surely that&#8217;s the wrong way around?</p>
<p>(I&#8217;ve still got my Google Open House t-shirt, and I got free food and drinks at the event. Thanks! That&#8217;s more than I got from the interviews&#8230;)</p>
<p>Personally, I have huge respect for people. I believe it&#8217;s the most important thing *for me* in any business. There are industries where individuals don&#8217;t really matter &#8211; I actively choose not to work in those industries. As experienced first-hand, my values wouldn&#8217;t allow me to work at a corporation like Google.</p>
<p>Why is it acceptable to those of you who work there now?</p>
<h4>Footnote&#8230;</h4>
<p>So, Google doesn&#8217;t live up to the hype? Shrug. My reaction: I&#8217;m building my own company that does. I&#8217;m not going to sit around waiting for someone else to make it for me.</p>
<p>Also &#8230; about that 12 pages of feedback&#8230; I checked with Google whether they&#8217;re OK with me publishing it (me, I really do strive for transparency ;)) &#8211; they said something very close to &#8220;it&#8217;s your data &#8211; do you what you want&#8221;. I&#8217;ve already sent it to a wide array of friends and ex-colleagues &#8211; people who know me well enough, both good and bad, to read between the lines and second-guess the context.</p>
<p>But it&#8217;s hugely context-dependent (i.e. you had to have been there to understand what&#8217;s going on), and there&#8217;s some extreme statements in there. It would be very easy to misinterpret, sometimes making Google look much worse than it should, sometimes making me look much worse than it should. I&#8217;m conflicted on how to publish it; transparency is great, but &#8230; you have to consider your personal responsibility too.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/11/google-your-attitude-sucks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix.&#8221;</title>
		<link>http://t-machine.org/index.php/2010/05/11/not-satisfied-with-the-number-of-deaths-and-permanent-maimings-from-that-invention-he-invents-c-and-unix/</link>
		<comments>http://t-machine.org/index.php/2010/05/11/not-satisfied-with-the-number-of-deaths-and-permanent-maimings-from-that-invention-he-invents-c-and-unix/#comments</comments>
		<pubDate>Tue, 11 May 2010 18:16:41 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=890</guid>
		<description><![CDATA[Beautiful, and disturbingly accurate.]]></description>
			<content:encoded><![CDATA[<p><a href="http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html');">Beautiful, and disturbingly accurate</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/11/not-satisfied-with-the-number-of-deaths-and-permanent-maimings-from-that-invention-he-invents-c-and-unix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entity System 1: Java/Android</title>
		<link>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/</link>
		<comments>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/#comments</comments>
		<pubDate>Sun, 09 May 2010 22:54:13 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games design]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=876</guid>
		<description><![CDATA[I&#8217;ve been writing about Entity Systems sporadically for the last few years. Recently, I finally had the time and the excuse to build one of my own (i.e. not owned by an employer). If you haven&#8217;t read the main series of ES posts, you should do that first. There are many things in the world [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been <a href="http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/" >writing about Entity Systems sporadically for the last few years</a>. Recently, I finally had the time and the excuse to build one of my own (i.e. not owned by an employer). If you haven&#8217;t read the main series of ES posts, you should do that first. There are many things in the world masquerading under the Entity/Component banner &#8211; and even more that just coincidentally share the name, but describe something else completely. It&#8217;s worth understanding which variant I&#8217;m talking about before you read about what I&#8217;ve done :).</p>
<h4>Why build an Entity System?</h4>
<p>At a generic level, this is covered in the other posts. But it&#8217;s taken years for me to have the time/inclination to write a new one from scratch outside of my day-job. What happened?</p>
<ol>
<li>I left my iPhone in America, and it took 2 months to get it back
<li>Google gave me a free Nexus One, in the hope I&#8217;d write something for it (ha! Their cunning plan worked&#8230;)
<li>The Android marketplace is such a miserable morasss of third-rate crap that eventually I was compelled to write my own Android game &#8230; just so that I would have something to play (there are very few games on the Android store that are even worth the time it takes to download them)
</ol>
<p>I&#8217;ve been making games for a long time. I know how much effort will go into it, how much time, and how much slog there is before it becomes worth it. Writing a game on your own often means putting in 90% of the effort to get 10% of the reward.</p>
<p>Enter &#8230; the Entity System. If I were to pick a game-design that mostly used data-driven game features, I could implement it around an ES, and massively reduce the amount of planning needed to get the game running. I could maybe have a working game after a mere 20% of the effort. Hmm&#8230;</p>
<h4>Building the ES for Android</h4>
<p>Android runs something that&#8217;s *almost* Java (although more on that later &#8211; Android&#8217;s version of Java is very slow at some of the core libraries, and it really shouldn&#8217;t be). Technically, Android supports all the core data structures from Java (Collections), and the templating system (Generics).</p>
<p>If I were writing an ES in C++, I&#8217;d do it using templates without pausing to think; I wondered how well the same might work with Generics, given that Generics is *not* a complete templating system, although it provides quite a lot.</p>
<h4>Getting started: early ES decisions</h4>
<p>How to design/implement this thing? Well, we know one thing for sure:</p>
<p>Entities have a single name/label/global-ID. Entities MUST NOT contain ANY DATA: these are NOT objects, this is NOT OOP!</p>
<p>There you go, the Entity class wrote itself:</p>
<blockquote><pre>
public class Entity
{
   public int id;
}
</pre>
</blockquote>
<p>This immediately raised some concerns for me, being the seasoned coder I am (ha!). How the heck was I going to write any code that dealt with these things if I didn&#8217;t have references to them? Obviously, sometimes you do have references, but other times you expect to follow refs from within the objects you have, to get to the objects you need. That wouldn&#8217;t be happening here, since there are no inter-object refs.</p>
<pre>
<blockquote>
public class BaseEntitySystem implements EntitySystem
{
	/** I'm too lazy to write a "safe" method to get a globally-unique ID; for now,
		I just return 1 the first time I'm called, 2 the second time, etc... */
	protected int getNextAvailableID();

	/** Whenever you create an entity, you'd better invoke this method too! */
	public void registerEntity( Entity e );

	/** The method to solve my fears above */
	public Entity getEntity( int id )

	/**
	 * Merely removes the entity from the store. It becomes a GC candidate
	 * almost immediately (since all other refs are transient)
	 */
	public void killEntity( Entity e )
}
</blockquote>
</pre>
<p>&#8230;but, again, being a Veteran coder, the survivor of many painful battles on the field of programming &#8230; I didn&#8217;t trust myself in the slightest to &#8220;always remember&#8221; to invoke registerEntity. Quick trick: give the Entity class a static reference to a default EntitySystem, and have each EntitySystem check if that reference is null when starting; if so, set itself as the &#8220;default&#8221;.</p>
<pre>
<blockquote>
public class Entity
{
	...
	public static EntitySystem defaultEntitySystem;
	...
	public Entity( int i )
	{
		id = i;

		if( defaultEntitySystem == null )
			throw new IllegalArgumentException( "There is no global
 EntitySystem; create a new EntitySystem before creating Entity's" );

		defaultEntitySystem.registerEntity( this );
	}
	...
}

public class BaseEntitySystem implements EntitySystem
{
	...
	public BaseEntitySystem()
	{
		if( Entity.defaultEntitySystem == null )
		{
			slog( "Setting myself as default entity system (Entity.default... is currently null);
 self = " + this );
			Entity.defaultEntitySystem = this;
		}
	}
	...
}
</blockquote>
</pre>
<p>W00t! I can create Entity&#8217;s, and I can find them later on. Awesome. What about those Components, then?</p>
<h4>Getting started: Components in Java</h4>
<p>I&#8217;ve done ES in C++ before, with real templates, so I wasn&#8217;t really thinking at this point &#8230; I just ran with what seemed natural based on prior experience. The thought process (had there been one) would have been something like this:</p>
<ol>
<li>This is java, I use Eclipse: I absolutely *must* have the IDE know what data/fields exist in each component so that Content-Assist/Autocomplete works 100%. Otherwise I will gouge my own eyes out having to remember, and doubly so each time the app compiles but dies at runtime because of a typo in a field-name.
<ul>
<li>Requirement: each unique Component must be defined as a java Class, with each of the fields being a public member of that class
<li>Requirement: to access a Component of a given Entity, you must invoke a method which returns something that is typed (as in language typing) to the correct Class
</ul>
</ol>
<p>I made a Component class, and had all Components extend it; there is a particular reason for this, but it doesn&#8217;t matter right now &#8211; essentially, it lets you define shared behaviour for all Component subclasses, and just saves you time on typing.</p>
<p>My first real Component:</p>
<p>(NB: I defined this *inside* another class, because I couldn&#8217;t be bothered having N source files for the (large number of) N Components I was bound to create. Hence the &#8220;static&#8221;):</p>
<pre>
<blockquote>
public class MyEntitySystemExperiment
{
	...
	static class Position extends Component
	{
		float x, y;
		int width, height;
		float rotationDegrees;

		@Override public String toString()
		{
			return "("+super.toString()+" @ ("+x+","+y+") * rot."+rotationDegrees+")";
		}
	}
	...
}
</blockquote>
</pre>
<p>Great. I have a component. Now comes the largest single piece of work in the entire implementation of the ES: writing the methods to:</p>
<ol>
<li>Add a component to an Entity
<li>Fetch a component from an Entity
<li>Remove a component from an Entity
</ol>
<h4>Fetching a Component from an Entity</h4>
<p>This is the win/lose point: if this works well, our ES will be nice and easy to use. The other two methods (add and remove) are simply twiddling bits of data. This one is the challenge: can you make it *easy* to write code that uses the ES, and for that code to be clearly *understandable*?</p>
<pre>
<blockquote>
public class EntitySystemSimple extends BaseEntitySystem
{
	HashMap&lt;Class, HashMap&lt;Entity, ? extends Component&gt;&gt; componentStores;

	public &lt;T&gt; T getComponent( Entity e, Class&lt;T&gt; exampleClass )
	{
	   HashMap&lt;Entity, ? extends Component&gt; store = componentStores.get( exampleClass );

	   T result = (T) store.get( e );
	   if( result == null )
	      throw new IllegalArgumentException( "GET FAIL: "+e+" does not
possess Component of class\n   missing: "+exampleClass );

	   return result;
	}
	...
}
</blockquote>
</pre>
<p>Boom! It works.</p>
<p>Let&#8217;s just stop briefly and I&#8217;ll explain why. Reading Java generics code from cold (just like reading C++ templates) often takes a lot of hard thinking.</p>
<p>Looking at the &#8220;result&#8221; of this method, we want it to be (enforced by the compiler):</p>
<ol>
<li>&#8220;an instance of a class that extends Component&#8221;
<li>&#8220;an instance of the particular class/Component that we requested &#8211; not just any old subclass&#8221;
</ol>
<pre>
<blockquote>
public &lt;T&gt; T getComponent( Entity e, Class&lt;T&gt; exampleClass )
</blockquote>
</pre>
<p>Here, I failed. I wanted the signature to be:</p>
<pre>
<blockquote>
public &lt;T extends Component&gt; T getComponent( Entity e,
	 Class&lt;T extends Component&gt; exampleClass )
</blockquote>
</pre>
<p>&#8230;but I couldn&#8217;t quite get it to work. I&#8217;m too rusty with Java Generics (hopefully someone else can point out my stupid mistake(s)).</p>
<p>But for the most part, it works. Because it causes you to write application code that looks something like this:</p>
<pre>
<blockquote>
public void doSomethingWithAnEntity( int globalId )
{
	// remember, we NEVER hold refs to Entity objects for long
	Entity e = entitySystem.get( globalId );

	Position position = entitySystem.getComponent( e, Position.class );
	position.x = 5;
}
</blockquote>
</pre>
<p>&#8230;and what&#8217;s far more important is that the &#8220;type&#8221; of the &#8220;Position position = &#8230;&#8221; line is already hard-typed to &#8220;Position&#8221;. So, the content-assist will *auto-complete* anything put after a dot on the end of that line, e.g.:</p>
<pre>
<blockquote>
	entitySystem.getComponent( e, Position.class ).AUTO_COMPLETE
</blockquote>
</pre>
<p>&#8230;so you can instead write your method much quicker, and yet very clearly, as:</p>
<pre>
<blockquote>
public void doSomethingWithAnEntity( int globalId )
{
	// remember, we NEVER hold refs to Entity objects for long
	Entity e = entitySystem.get( globalId ); 

	entitySystem.getComponent( e, Position.class ).x = 5;
	entitySystem.getComponent( e, Damage.class ).hitpoints = 145;
	entitySystem.getComponent( e, Renderable.class ).foregroundColour = Color.red;
}
</blockquote>
</pre>
<h4>Time-out: HashMap</h4>
<p>HashMap is the &#8220;correct&#8221; class to use in Java for this setup: it&#8217;s the exact equivalent of Hashtable / Dictionary / etc in other languages. We need to map (somewhere, somehow) from one thing (an entity) to another thing (a component).</p>
<p>NB: this does not mean that you have to use HashMap as your data-store for the ES; I positively encourage you to consider other options. I used it here as the most obvious, simplest possible structure that would do the job. If you think back to my posts on Entity Systems for MMO development, I&#8217;ve often suggested that the data store could *and should* be any of many different things. In particular, SQL databases make for an excellent data-store (and remember you can get in-memory SQL implementations that do away with all the expensive write-to-disk stuff).</p>
<p>Unfortunately &#8230; Android seems to only partially support HashMap. You can use the class, but it runs an order of magnitude slower than you expect for a normal JVM (compared to the speed with which it runs other methods). It seems to have problems with the hashcode methods, but also even with basic iteration over the Map contents. Odd. Later on, I had to do some tricks to speed up the ES, just because of this problem.</p>
<h4>Fetching a Component from an Entity: Redux</h4>
<p>The examples I gave above for accessing components were lean and clear on the right hand side (thanks to autocomplete and strong typing), but terrible on the left-hand-side. By the magic of OOP, I&#8217;m going to clean up the LHS. BUT (and this is a big &#8220;but&#8221;) &#8230; make sure you fully understand what I&#8217;m doing here. With what I&#8217;m about to do, it would be very easy to fall into one of the traps of ES development: slipping back into OOP techniques.</p>
<p>Looking at the example:</p>
<pre>
<blockquote>
	entitySystem.getComponent( e, Position.class ).x = 5;
	entitySystem.getComponent( e, Damage.class ).hitpoints = 145;
	entitySystem.getComponent( e, Renderable.class ).foregroundColour = Color.red;
</blockquote>
</pre>
<p>&#8230; applying OOP mindset, we see that the first argument is redundant; the Entity already knows about the EntitySystem to which it&#8217;s registered.</p>
<p>Also, we know that the Entity class will never have any methods or data other than the ID. If that&#8217;s the case, the only thing we&#8217;d ever &#8220;get&#8221; from an Entity is a Component. So, we can add this to Entity:</p>
<pre>
<blockquote>
public class Entity
{
	...
	/** Gets a filtered view of the entity's data, only returning the subset that
	 * corresponds to a particular one of its components */
	public &lt;T&gt; T getAs( Class&lt;T&gt; type )
	{
		return source.getComponent( this, type );
	}
	...
}
</blockquote>
</pre>
<p>&#8230;which converts our usage example to:</p>
<pre>
<blockquote>
	e.getAs( Position.class ).x = 5;
	e.getAs( Damage.class ).hitpoints = 145;
	e.getAs( Renderable.class ).foregroundColour = Color.red;
</blockquote>
</pre>
<h4>Using the ES with Systems</h4>
<p>Recap: right now, we can:</p>
<ol>
<li>Create entities
<li>Add components to entities
<li>Read/Write the data inside each component, on a per-entity basis
<li>Fetch entities by globally unique ID
</ol>
<p>One last thing is needed before the ES can work: we need a way to fetch Entities &#8220;by component&#8221;.</p>
<p>e.g.:</p>
<pre>
<blockquote>
public class MyEntitySystemExperiment
{
	...
	public void runLoop()
	{
		while( true )
		{
			// move all the entities
			positionSystem.move( MOVEABLE_ENTITIES );

			// check for collisions
			collisionDetectionSystem.process( MOVEABLE_ENTITIES );

			// render all the visible entities
			renderingSystem.render( RENDERABLE_ENTITIES );
		}
	}
	...
}
</blockquote>
</pre>
<p>We need a way to provide the arguments that are capitalized above. We know that these should be plain-old lists of entities. We know they have to come from the EntitySystem. Finally, we know that the only defining characteristic of these lists is that everything in the list has *at least* a particular Component.</p>
<p>(respectively, in the example above, the lists contain: &#8220;all entities that are moveable&#8221;, &#8220;all entities that are moveable AND all entities that are barriers to movement (e.g. solid walls)&#8221;, and &#8220;all entities that should be displayed on-screen&#8221;)</p>
<p>So, one more method for the EntitySystem interface:</p>
<pre>
<blockquote>
public interface EntitySystem
{
	...
	public List&lt;Entity&gt; getAllEntitiesPossessing( Class... requiredComponents );
	...
}
</blockquote>
</pre>
<p>&#8220;Class&#8230;&#8221; is just a convenience; in many cases, you&#8217;ll be insisting on a single Component. In many other cases, you&#8217;ll be insisting on a set of components. Java varargs provide the minor convenience of doing both of those in one method, while retaining type-safety.</p>
<p>The implementation of this method is obvious: it iterates over every entity that&#8217;s been registered, and checks it against ALL the required components. If it possesses all of them, it goes into the output list.</p>
<h4>Finis</h4>
<p>That&#8217;s it. So easy! Obviously, there&#8217;s more to it &#8211; the other methods you need to create should be mostly self-evident &#8211; but this should be enough to get you started.</p>
<p>Now, I&#8217;m not sure where to go from here. I&#8217;ve got a working Java ES. I&#8217;ve got some performance improvements and feature improvements. But &#8230; in practice, hardly anyone writes games in Java (except Android programmers, and there aren&#8217;t many of those), so &#8230; is it worth it?</p>
<p>Alternatively, I might just run through some of the practical pros and cons I encountered when actually using the ES in writing the game-logic. There&#8217;s some interesting things that came up which most people encounter sooner or later when doing their first ES, and which might be worth looking at in more detail.</p>
<h4>One last thought&#8230;</h4>
<p>Did it work? Did this ES allow me to write a decent Android game?</p>
<p>Yep. I wrote a space-invaders / bullet-hell game with it. It worked fine on Android phones for a hundred-odd enemies and bullets on screen. On Android, thanks to the crappy JVM, it started to chug after that (dropped below 30 FPS), so I had to make some substantial performance improvements, and now it&#8217;s happily rendering 300 things all flying around at 20-30 FPS. The game is far from finished, but it&#8217;s playable and fun for a minute or so &#8211; a definite achievement considering how little of it I&#8217;ve written so far.</p>
<p><a href="https://t-machine.org/wp-content/uploads/many-entities-at-10-fps.png" ><img src="https://t-machine.org/wp-content/uploads/many-entities-at-10-fps.png" alt="many-entities-at-10-fps" title="many-entities-at-10-fps" width="240" height="400" class="alignright size-full wp-image-887" /></a></p>
<p>NB: it&#8217;s got some way to go before I&#8217;ll be happy releasing it. But, given a few more spare evenings, I hope to get this up on the Android Market as a free download in the near future.</p>
<p>I&#8217;m pleasantly surprised that the Android phones can handle something as high-level as an ES, in a pure, unoptimized &#8220;simplest possible&#8221; implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
		<item>
		<title>Exposing the Weak Recruitment Agencies: 2 more</title>
		<link>http://t-machine.org/index.php/2010/05/06/exposing-the-weak-recruitment-agencies-2-more/</link>
		<comments>http://t-machine.org/index.php/2010/05/06/exposing-the-weak-recruitment-agencies-2-more/#comments</comments>
		<pubDate>Thu, 06 May 2010 18:08:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=871</guid>
		<description><![CDATA[Two more firms have proven their mettle this week (i.e.: think twice before engaging them). As always, it&#8217;s nothing personal. If a recruitment agent is doing a job that I and others think weak, but managed to persuade an employer to pay them to do it &#8211; and to accept that standard &#8211; then all [...]]]></description>
			<content:encoded><![CDATA[<p>Two more firms have proven their mettle this week (i.e.: think twice before engaging them).</p>
<p>As always, it&#8217;s nothing personal. If a recruitment agent is doing a job that I and others think weak, but managed to persuade an employer to pay them to do it &#8211; and to accept that standard &#8211; then all power to them; they&#8217;re just making a living. No employer is ever &#8220;required&#8221; to use an agent, and they have many to choose from; they have no excuse for not insisting on high standards. Shame on the employers for screwing-up their own employee-base like this.</p>
<p>See here for more examples:</p>
<ol>
<li><a href="http://t-machine.org/index.php/2009/02/11/shaming-the-recruitment-agencies-lorien/" >Lorien</a>
<li><a href="http://t-machine.org/index.php/2008/11/21/shaming-the-recruitment-agencies-aardvark-swift/" >Aardvark Swift</a>
</ol>
<h4>Ravello/Enigma</h4>
<p>First up, we have Ravello/Enigma, with two big faux pas.</p>
<h5>1. You didn&#8217;t even bother to read my profile before you approached me. Hmm.</h5>
<p>I double-checked. Yep, <a href="http://t-machine.org/index.php/2009/02/17/dear-recruitment-agent-hiring-manager-hr-staffer/" >it&#8217;s still there, in black and white (and caps lock)</a>:</p>
<blockquote><p>
&#8220;NOTE CAREFULLY! * I only add people I actually know.&#8221;
</p></blockquote>
<h5>2. You cold-contacted me with a job, and then refused to tell me what the job is. Or who it&#8217;s for. Or, in fact, *ANY REASON* I might be interested.</h5>
<blockquote><p>
Recruitment Agent:<br />
&#8220;I have the following role for you:<br />
Job type/s: 2 roles. 6 months fixed term contract or 1 year perm.<br />
Salary: Wide open but depends on experience really.&#8221;
</p></blockquote>
<blockquote><p>
Me:<br />
&#8220;What&#8217;s the actual role? I&#8217;m guessing this is iPhone related? My standard rate for iPhone development and consulting is X&#8221;
</p></blockquote>
<blockquote><p>
Recruitment Agent:<br />
&#8220;The project details are top secret as my client advised me but it is an Iphone/Ipad related role. As stated before, salary depends on experience.&#8221;
</p></blockquote>
<p>WTF? What is this &#8211; MI6? The CIA?</p>
<p>I tried to think of an intelligent response. I failed. Maybe I&#8217;m supposed to be &#8220;intrigued&#8221; and start begging the Agent to give me some information? &#8220;Artificial scarcity&#8221; and all that?</p>
<p>Frankly, I have no idea. Just too weird.</p>
<h4>Unique Selection</h4>
<p>Second, we have Unique Selection, asking me to do their job for them gratis (the job that they get paid to do&#8230;).</p>
<h5>1. How many times do you have to ask me to sell-out my network to you (which &#8211; as noted above &#8211; if you bothered to read my profile you&#8217;d see I&#8217;m not going to do) .. before you get the hint?</h5>
<ol>
<li>&#8220;Also, could we connect on LinkedIn?&#8221;
<li>&#8220;In the meantime if we could connect on LInkedIn that would be great&#8221;
</ol>
<p>On the third attempt I relented and pointed the agent at my profile. The one they should have read to start with.</p>
<h5>2. Why would I do your job for you? And, even if you were paying me to find you candidates, why on earth would I not hire those people myself?</h5>
<blockquote><p>
Agent:<br />
&#8220;I wasn’t sure if you could help me but my client is looking for an perm iPhone/iPad App developer to join their team&#8221;
</p></blockquote>
<blockquote><p>
Me:<br />
&#8220;I run an iPhone development team&#8221;
</p></blockquote>
<p>(basically: I couldn&#8217;t believe they were really that cheeky / dumb as to ask me to do their recruiting for them.)</p>
<blockquote><p>
Agent:<br />
&#8220;If you were to go perm, what would roughly be the base you would look for?&#8221;
</p></blockquote>
<blockquote><p>
Me:<br />
&#8220;I&#8217;m probably not interested.&#8221;
</p></blockquote>
<blockquote><p>
Agent:<br />
&#8220;please feel free to pass my details to anyone you think could be interested.
</p></blockquote>
<p>Ah, yes, because those of us who actually &#8220;make things&#8221; have nothing better to do than offer ourselves up to be exploited so that recruitment agents can get a pay-cheque. Social security, eat your heart out&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/06/exposing-the-weak-recruitment-agencies-2-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>John Say: Please **** your network on Ushi</title>
		<link>http://t-machine.org/index.php/2010/05/05/john-say-please-your-network-on-ushi/</link>
		<comments>http://t-machine.org/index.php/2010/05/05/john-say-please-your-network-on-ushi/#comments</comments>
		<pubDate>Wed, 05 May 2010 17:36:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=868</guid>
		<description><![CDATA[I&#8217;m getting messages every day from John Say (of Say Design) pushing me to join his network on Ushi. Ignoring them had no effect; I&#8217;m now routinely forwarding these to google&#8217;s spam box. I&#8217;m amazed that in 2010 people would send out an &#8220;invitiation&#8221; to their business contacts without bothering to provide the recipient with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting messages every day from John Say (of Say Design) pushing me to join his network on Ushi.</p>
<p>Ignoring them had no effect; I&#8217;m now routinely forwarding these to google&#8217;s spam box.</p>
<p>I&#8217;m amazed that in 2010 people would send out an &#8220;invitiation&#8221; to their business contacts without bothering to provide the recipient with ANY REASON why they&#8217;d want to say yes. <a href="http://en.wikipedia.org/wiki/The_Cluetrain_Manifesto" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/The_Cluetrain_Manifesto');">Cluetrain</a>, guys?</p>
<p>(Also: John, and everyone else, please stop. This shitty service doesn&#8217;t even include an email address for me to ask you directly)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/05/john-say-please-your-network-on-ushi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Google SEO goes unmaintained too long&#8230;</title>
		<link>http://t-machine.org/index.php/2010/05/05/when-google-seo-goes-unmaintained-too-long/</link>
		<comments>http://t-machine.org/index.php/2010/05/05/when-google-seo-goes-unmaintained-too-long/#comments</comments>
		<pubDate>Wed, 05 May 2010 17:15:04 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=865</guid>
		<description><![CDATA[Interesting search result for &#8220;O2 Facebook&#8221;: &#8230;IIRC that started off as a service for MySpace, then MySpace/Facebook. Apparently now it&#8217;s all about Facebook (only). The only mention of MySpace is a navbar link to something about broadband &#8211; seemingly unrelated. PS: Entity System post coming soon, for those that look for such things. I&#8217;ve just [...]]]></description>
			<content:encoded><![CDATA[<p>Interesting search result for &#8220;O2 Facebook&#8221;:</p>
<p><a href="https://t-machine.org/wp-content/uploads/facebook-mobile-o2-myspace.png" ><img src="https://t-machine.org/wp-content/uploads/facebook-mobile-o2-myspace.png" alt="facebook mobile o2 myspace" title="facebook mobile o2 myspace" width="711" height="102" class="aligncenter size-full wp-image-866" /></a></p>
<p>&#8230;IIRC that started off as a service for MySpace, then MySpace/Facebook. Apparently now it&#8217;s all about Facebook (only). The only mention of MySpace is a navbar link to something about broadband &#8211; seemingly unrelated.</p>
<p>PS: Entity System post coming soon, for those that look for such things. I&#8217;ve just written one for Android. I just have to take the time to write the damn thing up!</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/05/05/when-google-seo-goes-unmaintained-too-long/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Low-cost publishing = easy-to-kill content</title>
		<link>http://t-machine.org/index.php/2010/04/26/low-cost-publishing-easy-to-kill-content/</link>
		<comments>http://t-machine.org/index.php/2010/04/26/low-cost-publishing-easy-to-kill-content/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 10:11:57 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[server admin]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=860</guid>
		<description><![CDATA[One great achievement of the web is the huge reduction in barriers to publishing. But the flipside is that we now see extremely low incentives for publishers to keep content &#8220;live&#8221;. Back when it cost money to publish info, you had good reasons to *keep* your content live once it had been published; you had [...]]]></description>
			<content:encoded><![CDATA[<p>One great achievement of the web is the huge reduction in barriers to publishing. But the flipside is that we now see extremely low incentives for publishers to keep content &#8220;live&#8221;. Back when it cost money to publish info, you had good reasons to *keep* your content live once it had been published; you had a revenue stream to protect.</p>
<p>Nowadays, with publishing costing nothing, it&#8217;s often un-monetized. All it takes is the slightest increase in hassle for the publisher, and they&#8217;re better off killing the content entirely.</p>
<p>That&#8217;s the case with a site I just shut down. A small, incomplete &#8211; yet moderately valuable &#8211; resource for iPhone Developers, with a few thousand unique visitors a month. Too small to be worth monetizing, so I hadn&#8217;t. I was eating the (very small) hosting and support costs, until someone abused the site, and those &#8220;support costs&#8221; became non-trivial.</p>
<h4>iPhoneDevelopmentFAQ &#8211; history</h4>
<p>I created this site at the start of 2009, because there was no good FAQ for iPhone Development (AFAIAA there still isn&#8217;t; even today, the nearest you can get is StackOverflow. SO is great, but &#8230; a lot of subjects are &#8220;forbidden&#8221; under the site terms, and the site-search is very weak).</p>
<p>I set it up to be low maintenance, and to allow multiple people to moderate it (very similar lines to SO, but slightly less open, and a lot more &#8220;niche&#8221;).</p>
<p>In the past two weeks, after more than a year of &#8220;no active moderation&#8221;, we saw forged posting credentials and then pointless offensive questions. First rule of running a passive website: leave it configured to report (surreptitiously) on all unusual activity, so you can see if it gets out of hand / abused / attacked / etc.</p>
<h4>Options</h4>
<p>Deleting offensive content requires only a couple of minutes (to remember the password, login, and hit delete).</p>
<p>Checking what happened with the forged credential (probably unrelated) is more like half a day to a couple of days. I could audit the code, audit whatever 3rd-party PHP libraries were being referenced, and almost certainly plug the hole (or holes).</p>
<p>Or &#8230; I could do what I actually did: two lines of typing, and Apache kills the site. In a way, it&#8217;s a bit sad &#8211; it had background traffic of a few thousand uniques a month &#8211; and the whole thing is now gone.</p>
<h4>The fragility of niche interests</h4>
<p>At the end of the day, I get *zero benefit* from this site. I pay a tiny amount for the web-hosting and the domain-hosting, so it&#8217;s almost free, and I&#8217;m happy to leave it running for the benefit of the thousands of visitors each month.</p>
<p>But if it&#8217;s going to start costing me hundreds (or thousands) of dollars in lost time when I would otherwise have been doing paid contract work (every hour not working is an hour&#8217;s salary lost) &#8230; then the balance switches and (as in this case) I&#8217;m obviously going to kill the site.</p>
<p>I expect that the people who abused the site were just being thoughtless, and probably wouldn&#8217;t have ever gone back anyway. But I can&#8217;t afford the time to make sure.</p>
<p>Ultimately: Who has the time for this? A handful of callous acts just killed a repository of info.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/26/low-cost-publishing-easy-to-kill-content/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3D gaming? What if&#8230;</title>
		<link>http://t-machine.org/index.php/2010/04/23/3d-gaming-what-if/</link>
		<comments>http://t-machine.org/index.php/2010/04/23/3d-gaming-what-if/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 16:25:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[games design]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=858</guid>
		<description><![CDATA[So neatly done, I find it hard to believe it&#8217;s not real&#8230; &#8220;3D gaming? What if the game characters saw the GAMER in 3D instead of the other way around? Is it really only myself that thinks like this?&#8221; (along with other greats such as: &#8220;A good game can be played on a 12&#8243; black [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/petermolyneux2" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://twitter.com/petermolyneux2');">So neatly done, I find it hard to believe it&#8217;s not real</a>&#8230;</p>
<blockquote><p>
&#8220;3D gaming? What if the game characters saw the GAMER in 3D instead of the other way around? Is it really only myself that thinks like this?&#8221;
</p></blockquote>
<p>(along with other greats such as: &#8220;A good game can be played on a 12&#8243; black and white TV. Fact.&#8221; &#8230; and &#8220;What do all games require? The answer is someone to play them. What if a game went against that very concept?&#8221;)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/23/3d-gaming-what-if/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thunderbird 3 critical bugs: IMAP folders</title>
		<link>http://t-machine.org/index.php/2010/04/19/thunderbird-3-critical-bugs-imap-folders/</link>
		<comments>http://t-machine.org/index.php/2010/04/19/thunderbird-3-critical-bugs-imap-folders/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 22:07:45 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=853</guid>
		<description><![CDATA[Why couldn&#8217;t I stop thunderbird from downloading 2GB of files that it is absolutely not supposed to download in the first place? Ah, well, it turns out &#8230; there&#8217;s a bug in the basic &#8220;include folder for offline&#8221; GUI, whereby it is COMPLETELY IGNORED for certain folders. One of those folders being &#8230; the magic [...]]]></description>
			<content:encoded><![CDATA[<p>Why couldn&#8217;t I <a href="http://t-machine.org/index.php/2010/03/25/thunderbried-3-0-x-make-it-download-only-the-selected-folders/" >stop thunderbird from downloading 2GB of files that it is absolutely not supposed to download in the first place</a>?</p>
<p>Ah, well, it turns out &#8230; there&#8217;s a bug in the basic &#8220;include folder for offline&#8221; GUI, whereby it is COMPLETELY IGNORED for certain folders. One of those folders being &#8230; the magic &#8220;All Mail&#8221; folder in Gmail.</p>
<p>Instead, you must <a href="http://www.pubbs.net/200912/thunderbird/24132-re-tb3-how-to-ignore-folders-in-imap.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.pubbs.net/200912/thunderbird/24132-re-tb3-how-to-ignore-folders-in-imap.html');">use a *different* part of the TB GUI to kick the damn stupid software into doing things properly in the first place</a>:</p>
<blockquote><p>
&#8220;Right click on the account in the Folder pane, and click on Subscribe..<br />
You can then tick or un-tick the subscribe box for each folder.<br />
Click on OK when you&#8217;ve finished.&#8221;
</thublockquote>
<p>This seems to work, having just tried it. Although &#8230; I also went into my profile and manually deleted the monstrous All Mail file &#8211; but before I did the above hack, TB (dis)loyally would immediately start redownloading that folder each time you started it up. Now it merely downloads the headers (at least that&#8217;s counted in MB, not GB). Now you can have your email client, with about 4 pages of manual hacks, work as &#8230; a basic IMAP email client.</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-1401.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-1401.png" alt="Picture 140" title="Picture 140" width="888" height="662" class="aligncenter size-full wp-image-855" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/19/thunderbird-3-critical-bugs-imap-folders/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 [...]]]></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>Rejected by, and Rejecting, Google</title>
		<link>http://t-machine.org/index.php/2010/04/09/rejected-by-and-rejecting-google/</link>
		<comments>http://t-machine.org/index.php/2010/04/09/rejected-by-and-rejecting-google/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 11:05:32 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=849</guid>
		<description><![CDATA[I&#8217;m doing some pretty cool stuff at the moment &#8211; I&#8217;m not looking for a job &#8211; but a few months ago I got emailed by three different Google recruiters, inviting me to apply for three (different) specific jobs, in different parts of the company, almost all at the same time. 2 were in London, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing some pretty cool stuff at the moment &#8211; I&#8217;m not looking for a job &#8211; but a few months ago I got emailed by three different Google recruiters, inviting me to apply for three (different) specific jobs, in different parts of the company, almost all at the same time. 2 were in London, 1 was in Zurich.</p>
<p>(I guess that all departments were given the go-ahead to increase head-count at the same time &#8211; hence hearing from 3 people at once. They didn&#8217;t co-ordinate, either &#8211; at least one of the recruiters failed to notice that I was already being interviewed, and asked in her opening email: &#8220;would you consider working at Google?&#8221;, the day before my scheduled interview with a different department :))</p>
<p>I took advice from current and ex Googlers &#8211; I wasn&#8217;t looking for a job at the time &#8211; and they gave estimates of up to 3-6 months to complete the process, so I might as well go ahead and see what happened.</p>
<p>I had an excellent first-round interview. I have the written feedback here (which Google point-blank refused to let me have, until I served a legal notice on them, and forced them to pony-up &#8230; more on that later):</p>
<blockquote><p>
Adam is probably the most interesting, experienced, and &#8220;Googley&#8221; candidate I have ever interviewed. I am excited about the mere possibility of him joining Google: he would bring entrepreneurship, product design acumen, incredible passion for technology, experience at a big influence, and other critical skills.
</p></blockquote>
<p>Yeah, it&#8217;s way over the top, and hard to believe. I quote it here for reference against what happened next&#8230;</p>
<p>I had four second-round interviews, back to back, starting at mid-morning, and carrying on through the afternoon with no break for lunch. By the end, I&#8217;d not eaten in 8 hours (why no lunch? Ask the Google recruiters; they never gave me an apology or explanation). I&#8217;d caught an infection the day before, and felt like crap throughout. The interviews went from poor to terrible, and overall it was a disaster; a rejection soon followed. (NB: with hindsight, even had I been compos mentis, there&#8217;s a good chance I&#8217;d have been rejected &#8211; I&#8217;m not blaming the rejection on this)</p>
<p>It was immediately followed by another request from one of the other recruiters re-inviting me to their job instead &#8211; including attached paperwork to progress the application.</p>
<p>There were a handful of small but mildly offensive &#8211; mostly passive-aggressive &#8211; actions by Google staff along the way. Overall I was shocked, I felt that the way I was treated was poor. I was also concerned about the process itself. They admitted they had detailed feedback on my rejection, but refused to divulge any of it (legally, they had to; I forced them to pony-up). I decided to wait for the legal process to complete, and for me to get the feedback, before making any further decisions.</p>
<p>Once I&#8217;d read through the 12 pages of feedback, I wrote back with this:</p>
<blockquote><p>
Thanks, [name removed].</p>
<p>After my experience in the 2nd-round interviews, and reading the detailed feedback from the Google interviewers, I&#8217;ve realised I&#8217;m not suitable to work at Google right now.</p>
<p>The role-specific things were fine, but I did terribly in the 2nd-round. Reading the feedback, it seems you want a certain type of person, and that doesn&#8217;t seem like me.</p>
<p>Also, it&#8217;s not the company I thought it was. I want to work at companies which live and breathe an open culture, and that was part of my attraction to Google, but the reality is very different from the public image.</p>
<p>Thanks,<br />
Adam
</p></blockquote>
<p>(UPDATE: it&#8217;s been more than a month now. Just so you know &#8211; I never got a response. Maybe there&#8217;s now a great big &#8220;DO NOT HIRE&#8221; mark on my file ;))</p>
<p>I forwarded the detailed Google feedback to a handful friends and ex-colleagues, and it&#8217;s been food for some interesting discussions so far. One ex-Googler confirmed that I was rejected by not just one, but all four, of the second-round interviewers. A dubious honour, perhaps? :)</p>
<p>A couple of people have remarked that Google USA differs substantially on at least some of the key issues that came up.</p>
<p>One thing&#8217;s for sure, though: I would certainly not want to work for Google Europe right now. They and I seem to disagree on some fairly basic issues of work and people. Neither is right, nor wrong. But I &#8211; personally &#8211; just don&#8217;t want to work at a company that works like that. So &#8230; mutual rejection! :) I&#8217;m certainly not following-up with any other Google jobs.</p>
<p>Unfortunately, the whole experience left me quite shaken: I&#8217;d been using Google as a shining example of various recruitment and employment practices, at least some of which I now know to be untrue. Maybe Google used to act better, but they certainly don&#8217;t today &#8211; I know this first-hand. I&#8217;m hugely disappointed.</p>
<p>I apologise to anyone I&#8217;ve accidentally deceived over the years. I&#8217;m also wondering what other examples of humane and open companies I can use instead &#8211; I&#8217;m no longer confident in citing Google. I&#8217;ve seen a few come up on VentureHacks twitter feed/blog-posts (awesome resource that VH is).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/09/rejected-by-and-rejecting-google/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Judging Game Ideas: Galaxy Trader</title>
		<link>http://t-machine.org/index.php/2010/04/04/judging-game-ideas-galaxy-trader/</link>
		<comments>http://t-machine.org/index.php/2010/04/04/judging-game-ideas-galaxy-trader/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 17:20:15 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games design]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=847</guid>
		<description><![CDATA[(if you haven&#8217;t read the main post explaining this, read this first) Submission Author: (tony.almazan at gmail.com) Title: Galaxy Trader Type: Casual mutliplayer Facebook game Word count: 373 words Proposal Ever wanted to be filthy rich and travel the galaxy? Now here is your chance, you have been fortunate enough to have a rich uncle [...]]]></description>
			<content:encoded><![CDATA[<p>(if you haven&#8217;t read the main post explaining this, <a href="http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/" >read this first</a>)</p>
<h4>Submission</h4>
<ul>
<li>Author: (tony.almazan at gmail.com)
<li>Title: Galaxy Trader
<li>Type: Casual mutliplayer Facebook game
<li>Word count: 373 words
</ul>
<p><span id="more-847"></span></p>
<h4>Proposal</h4>
<blockquote><p>
Ever wanted to be filthy rich and travel the galaxy? Now here is your chance, you have been fortunate enough to have a rich uncle loan you some cash to fulfill your dreams.  With enough cash to buy your first space ship travel the galaxy finding the best deals and then turning them into profit.</p>
<p>Galaxy Trader is a commodities trading game. Your goal is to travel the galaxy and find the best prices for commodities and then resell them at a higher price.  There are planets to explore and danger to encounter.</p>
<p>The core mechanics of the game deals with finding the lowest prices and then searching for the highest bidder. Now prices are affected by other players. If another players visits the planet before you and sells then the price will drop according to how many units that player sold. If the player buys something at that planet the price of the commodities they purchased will rise accordingly. So player to player interactions occur implicitly and not directly.</p>
<p>There are also resources to gather in this game. Players can setup mining facilities and mine resources.  These resources are use to craft items to build new ships or upgrade their current one.  This is another source of revenue for the player.  They can sell their gathered resource or craft upgrades and put them on the galactic auction house.</p>
<p>This is a casual game where all actions are time based. To travel from one planet to another could take hours in real time.  The reason for making this time based is to keep the game casual.Players don&#8217;t have to sit on their machine to play this game. This is designed to be playable on a smart phone.</p>
<p>The game system will have an robust notification system using email. The player can make their moves and then wait for a email notification when the action has occurred.  In this email will be dynamic links the user can click to performs actions like sell or buy. This allows them to play the game without having them to log in.</p>
<p>This game will be developed as a Facebook game with micro transactions.  The only thing the players can buy is special fuel which reduces travel time.
</p></blockquote>
<h4>Adam&#8217;s ratings</h4>
<p>(based on typical criteria used when judging game competitions, with 1 being worst, 5 being best)</p>
<ul>
<li>Originality / Concept &#8211; 1
<li>Story / Theme &#8211; 2
<li>Gameplay / Game mechanics &#8211; 2
<li>Assets (concept art, pre-made music, links to a demo, etc) &#8211; 1
<li>Feasibility (if the comp requires actually MAKING the game) &#8211; 4
</ul>
<p>Outcome: It&#8217;s really likely you could make this game &#8211; it&#8217;s simple. The things that drag the scores down, especially the concept and gameplay mechanics, are the same things that you normally improve a heck of a lot just by trying to make the game, and realising that they suck (and why!).</p>
<p>So &#8230; if this were for a &#8220;make the game then be judged&#8221; comp, I think it would have a high chance to get through.</p>
<p>For a theoretical comp, very unlikely. It&#8217;s the most simplistic parts of Elite / Eve Online / [insert your favourite single-page-web-based game from 1995-2005 here], with nothing new or novel.</p>
<h4>Adam&#8217;s comments</h4>
<p>This is, essentially, the base from which to design an actual game. It&#8217;s more of a genre-description than a game-description (i.e. it&#8217;s too generic and vague in all areas).</p>
<p>&#8220;Closed-loop economy MMO&#8221; &#8211; words to strike terror into the heart of any designer who&#8217;s tried shipping an MMO. This *could* work, if you did it in a very careful way. In general, this doesn&#8217;t work, it&#8217;s not fun, and it won&#8217;t achieve any of the things you hoped it would. In general &#8230; you&#8217;re much better off making a carefully-tweaked fake (like with almost all game design!), using source/sinks.</p>
<p>The core part of the game &#8211; fluctuating prices &#8211; is de-facto controlled by an invisible random number generator (the combined actions of all other players &#8211; whoever they are), and you have no info on this. That makes it into a slot-machine game, rather than a trading game, and makes it very unlikely to be &#8220;fun&#8221;.</p>
<p>If you want to keep it as a trading game, you need a way for the current player&#8217;s actions to affect the prices they&#8217;ll receive, either by giving them a sneak peak, or a guaranteed min/max range, or fixed discount/penalty, etc &#8211; something to make this aspect a game in itself, not a pure dice roll.</p>
<p>If there&#8217;s any player/player competition, then real-time travel, as with VGA Planets and all the hundreds of clones since, seems to DISCOURAGE casual play. It&#8217;s not clear that this is anything but a single player game (with a very unfair random number generator, as noted above). If it&#8217;s MP, then being present at the exact time your ships arrive, so that you can quickly send off another order, typically increases your private game speed by 2x-3x compared to players who just play normally. That&#8217;s nearly always an immense advantage.</p>
<p>The quick-response-without-logging-in is a nice idea, but almost certainly unnecessary &#8211; most facebook users are logged in all the time anyway, or have login id stored in browser. Just give them an in-game link via email and have done with it :).</p>
<p>Final thought: if this were in a &#8220;make it&#8221; competition, I&#8217;d be looking forward to the final game, hoping that you&#8217;d quickly invent lots of cool stuff on top of the base genre. Unlike make game ideas, it&#8217;s very easy to extend once you&#8217;ve got the basic version working.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/04/judging-game-ideas-galaxy-trader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assasin&#8217;s Creed 2: Understatement of the Century</title>
		<link>http://t-machine.org/index.php/2010/04/04/assasins-creed-2-understatement-of-the-century/</link>
		<comments>http://t-machine.org/index.php/2010/04/04/assasins-creed-2-understatement-of-the-century/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 14:37:47 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[games design]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=845</guid>
		<description><![CDATA[From the IGN walkthrough: &#8220;If you have trouble grabbing the beam, just keep trying—we promise it works, but lots of readers have told us it&#8217;s not always easy.&#8221; I&#8217;m a pretty good AC player, but after 10 minutes of trying to do that one standing jump, I gave up and stopped playing for a long [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://uk.guides.ign.com/guides/14302493/page_31.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://uk.guides.ign.com/guides/14302493/page_31.html');">From the IGN walkthrough</a>:</p>
<blockquote><p>
&#8220;If you have trouble grabbing the beam, just keep trying—we promise it works, but lots of readers have told us it&#8217;s not always easy.&#8221;
</p></blockquote>
<p><img src="http://guidesmedia.ign.com/guides/14302493/images/assacreed2_b07_055.jpg"/></p>
<p>I&#8217;m a pretty good AC player, but after 10 minutes of trying to do that one standing jump, I gave up and stopped playing for a long time in frustration.</p>
<p>When game developers talk about &#8220;games should be so easy that all players can complete them; no-one should ever have to give up / fail to complete a game because something is too hard&#8221;, I usually disagree.</p>
<p>But in this instance, where the game is extremely, excessively difficult on something that the designer obviously intended to be extremely simple &#8211; and where the player has spent hours being taught that this will be easy &#8211; you have something different going on. It&#8217;s a failure of the control scheme; in fact, it&#8217;s a bug.</p>
<p>It&#8217;s a side-effect of the heuristics that AC uses to decide &#8220;what the player is trying to do&#8221; &#8211; heuristics that are far from perfect, while being very good.</p>
<p>In the first game, it took me a long time to get past the intro &#8211; no, really &#8211; because if you *try* to jump over gaps, then you fail. The heuristics were so heavily weighted towards &#8220;allowing&#8221; you to jump off buildings that running over a small gap became very difficult &#8211; until you learnt that the character &#8220;automatically&#8221; jumps small distances.</p>
<p>On the whole, I&#8217;m very impressed by the AC2 heuristics &#8211; compare it to Mirror&#8217;s Edge (a beautiful game, but feels a lot less fluid). I find them a bit too simplistic &#8211; I would love another 25% or so of user-control, and another 50% of precision on directional control &#8211; but (as ME shows) they got closer to perfect than any other game so far.</p>
<p>BUT &#8230; what do you do about a bug like this, one severe enough to make me stop playing the game entirely?</p>
<p>They had a huge QA team already (this is Ubisoft, after all), and such a vast amount of content in this game (multiple entire cities, modelled in fine detail), that there&#8217;s no way they could be sure to catch this bug.</p>
<p>Or is there?</p>
<p>This is the raison d&#8217;etre for a whole segment of in-game analytics / metrics: data-mining to discover undiscovered bugs.</p>
<p>Good metrics for game designers are VERY hard to describe, and IME the vast majority of the industry doesn&#8217;t know how to carefully hand-pick the few numbers they really need out of the millions of stats availalbe. Here&#8217;s a good example of how to pick well.</p>
<p>If the game reported</p>
<blockquote><p>
&#8220;the quest-point at which people stopped playing&#8221;
</p></blockquote>
<p>&#8230;then you *might* discover this bug. But it&#8217;s too coarse-grained.</p>
<p>If the game reported either/both:</p>
<blockquote><p>
&#8220;the segment on the map where people stopped playing&#8221;<br />
&#8220;the segment on the map where people spent most-time during a mission&#8221;
</p></blockquote>
<p>&#8230;then you&#8217;d quickly and easily discover this bug. By &#8220;segment&#8221; I mean, essentially, a small patch of polygons approximately 6&#8242;x6&#8242;. This is relatively easy to measure algorithmically using greedy-polygon grabbing and hashing &#8211; although it would take a little care to make sure the measurement of the value didn&#8217;t take much CPU time (it could easily be pre-compiled for any given map, of course).</p>
<p>I&#8217;m not 100% of the &#8220;stopped playing&#8221; part &#8211; this is a console game, and while that info would be useful, it would mostly stop evenly distributed over quest-end points. Where it was more / less likely, it would be obvious just from knowledge of the story. ALTHOUGH: still well worth doing *in case* there were anomalies there &#8211; that should set off alarm bells.</p>
<p>However, the &#8220;spent most time during a mission&#8221; is more cut-and-dried.</p>
<p>This probe gives you a set of local maxima. It&#8217;s categoriesed by mission, making it one level finer than doing it over the entire world-map (which is too much, too uncategorised info), and it&#8217;s also coarse enough to correlate closely with user-behaviour (it merges results mission-by-mission; recurring bugs are very likely to show up by people doing the same mission and getting stuck at the same point).</p>
<p>The mission-based merge of results also has a nice side-effect: it tends to iron-out any anomalous results due to people wandering around the open-world game.</p>
<p>So. With a little bit of probing, using probes that you could/should have invented at the start of development (i.e. without knowledge of exact bugs that would occur) this bug could be ironed out. The three remaining questions are:</p>
<ol>
<li>does Ubisoft do this level of automated-bug-detection,
<li>do their designers bother to look at the anomaly-date,
<li>and if so &#8230; why hasn&#8217;t the game been patched?
</ol>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/04/assasins-creed-2-understatement-of-the-century/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Thunderbird 3: fixing the fonts</title>
		<link>http://t-machine.org/index.php/2010/04/04/thunderbird-3-fixing-the-fonts/</link>
		<comments>http://t-machine.org/index.php/2010/04/04/thunderbird-3-fixing-the-fonts/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 11:39:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=841</guid>
		<description><![CDATA[The font-settings in ThunderBird are terrible: the default settings are ugly, and the GUI is too broken to let you change them. Fortunately, if you hand-edit the config files, you *can* change the fonts, as much as you like. Sadly, the options etc are undocumented, and easy to get wrong. Incidentally, not only does TB [...]]]></description>
			<content:encoded><![CDATA[<p>The font-settings in ThunderBird are terrible: the default settings are ugly, and the GUI is too broken to let you change them. Fortunately, if you hand-edit the config files, you *can* change the fonts, as much as you like.</p>
<p>Sadly, the options etc are undocumented, and easy to get wrong. Incidentally, not only does TB have *no* help or documentation (why not?), if you go to the online &#8220;knowledge base&#8221; and search for something fairly obvious like &#8220;fonts&#8221;, you get nothing &#8211; not even the usual 3-years-out-of-date result that&#8217;s normal for this app:</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-131.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-131.png" alt="Picture 131" title="Picture 131" width="533" height="259" class="aligncenter size-full wp-image-842" /></a></p>
<p>For future reference, here&#8217;s how I made my fonts go from &#8220;ugly&#8221; to &#8220;delightful&#8221;.</p>
<h4>Changing fonts in Thunderbird 3 &#8211; theory</h4>
<p>For reference, in case TB fixes their fonts in future, here&#8217;s what you&#8217;re supposed to do, but doesn&#8217;t quite work yet:</p>
<ol>
<li>Go to settings
<li>Go to Display tab
<li>Click on the Advanced button in the Fonts section
<li>Configure font options, per-language
</ol>
<p>In reality, here&#8217;s what happens</p>
<ol>
<li>&#8220;Western&#8221; languages (Europe, USA, etc) in TB often do not use the &#8220;Western&#8221; font settings
<li>&#8230;rather, they use the &#8220;unicode&#8221; font settings
<li>&#8230;which aren&#8217;t available in the TB GUI
<li>&#8230;and they don&#8217;t always use them as expected
</ol>
<h4>Changing fonts in Thunderbird 3 &#8211; practice</h4>
<p>There are a couple of things that DO work, and which you need to set anyway, so:</p>
<ol>
<li>go to Setttings -> Display tab -> font-settings -> &#8220;advanced&#8221; button
<li>Choose Serif or Sans-Serif (bizarrely, this is a GLOBAL setting, even though the GUI claims it is a LOCAL setting) &#8211; this will affect all other font choices
<li>*try* setting the font-sizes, I think it sets global defaults (but &#8230; looking through the config file, those &#8220;defaults&#8221; appear to be over-ridden in most places &#8230; by default)
</ol>
<p>NB: TB is &#8230; confused &#8230; when it comes to font choice. The obvious way to make a desktop app is to ask the user &#8220;which font do you want to use in place X?&#8221; (where X = &#8220;email body&#8221;, &#8220;compose window&#8221;, &#8220;menu items&#8221;, &#8220;dialogs&#8221;, etc). Windows has been doing this for more than 15 years. TB instead arbitrarily declares different parts of the app as &#8220;Proportional&#8221; or &#8220;Monospaced&#8221; or some combination of the two. Even if you tell it not to use monospaced in certain places, it mostly ignores you. It doesn&#8217;t tell you which is which, and it&#8217;s not documented, you have to work it out by trial and error.</p>
<p>Edit the master config file:</p>
<ol>
<li>go to Setttings -> Advanced tab -> General -> &#8220;Config Editor&#8221; button
<ul>
<li>NB: another bug in the GUI &#8211; that button appears to be some local setting; it&#8217;s not, its the most important part of all the &#8220;Advanced tab&#8221; settings; I&#8217;ve no idea why they hide it like this</ul>
<li>use a filter of either &#8220;.serif&#8221; (sic) or &#8220;sans-serif&#8221; depending on which fonts you want your TB to use
<ul>
<li> (I think you&#8217;re nuts if you use anything but sans for email, but it&#8217;s a personal choice)</ul>
<li>The two you need to set for &#8220;email bodies&#8221; are:
<ul>
<li>font.name.sans-serif.x-unicode</p>
<li>font.name.sans-serif.x-western
</ul>
<li>The two you need to set for &#8220;GUI dialogs&#8221; are:
<ul>
<li>font.name-list.sans-serif.x-unicode</p>
<li>font.name-list.sans-serif.x-western
</ul>
<li>The *one* you need to set (but could also set in the main GUI) is:
<ul>
<li>font.default.x-western</ul>
</ol>
<p>(I&#8217;m still using TB 3; I need a desktop client at the moment, and I find myself still using it. TB 3.0.4 seems to run well on OS X. It&#8217;s fast enough and with little enough RAM that it&#8217;s easy to leave running and forget about it; earlier versions of TB on OS X would kill your Mac, and had to be force-quit frequently. With this version, I keep forgetting I&#8217;ve got it running, until it sends out a Growl&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/04/04/thunderbird-3-fixing-the-fonts/feed/</wfw:commentRss>
		<slash:comments>3</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 [...]]]></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>Thunderbird (Firefox email): REALLY doesn’t work, catastrophically</title>
		<link>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-really-doesn%e2%80%99t-work-catastrophically/</link>
		<comments>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-really-doesn%e2%80%99t-work-catastrophically/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:59:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=824</guid>
		<description><![CDATA[When you run Thunderbird, and connect to gmail, it downloads your inbox. Then it does nothing, for an hour or so. When you run Thunderbird a second or third time, OR when you first synch a single IMAP folder (I don&#8217;t know which of these two events triggered it) it waits a minute, and then [...]]]></description>
			<content:encoded><![CDATA[<p>When you run Thunderbird, and connect to gmail, it downloads your inbox.</p>
<p>Then it does nothing, for an hour or so.</p>
<p>When you run Thunderbird a second or third time, OR when you first synch a single IMAP folder (I don&#8217;t know which of these two events triggered it) it waits a minute, and then spontaneously downloads your entire GMAIL account. Since Google makes it very hard to delete emails, this probably amounts to a huge amount of data.</p>
<p>It also means downloading two (or more) copies of everything that has a label.</p>
<p>If you tell it NOT to download folders, it ignores you and downloads them anyway.</p>
<p>On my laptop, I don&#8217;t have several gigabytes of spare storage to carry every piece of random crap ever sent to me on Gmail. I cannot run Thunderbird. I hereby giveup! I wish they&#8217;d dump the &#8220;clever&#8221; stuff they don&#8217;t seem to be able to make work, and just provide a simple, straightforward, &#8220;email that does what you tell it to&#8221;, and *then* add the rest by plugins&#8230;</p>
<p>If you *don&#8217;t* use Gmail, TB is looking like a viable option right now (although still lacking features that its predecessor &#8211; Mozilla Mail &#8211; already had).</p>
<p>(I tried every option on the folder &#8211; they all said the folder would NOT be synchronized, even as the activity manager was saying &#8220;now downloading 1 of 15,000&#8243; (ish))</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-really-doesn%e2%80%99t-work-catastrophically/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thunderbird (Firefox email): still doesn&#8217;t work</title>
		<link>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-still-doesnt-work/</link>
		<comments>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-still-doesnt-work/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:39:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=821</guid>
		<description><![CDATA[Thunderbird just released an update a couple of weeks ago, so I thought I&#8217;d try it out. Day 1: Thunderbird refuses to check email. See this screenshot, note the timestamps, while I&#8217;m sitting here waiting for an email that should ahve arrived a few minutes ago, desperately pressing the &#8220;get mail&#8221; button, and thunderbird refuses [...]]]></description>
			<content:encoded><![CDATA[<p>Thunderbird just released an update a couple of weeks ago, so I thought I&#8217;d try it out.</p>
<p>Day 1: Thunderbird refuses to check email. See this screenshot, note the timestamps, while I&#8217;m sitting here waiting for an email that should ahve arrived a few minutes ago, desperately pressing the &#8220;get mail&#8221; button, and thunderbird refuses to do anything at all:</p>
<p><a href="https://t-machine.org/wp-content/uploads/Picture-94.png" ><img src="https://t-machine.org/wp-content/uploads/Picture-94.png" alt="Picture 94" title="Picture 94" width="298" height="312" class="aligncenter size-full wp-image-822" /></a></p>
<p>I&#8217;m not sure I&#8217;ll bother with a day 2; an email client that cannot fetch email is no email client at all.</p>
<p>(although, that said, I&#8217;ve noticed a fascinating bug with Google&#8217;s iPhone contender (the Nexus One) &#8211; it cannot send email, even though it displays a message saying &#8220;Sending email&#8230;&#8221;, unless you switch the phone into a special &#8220;synching&#8221; mode, or manually tell it to Refresh the inbox; until you do that, the &#8220;Sending email&#8230;&#8221; message displays forever, not actually doing anything. Basic testing that Google apparently forgot to do, sigh)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/25/thunderbird-firefox-email-still-doesnt-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“Developers outsource publishing to publishers”</title>
		<link>http://t-machine.org/index.php/2010/03/24/%e2%80%9cdevelopers-outsource-publishing-to-publishers%e2%80%9d/</link>
		<comments>http://t-machine.org/index.php/2010/03/24/%e2%80%9cdevelopers-outsource-publishing-to-publishers%e2%80%9d/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 15:33:47 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=818</guid>
		<description><![CDATA[Nicholas Lovell suggests it here: Think about it. It’s your baby, your dream, your idea. My own way of describing this is: Who owns the IP? (dev, initially) Who invented the IP? (dev) Who &#8211; therefore &#8211; understands *why* the IP exists, *how* it works, *why* it&#8217;s &#8220;good&#8221;? (dev) Who cares most about the IP? [...]]]></description>
			<content:encoded><![CDATA[<p>Nicholas Lovell suggests it <a href="http://www.gamesbrief.com/2010/03/time-to-change-our-thinking-developers-outsource-to-publishers-not-the-other-way-round/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesbrief.com/2010/03/time-to-change-our-thinking-developers-outsource-to-publishers-not-the-other-way-round/');">here</a>:</p>
<blockquote><p>
Think about it. It’s your baby, your dream, your idea.
</p></blockquote>
<p>My own way of describing this is:</p>
<ul>
<li>Who owns the IP? (dev, initially)
<li>Who invented the IP? (dev)
<li>Who &#8211; therefore &#8211; understands *why* the IP exists, *how* it works, *why* it&#8217;s &#8220;good&#8221;? (dev)
<li>Who cares most about the IP? (dev)
<li>Who would you trust most to pour their heart into making the most of the IP? (?)
<li>&#8230;and do so without destroying the bits that made it good and unique in the first place? (?)
</ul>
<p>Years of publishing have made people come to assume the answer to the last questions is &#8220;the publisher&#8221; without even thinking about it. It took me very little time working in actual publishers to see first-hand how wrong that is as an answer &#8211; in most publishers, most of the staff don&#8217;t even play games. At all. They couldn&#8217;t care less about the IP&#8217;s they are supposedly shepherding and exploiting.</p>
<p>When you speak to people who know nothing about the games industry, they invariably answer &#8220;the developer&#8221;, as this is the natural answer: the person who invented and nurtured the answer is bound to care more about it, and work harder for it, than anyone else.</p>
<p>These days, now that I believe in hiring on enthusiasm instead of competence, that&#8217;s also the answer that will tend to maximize &#8220;success&#8221; / revenue.</p>
<p>Valete, Publishing industry!</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/24/%e2%80%9cdevelopers-outsource-publishing-to-publishers%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My first SXSWi: the &#8220;low-brow&#8221; conference?</title>
		<link>http://t-machine.org/index.php/2010/03/16/my-first-sxswi-the-low-brow-conference/</link>
		<comments>http://t-machine.org/index.php/2010/03/16/my-first-sxswi-the-low-brow-conference/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 19:30:26 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=814</guid>
		<description><![CDATA[This past few days, as people have asked me &#8220;how&#8217;s the conference going for you?&#8221;, my recurring response has been: I&#8217;m ambivalent. This is my first SXSWi; I go to 3-5 tech and media conferences a year, speak at 1-3 of them. The &#8220;party&#8221; atmosphere was fun on the first day of events, and unusual, [...]]]></description>
			<content:encoded><![CDATA[<p>This past few days, as people have asked me &#8220;how&#8217;s the conference going for you?&#8221;, my recurring response has been: <a href="http://www.google.com/search?q=define%3A+ambivalent" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.google.com/search?q=define%3A+ambivalent');">I&#8217;m ambivalent</a>.</p>
<p>This is my first SXSWi; I go to 3-5 tech and media conferences a year, speak at 1-3 of them. The &#8220;party&#8221; atmosphere was fun on the first day of events, and unusual, but the evening parties were horrible &#8211; massive droves of uninterested and uncaring people crowding-out the much smaller number of people who had a genuine interest in being here and talking about the things they love.</p>
<p>I saw <a href="http://jolieodell.wordpress.com/2010/03/16/why-sxsw-sucks/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://jolieodell.wordpress.com/2010/03/16/why-sxsw-sucks/');">this post from a veteran lamenting how the conference is much larger but much worse this year</a>.</p>
<p>I thought it might be a product of size, but I&#8217;ve been to big conferences which still have a really positive atmosphere.</p>
<p>Having been to other Austin conferences, I think it&#8217;s an issue of image &#8211; how people coming to Austin for the conference already perceive Austin. SXSWi feels like &#8220;6th street carried into the convention center&#8221;.</p>
<p>Other, smaller, Austin conferences manage to co-exist with the presence of 6th street without inter-mingling with it. If you want to go down 6th while you&#8217;re there, you can &#8211; but the conference itself exists apart from it. It feels like SXSWi has embraced 6th and forced us all to be part of that, no choice allowed.</p>
<p>If that&#8217;s so &#8230; I&#8217;m not sure what the organizers can do to &#8220;fix&#8221; it, short of aggressively controlling the marketing for next year, changing the image and the market/audience that they target. With an (alleged) 40% growth in audience attendance &#8230; would they want to change it? A lot of people who used to like the &#8220;small&#8221; SXSWi, and dislike the &#8220;large&#8221; SXSWi maybe just don&#8217;t like large conferences anyway &#8230; maybe there *is* no problem.</p>
<p>(although I don&#8217;t think so &#8230; my impression is that a lot of people came this year because of the same reputation that SXSWi is rapidly throwing away: high quality people, cutting-edge breaking technology / startups)</p>
<p>Personally, in an ideal world? I&#8217;d like to see SXSWi 2011 take place in San Francisco. (bearing in mind that I have to fly from Europe, so this isn&#8217;t an issue of convenience). SF is big enough to accomodate the influx of people (hotel prices in SF don&#8217;t go up by a factor of 3! Unlike Austin right now :( ), and allows for a lot of partying, without the lowest-common-denominator mentality.</p>
<p>Just IMHO&#8230;</p>
<h4>EDIT: When I said &#8220;ambivalent&#8221;, I meant it&#8230;</h4>
<p>&#8230;but, being exhausted by that point, I only covered half what I was thinking. The other half was this: there was some great content, I sat in some very interesting talks with good speakers. The conference itself seemed very well organized, coping admirably with the vast number of registrants (they dealt with badge pickup, for instance, extremely well considering the numbers involved).</p>
<p>I know that some people experienced terrible content &#8211; for instance, the complaints about the Twitter interview &#8211; but I got lucky and skipped all of that. These days, I can usually make a good guess at the quality of a session by the title and the abstract. Sessions that had little real purpose can usually be filtered out this way, whereas sessions with a strong, genuine, theme can be cherry-picked.</p>
<p>So. A lot of the conference I found very enjoyable. But Jolie&#8217;s comments struck a chord with me &#8211; I was really surprised by the poor social elements of the conf. As noted above, my guess is that this is more to do with the people who attend than it is with the conference itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/16/my-first-sxswi-the-low-brow-conference/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Generally speaking, when you mug someone&#8230;</title>
		<link>http://t-machine.org/index.php/2010/03/08/generally-speaking-when-you-mug-someone/</link>
		<comments>http://t-machine.org/index.php/2010/03/08/generally-speaking-when-you-mug-someone/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 03:19:15 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=812</guid>
		<description><![CDATA[&#8230;it&#8217;s not a good idea to mug someone who practices Kung Fu. Fortunately, in this case, I&#8217;d only slept 3 hours in the previous 40, and it took me long enough to realise what was happening &#8211; and I was sufficiently in-attentive &#8211; that I didn&#8217;t hit back in any serious way. But if you [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;it&#8217;s not a good idea to mug someone who practices Kung Fu.</p>
<p>Fortunately, in this case, I&#8217;d only slept 3 hours in the previous 40, and it took me long enough to realise what was happening &#8211; and I was sufficiently in-attentive &#8211; that I didn&#8217;t hit back in any serious way.</p>
<p>But if you see me with a black eye and a swollen cheek at GDC, that&#8217;s why. Because I was still apologizing after the guy had hit me in the face the third time, and only when he tried to take my bags did I start hitting back. I&#8217;ve heard about it before &#8211; the &#8220;Gentleman martial artist&#8221; problem &#8211; where you&#8217;re too polite to respond when someone hits you in a manner that&#8217;s fairly weak compared to what you&#8217;re used to, and you find it hard to take the attacker seriously (although it hurts enough afterwards).</p>
<p>Guess I&#8217;d better start going to more sparring sessions. Because &#8211; frankly &#8211; letting yourself get so utterly surprised is a total fail in a martial sense. If the leader had known what he was doing (and I could tell him what he should have done), I&#8217;d still be unconscious right now. There&#8217;s been a few muggings recently in Brighton &#8211; Nik got <a href="http://nikf.org/post/349289690/a-quick-word-of-thanks" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://nikf.org/post/349289690/a-quick-word-of-thanks');">a fractured cheek</a> for refusing to give up his iPhone (good on you, Nik) &#8211; and I tried to catch them, but they ran faster than I with my suitcase and laptop heading off to San Francisco :(.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/08/generally-speaking-when-you-mug-someone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>GDC 2010 about to start&#8230;I&#8217;m there for 3 days</title>
		<link>http://t-machine.org/index.php/2010/03/05/gdc-2010-about-to-start-im-there-for-3-days/</link>
		<comments>http://t-machine.org/index.php/2010/03/05/gdc-2010-about-to-start-im-there-for-3-days/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 20:04:11 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=810</guid>
		<description><![CDATA[I&#8217;ll be in SF from Monday afternoon to Thursday evening (leaving SFO at midnight on thursday night). My iPhone is unlocked, so I&#8217;m hoping to find a cheap SIM to shove in, but otherwise it&#8217;ll be email-only. The 2010 list of GDC parties is looking pretty full (and there&#8217;s a bunch after I leave) &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be in SF from Monday afternoon to Thursday evening (leaving SFO at midnight on thursday night).</p>
<p>My iPhone is unlocked, so I&#8217;m hoping to find a cheap SIM to shove in, but otherwise it&#8217;ll be email-only.</p>
<p>The 2010 list of GDC parties is looking pretty full (and there&#8217;s a bunch after I leave) &#8211; if you should be on the calendar, email me ASAP.</p>
<p>ALSO &#8230; Sulka and I made a neat little iPhone app that tracks all the parties for you, and tells you where/when they are. We&#8217;re just waiting for Apple to approve it, hopefully it&#8217;ll be live on Monday. It&#8217;s San-Francisco specific right now, but if it works, we&#8217;ll expand it to other cities in future.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/03/05/gdc-2010-about-to-start-im-there-for-3-days/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iPhone bugs to make you weep: OS 3.1.3</title>
		<link>http://t-machine.org/index.php/2010/02/08/iphone-bugs-to-make-you-weep-os-3-1-3/</link>
		<comments>http://t-machine.org/index.php/2010/02/08/iphone-bugs-to-make-you-weep-os-3-1-3/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 12:57:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=805</guid>
		<description><![CDATA[If you are an iPhone developer &#8211; or if you know any iPhone developers &#8211; don&#8217;t upgrade your device to 3.1.3, and more importantly: don&#8217;t upgrade to the latest Xcode. (this came out last week) Among the regression bugs (i.e. stuff that they fixed in the previous version, but because theire process sucks, they&#8217;ve broken [...]]]></description>
			<content:encoded><![CDATA[<p>If you are an iPhone developer &#8211; or if you know any iPhone developers &#8211; don&#8217;t upgrade your device to 3.1.3, and more importantly: don&#8217;t upgrade to the latest Xcode.</p>
<p>(this came out last week)</p>
<p>Among the regression bugs (i.e. stuff that they fixed in the previous version, but because theire process sucks, they&#8217;ve broken again), is this really annoying one:</p>
<p>    When choosing a signing certificate, you can no longer see which profile coresponds to which app.</p>
<p>(if you only have a single iPhone app, that&#8217;s almost OK &#8211; although as soon as you get expired cert problems, it will cause you hell, since you&#8217;ll have no way of seeing which you&#8217;re using)</p>
<p>For most developers &#8230; with dozens of provisioning profiles &#8230; this makes life extremely difficult at app deployment time. Early versions of Xcode were infamous for how buggy and difficult this was. In the last version of Xcode, Apple finally did something sensible, and displayed the full info. You could read the text, and know which was which. Now &#8230; you have to manually type out 8-character random strings, and open up the profiles, and find the ones that correspond to that same random string. Ugh.</p>
<p>Here&#8217;s hoping that 3.2.1 isn&#8217;t long in coming, and fixing this stupidity&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/02/08/iphone-bugs-to-make-you-weep-os-3-1-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google and the Games industry</title>
		<link>http://t-machine.org/index.php/2010/01/26/google-and-the-games-industry/</link>
		<comments>http://t-machine.org/index.php/2010/01/26/google-and-the-games-industry/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 21:45:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/index.php/2010/01/26/google-and-the-games-industry/</guid>
		<description><![CDATA[Google is giving away free Nexus One handsets to mobile developers attending the GDC this year Google is not a games company; Google has never shown any interest in the $75 billion (roughly) games industry. Suprising? Not really &#8230; $75 billion *for the entire industry* is smaller than some individual companies in other sectors (e.g. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gdconf.com/androidphone.html?cid=GDC10_GOOGLEX1" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gdconf.com/androidphone.html?cid=GDC10_GOOGLEX1');">Google is giving away free Nexus One handsets to mobile developers attending the GDC this year</a></p>
<p>Google is not a games company; Google has never shown any interest in the $75 billion (roughly) games industry. Suprising? Not really &#8230; $75 billion *for the entire industry* is smaller than some individual companies in other sectors (e.g. off the top of my head, IBM makes more revenue than that *every year*, e.g. VISA has a market cap of $70 billion, etc).</p>
<p>But &#8230; maybe iPhone has changed all that.</p>
<p>Games on iPhone weren&#8217;t initially the big fuss, but as the first year of the App Store came to a completion, it was clear that the million-selling apps were set to all be games. This was an excellent handheld gaming console.</p>
<p>Perceptions shifted; giants like EA who&#8217;d resolved to ignore iPhone (typically after making expensive failed investments in the Wii) did an about-turn and came onto the platform in force. Mainstream and tech-industry press came to see games as really the be-all-and-end-all of 3rd party apps on the phone &#8211; often ceasing to talk much about other apps, except as novelties.</p>
<h4>2010 and the annual Game Developers Conference</h4>
<p>GDC is almost upon us. This is the main event in the games-industry calendar (forget E3; this is the less glitzy, less marketing, more developers, higher value, more real one). And lo and behold in my inbox today:</p>
<blockquote><p>
# Register by the Early Bird Deadline of February 4th, 2010.<br />
# Register to attend the GDC Mobile/Handheld Summit, the iPhone Summit, or the Independent Games Summit<br />
&#8230;<br />
# receive a device from Google and GDC during the registration process.
</p></blockquote>
<p>&#8230; the &#8220;device&#8221; is explicitly either a Google Nexus-One, or a Motorola Droid (randomly chosen).</p>
<p>[EDIT: from Simon Carless's comments below, I'm completely wrong on the GDC changes last year. This post isn't meant to be about GDC, it's meant to be about Google, so I'll follow-up in the comments - but don't take the next two paragraphs as correct, they're probably wrong.]</p>
<p>The marketing materials for the GDC this year have been unusually big on the discounts, with not just one but two public extensions of the discount deadlines (this is unprecedented as far as I can remember). Clearly, the recession (and the mass redundancies at games companies) has hit the GDC organizers quite hard.</p>
<p>(last year&#8217;s GDC had perhaps 40% fewer attendees than the year before; it felt like the quiet conference it used to be, rather than the massive conference it had become. I&#8217;m guessing the organizers are working hard to reverse that, even in the face of the economic situation)</p>
<p>&#8230;and yet we see a $550 phone being &#8220;given away free, guaranteed&#8221; to every developer that buys a $550 conference ticket. Wow. That&#8217;s a pretty thick, long, solid line in the sand being drawn by Google&#8230;</p>
<h4>PS</h4>
<p>Bizarrely &#8211; and IMHO a very very stupid move &#8211; speakers are &#8220;not allowed&#8221; to take advantage of this.</p>
<p>So, let me get this straight:</p>
<ol>
<li>You decide to target the international games industry, at it&#8217;s biggest annual conference
<li>You give away free, expensive, top of the range Android phones to *every* developer, but only the ones specialising in Mobile
<li>&#8230;but you ban the 500-odd people who are the pre-eminent experts and the thought leaders in this industry from participating?
</ol>
<p>It could be down to the potential for abuse &#8211; speakers can choose to declare themselves &#8220;mobile&#8221; developers while still attending all the other summits due to a quirk of how the GDC is organized.</p>
<p>But my guess is that there&#8217;s something annoying here about state laws and income tax or competitions and lotteries (governments can be over-protective of their monopoly on gambling income), but it strikes me as a major fail. Microsoft managed to give away $1000 HDTV&#8217;s at a previous conference independently of paid/unpaid status (IIRC), so I&#8217;m sure Google could have found a way.</p>
<p>(just to be clear: for the first time in about 4 years, I&#8217;m actually *not* speaking at GDC, so I&#8217;m not affected by this one way or the other. I&#8217;m just really suprised at the exclusion)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/26/google-and-the-games-industry/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
