<?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>Mon, 08 Mar 2010 03:19:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>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 see me [...]]]></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; if you [...]]]></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 again), is [...]]]></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. off [...]]]></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>
		<item>
		<title>Once again, I&#8217;m forced to pirate digital content&#8230;</title>
		<link>http://t-machine.org/index.php/2010/01/26/once-again-im-forced-to-pirate-digital-content/</link>
		<comments>http://t-machine.org/index.php/2010/01/26/once-again-im-forced-to-pirate-digital-content/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:47:56 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bitching]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=799</guid>
		<description><![CDATA[(&#8230;or else forgo it)
(EDIT: To be clear: Piracy isn&#8217;t theft, but it certainly is illegal. Please do not misconstrue: I do not condone piracy; this post is a lament at the extent to which the retail industries encourage or coerce consumers to pirate content. I am still looking for a legal way to buy the [...]]]></description>
			<content:encoded><![CDATA[<p>(&#8230;or else forgo it)</p>
<p>(EDIT: To be clear: Piracy isn&#8217;t theft, but it certainly is illegal. Please do not misconstrue: I do not condone piracy; this post is a lament at the extent to which the retail industries encourage or coerce consumers to pirate content. I am still looking for a legal way to buy the digital data I want, and in the meantime, I have Spotify&#8230;)</p>
<p>I want a single that came out 5 years ago. It&#8217;s available to purchase on iTunes &#8230;. in the USA.</p>
<p>I&#8217;m &#8220;not allowed&#8221; to give Apple money to buy that track, because my account was originally created when I was sitting in the UK. IIRC, even when I&#8217;m physically in the USA next month, I will still &#8220;not be allowed&#8221; to give them money for this (but &#8230; who knows? Apple doesn&#8217;t bother explaining this stuff to the normal consumer)</p>
<p>Switch to UK iTunes &#8220;mode&#8221;, and &#8230; Apple does not sell that track in the UK.</p>
<p>So, once again, the music industry would prefer that I go and rip the MP3 than that I *give them money*.</p>
<h4>Do they care? Do they even know?</h4>
<p>Of course not.</p>
<p>They will *never know* that I did this. They have no mechanism to allow me to *tell* them that I attempted a purchase &#8211; and was rebuffed. This would cost them nothing, but &#8230; they can&#8217;t be bothered.</p>
<p>Equally, when I rip the MP3, they&#8217;ll never know that I did. It has literally zero effect on their business. Because piracy is not theft: digital data is not physical property, and copying does not affect the original in any way.</p>
<p>Sigh. One day, the digital industries will grow up. I hope I&#8217;m still alive to see it.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/26/once-again-im-forced-to-pirate-digital-content/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PANEL: &#8220;Taking Video Games Seriously&#8221;</title>
		<link>http://t-machine.org/index.php/2010/01/26/panel-taking-video-games-seriously/</link>
		<comments>http://t-machine.org/index.php/2010/01/26/panel-taking-video-games-seriously/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 17:35:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=796</guid>
		<description><![CDATA[Last night, I went to the Houses of Parliament for the first time, for a panel session on Video Games, organized by one of our MP&#8217;s, Tom Watson. Walking through the enormous medieval Westminster Hall (stone floor, stone walls, massive oak timbered ceiling) en route was a bit surreal, and thankfully the event was small [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, I went to the Houses of Parliament for the first time, for a panel session on Video Games, organized by one of our MP&#8217;s, Tom Watson. Walking through the enormous medieval <a href="http://photos.igougo.com/images/p377963-London-Westminster_Hall.jpg" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://photos.igougo.com/images/p377963-London-Westminster_Hall.jpg');">Westminster Hall</a> (stone floor, stone walls, massive oak timbered ceiling) en route was a bit surreal, and thankfully the event was small and cosy by comparison.</p>
<p>I didn&#8217;t intend to live-blog this. But then I realised I probably ought to, especially since I was too exhausted (work, recovering from illness, etc) to ask sensible questions at the time.</p>
<p>Here&#8217;s a semi-live-semi-transcript. As per usual, everything is re-interpreted by my hearing; errors and omissions are my own fault; etc. It&#8217;s hard keeping up with freeform speakers and capturing the meaning at the same time :).</p>
<p>Panellists</p>
<ol>
<li>Tom Watson &#8211; <a href="http://www.tom-watson.co.uk/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.tom-watson.co.uk/');">MP for West Bromwich East</a> (moderator)
<li>Tom Chatfield &#8211; author of <a href="http://www.amazon.co.uk/gp/product/0753519852?ie=UTF8&#038;tag=tmachine-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0753519852" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.amazon.co.uk/gp/product/0753519852?ie=UTF8&#038;tag=tmachine-21&#038;linkCode=as2&#038;camp=1634&#038;creative=6738&#038;creativeASIN=0753519852');">Fun Inc.</a><img src="http://www.assoc-amazon.co.uk/e/ir?t=tmachine-21&#038;l=as2&#038;o=2&#038;a=0753519852" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> (published last week)
<li>Philip Oliver &#8211; CEO of <a href="http://www.blitzgamesstudios.com/about_us/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.blitzgamesstudios.com/about_us/');">Blitz Games</a>
<li><a href="http://www.guardian.co.uk/profile/sam-leith" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.guardian.co.uk/profile/sam-leith');">Sam Leith</a> &#8211; Journalist (Daily Telegraph, Guardian, etc)
</ol>
<p><span id="more-796"></span></p>
<h4>Tom Chatfield</h4>
<p>WC3 was the worst game it&#8217;s ever been my misfortune to play.</p>
<p>[ADAM: this was when I started taking notes; I know a couple of ex-Origin people who would probably appreciate that statement...]</p>
<p>One of the big failures for games in public debate is that people reach for the language of film. There are great games that are film-like, but they&#8217;re great because those things are secondary to the mechanics of the game.</p>
<p>We need to get away from the &#8220;magic&#8221;: that by taking something worthy and serious, and tacking-on a game, that will magically make the serious thing &#8220;fun&#8221;, and the game &#8220;worthy&#8221;.</p>
<p>When you&#8217;re playing a game you&#8217;re engage in an experience. This I think eplains the divide between those who play games and those who don&#8217;t. If I try to explain to my mother what it is I do when I raid in Wow, I can&#8217;t just talk about the story and the plot &#8211; I also have to epxlin the presecnce of an entire world, full of people. All she sees is me staring at a blank screen for hours on end. I think we need ot understand that it looks passive, it looks like someone is sitting there getting an unsphisticeated mindless shallow experience. It&#8217;s not the flat screen, what you&#8217;re actually experiencing is the conceptual and metnal world internally</p>
<p>[ADAM: impression I got here was: the screen isn't even a window into a world, it's much less than that, it's an interpreter between two experiences: the experience in my head, and the vast amount of data and other people and plot and story, all interacting in Chaotic ways]</p>
<p>The way that people talk about addictive games you&#8217;d think that there are game designers who are capable of designing games as compulsively addivcitve, that a 9-year-old would be physically incapable of simply giving infinite money to the game companies. In truth, it&#8217;s like literature: they&#8217;re a finely-honed art, with very few ever achieving great success. The power comes because players are willing to invest their own imagination into the game.</p>
<p>If people want to get serious about games, they need to look at what games are actually about, the experience, the mental xperience. Also, we shouldn&#8217;t look at them as something new, but as a subset of something that&#8217;s been around for thousands of years. We need to look back into the fundamentals of why people are playing, rather than the red herring debate about things that games aren&#8217;t.</p>
<h4>Phillip Oliver</h4>
<p>I&#8217;m the expert who&#8217;s at the coal-face. I&#8217;ve never really known anything but games all my life.</p>
<p>Started games programming on the ZX81 at the age of 12. With my twin brother, our hobby was competing with each other to make better games than each other. Our first game was making games. [ADAM: ...which is why I bothered writing this down (normally I omit biography detail that you could google on the web anyway) - this is an interesting vignette]</p>
<p>Had to choose whether to go to University or not, decided not &#8230; despite no-one seeing a future industry &#8230; there were no courses about making games. Instead, hooked up with the Darling brothers and made Dizzy. [ADAM: ...now, really, just google it if you don't know about Codies, Dizzy, etc]</p>
<p>Early 1990&#8217;s we wanted to go from single-person games to teams making games. We wanted to make it a viable career for people, not just an insecure job.</p>
<p>A lot of newspapers look at a few games and say &#8220;all games are violent shooters&#8221;. Well, I can look at Hollywood, look at Die Hard, and say &#8220;all films are violent shooters&#8221;, it&#8217;s wrong.</p>
<p>For many years there was no entry point for new people starting on their own. Now, casual games have changed that &#8211; startups, students, everyone can get in to the business commercially on their own.</p>
<p>The US still dominates the industry: For the past 10 years every contract we&#8217;ve done has been for a US company, and paid in dollars.</p>
<p>[ADAM: someone asked me about this in the pub afterwards, and I responded that the Oliver twins have a tendency at these public events to talk about "the industry" when what they really mean is "the industry as experienced by Blitz". Blitz has had a very specific, narrow business model for the last decade, which is not the standard for the industry (it's been more successful than many). It's interesting, it's to be applauded (they've been consistently successful), but ... it is not something to draw too many generalizations from.</p>
<p>(this may sound harsh on the twins, but ... there are plenty of other veteran games-industry people who excel at talking in generalities and the range of experiences of different segments of the industry. If you want generally-applicable info, I'd listen to someone else)]</p>
<p>I&#8217;m convinced that games are the Hollywood of the 21st C. We *think* that in it&#8217;s opening weekend <a href="http://en.wikipedia.org/wiki/Modern_Warfare_2" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Modern_Warfare_2');">&#8220;Call of Duty: Modern Warfare 2&#8243;</a> took more money than Avatar [ADAM: ...although my caveat : opening weekend figures can be fudged, c.f. X-factor and even just the normal pop music-charts before that. There's been over a decade of marketing-dept meddling in those things; some compnanies are very good at it by now]</p>
<p>There&#8217;s no government support for games. Serious games are of huge value:</p>
<ul>
<li>education
<li>modelling buildings and construction projects in advance [ADAM: here he mentioned that he has a 3D model of Westminster Hall sitting on his iPhone - which begged the question: where is it, how do we get a copy, and why isn't it openly available? - but a side-comment he made suggested that it is "owned" by the UK government and kept secret for some reason, probably something pointless and bureaucratic I guess]
<li>training soldiers in warfare and aloowing them to make mistakes then correcting them
<li>advertising like the BK games &#8230; became a massive advertising success; as a direct result of giving away a game with a meal, BK&#8217;s profits went up by 40% in one quarter
<li>as a tool for engagement in education &#8211; there is nothing avaialbe in education except stuff that&#8217;s poor because the money is never allowed to be joined-up &#8211; what we need is centralized budets that can commission some great games pulling in enough money and allowing it to be sold to many schools instead of ring-fenced for one school at a time
<li>as a career when someone says they want to be a game-designer to a teacher what repsonse do they get? a negative one, the drop-off in chicldren wanting to become a programmer is enormous and even the one thing that would be a huge hook is being downplayed by teachers all the time claiming it&#8217;s not a real career &#8230; it&#8217;s not serious
<li>and finally: parents need to take this seriously.
</ul>
<p>If everyone in this country takes this seriously then we (the UK) can become the world-leader in this space. We want to have everyone engaged and taking it seriously, seeing the value and the jobs.</p>
<h4>Sam Leith</h4>
<p>I was interviewing Will Wright about Spore, and he told me this medieval description: someone was bent over a table absorbed in something, they seemed physically there but mentally not present. In fact they were reading a book, but the viewer thought that this person&#8217;s soul had been possessed by the devil.</p>
<p>To some people, playing games seems weird. The results of photographing games-players while they&#8217;re playing are &#8230; scary. This feeds fear and apprehension in the media.</p>
<p>One of the problems is that in media there really is only one story: games induce violence.</p>
<p>That hysteria perversely has the effect of self-fulfilment. It feeds into marketing, following the same archetype. If a hollywood movie got MW2&#8217;s opening weekend numbers it would get wall to wall coverage. But MW2 would have vanished in mainstream media if it weren&#8217;t for the fantastically grotesque airport scene &#8211; which got all the attention. You can&#8217;t but suspect that the authors put that scene in specifically because they knew it was the only way that they would get any mainstream-media attention at all.</p>
<p>The second problem is the invisibility of games. I once interviewed a 17 year old, <a href="http://en.wikipedia.org/wiki/Fatal1ty" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Fatal1ty');">Jonathan Wendel</a>, who at the time was the best video game player in the whole world. Jonathan played Quake with all the blood and guts turned off, all textures removed, with no recognisable people, no recognisabel guns, because it made the game run faster and made it easier to play the game competitively. Which is completely different from what I think people thought would be going on in the head of such a person.</p>
<p>In most cases, its not that the game is forcing you to take an action, but rather that it&#8217;s giving you the opportunity to take a decision with no constraints and live through the result. An example from Tom Chatfield&#8217;s book, a story about Eve Online &#8230; infiltration by players of a big corp of other players, stole all their goods. There was nothing in the game that said this was unethical. The anxiety is not that the game is pushing you to do things, it&#8217;s that they&#8217;re allowing you to act in the way that you wanted to, and forcing you to live with the consequences.</p>
<p>[ADAM: I think this is one about <a href="http://www.destructoid.com/breaking-goonfleet-stomps-band-of-brothers-in-biggest-eve-takedown-ever-77421.phtml" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.destructoid.com/breaking-goonfleet-stomps-band-of-brothers-in-biggest-eve-takedown-ever-77421.phtml');">the GoonSwarm dissolving the entire Band of Brothers, wiping them out</a>, but it might be <a href="http://www.qj.net/mmorpg/news/biggest-scam-in-eve-online-history.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.qj.net/mmorpg/news/biggest-scam-in-eve-online-history.html');">the in-game theft of assets with $170,000 of real-world value</a>. Either way ... if you don't know about them both, again: go google it]</p>
<p>Even GTA4 is a moral game. You can play the game without attracting attention of police, for hours and hours. But, if you start mowing down pedestrians, the police puruse you and start shooting you. This is moral education. [ADAM: he said this tongue-in-cheek]</p>
<p>Another of the problems is that our first instinct with judging games is to see them in terms of other art-forms. You&#8217;re often looking for something in a game which really only has a relevance in something else. Often in particular viewing games through the lens of films.</p>
<p>I recently compared WoW to a medieval cathedral. Not a qualititave judgement, but merely looking at in abstract. If you view it merely as a film, you&#8217;ll miss most of what it is, the craftsmanship, the architectural aspects, the longevity and the way it alters and adapts over time.</p>
<p>WoW has literally nothing in common with Wii Tennis.</p>
<p>Many years ago, there was an article about gay culture, saying there was a point at which the culture had been defined because gays had been self-defining against a hostile media landscape, and they had to break away from that imposed constraint to find out what it should be.</p>
<h4>Tom Watson</h4>
<p>The House of Commons would make a great game: good and evil, thousands of rooms, and poeple doing bad things to each other for points.</p>
<h4>Questions / Audience debate</h4>
<p>[ADAM: some people introduced themselves, some people Tom called out by name (sometimes saying who they were, sometimes not).</p>
<p>Some of the people who spoke I already know by sight, so I could fill in the info below. Others ... I had no idea who you were - sorry! If you want attribution, you need to tell the room who you are clearly before you start talking :).]</p>
<h4>Derek Robertson</h4>
<p>I don&#8217;t agree that there&#8217;s a poor choice of games for education. Nintendogs, little big planet, &#8230; these are inhernetly educational, they&#8217;re bursting with value.</p>
<p>We&#8217;v had great success with that stuff from nursery school all the up to secondary school.</p>
<p>We use games to provide context for other thigns we&#8217;re teaching</p>
<p>[ADAM: but ... this really isn't anything to do with games-as-games. I think Derek's work is great (his successes speak for themselves) - but he's not making use of gameplay, the experience of playing the games, he's making use of the external idea of the games, the themes. That's clever, but it's disengaged with the game itself. Philip's response (see below) seemed to be making the same point, probably better than I am...]</p>
<h4>Philip Oliver (response)</h4>
<p> it&#8217;s great that you&#8217;re using them, but you&#8217;re using the side-effects of some games, rather than games designed for that, which would make them even better</p>
<h4>MP for Rochester</h4>
<p>I&#8217;m possibly the only MP who actually has a published video game to his credit [ADAM: I think this one: <a href="http://en.wikipedia.org/wiki/Their_Finest_Hour_(1989_video_game)" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Their_Finest_Hour_(1989_video_game)');">Their Finest Hour (1989)</a> ?]</p>
<p>Each country has its own cultural hangups about games. Americans were worried about fundamentalists worrying about sex in games (shooting people is fine). Russians looking at banning games sold near schools because &#8230; some games are about the WW2 and you can play the germans (which &#8220;shouldn&#8217;t be allowed&#8221;). Perhaps we should be saying that all games are not the same &#8211; that&#8217;s the argument that the anti-games crowd is dependent upon. </p>
<p>I think where politiians can help without spending money is by giving it an esteem that it doesn&#8217;t currently have. Msot people in Britain have actually played a game themself, but what&#8217;s actually spread has been the stuff that is trivial and hasn&#8217;t needed much interaction. That&#8217;s what has more recognition among the public.</p>
<p>We should look at running olympiads etc to promote the best of games&#8230;</p>
<h4>Someone from <a href="http://www.wellcome.ac.uk/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.wellcome.ac.uk/');">the Wellcome Trust</a></h4>
<p>We used games to explain how viruses are spread, &#8211; Sneeze &#8211; and we&#8217;ve found nothing better for doing that. Anyone who&#8217;s played GTA4 and then been to NYC has noticed how much of NYC culture you pick up just from playing that game.</p>
<h4><a href="http://www.hideandseekfest.co.uk/who" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.hideandseekfest.co.uk/who');">Alex Fleetwood</a> (Hide-and-Seek)</h4>
<p>: if there were one game you could nominate that&#8217;s worth taking seirously, what would it be?</p>
<h4>Philip Oliver (response)</h4>
<p>Wii-Fit. Because &#8230; it&#8217;s sold an enormous number of copies, but also because it redfeined in people&#8217;s minds what a game &#8220;is&#8221; and what it is &#8220;for&#8221; &#8211; it convinced them that they have purposes beyond that.</p>
<h4>Tom Chatfield (response)</h4>
<p>Flower. You move the controller in space which blows a petal around a beautiful landscape. It&#8217;s a new vision of games that anyone can pick up and interact with at their own pace, without being highbrow or intense. In a sense it&#8217;s a little like Wii Fit in that people can just &#8220;get it&#8221; instantly.</p>
<h4>Sam Leith (response)</h4>
<p>: World of Warcraft. In terms of richness it&#8217;s very hard to get anything that comes close.</p>
<h4>Tom Watson (response)</h4>
<p>: Rolando. Gives you a grasp of physics, e.g. if you&#8217;re a young child.</p>
<p>[ADAM: Tom W went last, so bear in mind that his preferred choices may already have been taken, but still ... that last one is just lame. Rolando? Teaching physics? Hmm. Even if you willfully ignore the dozens of much better games that are high quality physics games (I can think of at least 20 I've played), IMHO Rolando barely includes any physics at all. If anything, it's largely anti-physics]</p>
<h4>[Someone working for a regional agency (I didn't get the details)]</h4>
<p>We (UK) punch well above our weight in terms of what we provide to the industry. I think we need to encourage that and value it. Disengagement of youth is a big problem across the board, and that&#8217;s a problem that games could help with enormously.</p>
<h4>[someone anonymous]</h4>
<p> I&#8217;m a journalist I write about this a lot. What games really used to be great at was telling a story. And they aren&#8217;t as good at right now. I think that Grim Fandango which my wife can enjoy was great. What do we have to defend? Where do you see it going as a storytelling device?</p>
<p>[ADAM: IMHO: Please, just try to get over it; games-as-stories shrank in share because games can do other things *more effectively*. Do you think the entire industry collectively said: "hey, games are great at stories. Let's NOT DO THAT ever again!"?]</p>
<h4>Sam Leith (response)</h4>
<p>Games tell stories in a different way from books. They can&#8217;t tell stories the same way. There&#8217;s an MA in Creative Writing at <a href="http://www.napier.ac.uk/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.napier.ac.uk/');">Edinburgh Napier [ADAM: I think?]</a>, which includes games as a storytelling medium.</p>
<p>To start with, games were written by people who were programmers, rather than by writers. We have writers writing for games now.</p>
<h4>Tom Chatfield (in response)</h4>
<p>within this general idea that gaming is a medium that&#8217;s growing up along with it&#8217;s audience, and maturing with them &#8230; there were games that had 20 years of tradition behind them, like the point-and-click games from Lucasarts. Although with action games you&#8217;re not starting again, you&#8217;re still having to take a lot of steps back and build up to the peaks again.</p>
<h4>&#8220;Greg&#8221;, who &#8220;runs the annual game-based learning conference&#8221;</h4>
<p>it does seem like government &#8211; or its agencies &#8211; are very scared, very weak at supporting games. Which government will be brave enough to use some of these gaming platforms, instead of using proprietary platforms that are being pushed by trade associations? e.g. A Nintendo DS is cheaper than a laptop being pushed to do the same jobs less efficiently.</p>
<h4>Tom Watson (in response)</h4>
<p>: I agree &#8230; some of the civil servants and agencies are missing a great opportunity in this area</p>
<h4>Ed Vaizey</h4>
<p>: I admit that the last game I played before the Wii &#8230; was Defender. I say this to admit that I don&#8217;t play games, to show that I&#8217;m aware this is something to be embarassed by. I freely admit that I didn&#8217;t know much about the games sector before I took on my shadow culture brief. TIGA and ?ELSPA? [ADAM: I think; didn't hear what he said as the second one; ELSPA would make sense though] took on the task and did a great job of informing me about this area and what I needed to know from the politicians perspective.</p>
<p>[ADAM: it's nice for once to hear of good things being done by TIGA ... their reputation among the people who actually work in the games industry is often poor, thanks to their anti-inclusive / elitist policies]</p>
<p>I&#8217;m 41, I&#8217;m probably the last generation where games weren&#8217;t woven into my earliest experiences in life. I think it&#8217;s simply a question of getting in front of the right people who don&#8217;t know this stuff but are writing policies on it and banging the job to help them understand.</p>
<p>I&#8217;m focussed on giving games a voice at the top table. I&#8217;m amazed that we have a film council but don&#8217;t have a games council. I am in favour of extending the Film Council; although I&#8217;m aware of all the args against, it&#8217;s a practical move in a time when we probably can&#8217;t setup yet another Quango.</p>
<p>Skills are important, we need to make sure that people coming out of courses are the right ones that the games industry needs.</p>
<p>[ADAM: OK ... where does this last statement come from?</p>
<p>Is this just the standard "I'm a politician, therefore I *must* mention job-creation" ?</p>
<p>Or is this the TIGA agenda leaking through?</p>
<p>Or is it even someone else's agenda (e.g. Electronic Arts UK? Microsoft UK?), cleverly hiding inside one of the above?</p>
<p>Because ... IME, the majority of work done under the banner of "giving more appropriate skills to technical and designer graduates" makes those graduates *CONSIDERABLY WORSE AT THEIR JOBS*. It seems that most of the people doing this have zero experience of hiring such people or doing the work themselves, and pander to whichever random, self-serving elements lobby the loudest.</p>
<p>For instance ... Just before Christmas 2009, I met a large number of students on a Masters Course in Game Design. They were being groomed to be unemployable (IMHO). They were wasting a year doing little but reading, and weren't doing the single most important (and cheap!) thing that most hiring managers in the games industry demand: they weren't actually making any games.</p>
<p>I've become very suspicious of the whole "we don't have appropriately-trained people coming in to the games industry"]</p>
<h4>Dawn Hallybone</h4>
<p>The thing that&#8217;s lacking here is just &#8220;common sense&#8221;. I&#8217;m a teacher, in England the movement for using games in the classroom is growing, but we&#8217;re doing it self-funded all as separate schools having to work independently. When we asked children they said we can relate to them, that it&#8217;s relevant, it&#8217;s real. For educationalists the primary purpose is to enhance the curriculum. Kids can see through any attempt to make an educational game and they hate it. We use Mario Kart to teach children about friction, we get them creating their own circuits and racing around them.</p>
<h4>Mike Rawlinson (ELSPA)</h4>
<p> As Ed said, It took Chris Smith 4 years to get free museums, which no-one would disagree with, so for something like this it&#8217;s going to take time. We&#8217;ve got to stop being hurt little gamers and just be normal people doing a normal thing and being happy to do it.</p>
<h4>Wrap-up &#8211; Tom Chatfield</h4>
<p>The extent to which every country uses games as a mirror onto which they project their fears and uncertainties about the modern world. I hope we can get to the point where we&#8217;ll see pairs of people sitting on Newsnight comparing finer points of game-design in Brutal Legend. People laugh, but we have those kinds of conversations about the role 3D has played in the film Avatar.</p>
<p>There&#8217;s plenty to be gained from talking to people whose lives were pre-games.</p>
<p>The boundaries between gaming and non-gaming world are a lot more permeable than we think they are. We say that most poeple have played casual games, but they don&#8217;t necessarily realise they are playing games. If we can get them to realise it&#8217;s part of a spectrum, and recognise what they&#8217;re doing, we&#8217;ll get better discussion.</p>
<p>Games are one of the very best ways to teach children about how to be part of a wider world, how to deal with people and modern media. There&#8217;s a lot of bad games out there, a lot of bad experiences, and we need to have discussion about those, identifying them and reducing them.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/26/panel-taking-video-games-seriously/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2010 and the Browser MMO</title>
		<link>http://t-machine.org/index.php/2010/01/18/2010-and-the-browser-mmo/</link>
		<comments>http://t-machine.org/index.php/2010/01/18/2010-and-the-browser-mmo/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 14:15:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=794</guid>
		<description><![CDATA[What&#8217;s a browser MMO? Today, not 5 years ago?
In the previous post I poked Earth Eternal for claiming to be the &#8220;*REAL* MMO for your browser&#8221;, and disappointing on that front (although it could be awesome on all other fronts). I finished with:

So &#8230; EE may be a great game &#8230; and it may be [...]]]></description>
			<content:encoded><![CDATA[<h4>What&#8217;s a browser MMO? Today, not 5 years ago?</h4>
<p>In the previous post I poked Earth Eternal for claiming to be the &#8220;*REAL* MMO for your browser&#8221;, and disappointing on that front (although it could be awesome on all other fronts). I finished with:</p>
<blockquote><p>
So &#8230; EE may be a great game &#8230; and it may be launchable from within a browser &#8230; but it&#8217;s a long way from a poster-child for browser-based MMOs. It&#8217;s still fighting the browser as much as it&#8217;s complementing it.
</p></blockquote>
<p>It&#8217;s 2010. I know a lot of people in the industry still haven&#8217;t accepted even the concept of a &#8220;browser-based&#8221; MMO, let alone realise where they&#8217;ve got to now.</p>
<p>I&#8217;m not in the loop on this stuff any more, but it set me to wondering what I&#8217;d be chasing if I weren&#8217;t doing iPhone exclusively right now.</p>
<p>What about you? Are you <em>fighting</em> the browser?</p>
<h4>The Executive&#8217;s impression</h4>
<p>Game developers aren&#8217;t stupid. Executives aren&#8217;t clueless. But some are.</p>
<p>In the minds of those who make games but &#8220;don&#8217;t do&#8221; browser games on principle, I&#8217;ve found &#8220;a browser MMO&#8221; often means some or all of:</p>
<ol>
<li>A text-only game running off a single Perl webpage, where each action causes the whole page to be refreshed.
<li>Non-real-time interaction (because, you know &#8230; web-servers aren&#8217;t powerful enough to run anything in real-time)
<li>High-latency, jerky, shallow movement of characters and objects
<li>Weak 3D graphics &#8211; 5 years or more behind the curve of Console graphics
<li>Fat client downloads that &#8220;no-one&#8221; can be bothered to wait for, and would be better-off distributed on a DVD
</ol>
<p>What&#8217;s reality? Well, here&#8217;s a few observations&#8230;</p>
<h4>Drop-dead gorgeous graphics &#8230; are the norm</h4>
<p>For a look at today, go browse <a href="http://unity3d.com/gallery/live-demos/tropical-paradise" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://unity3d.com/gallery/live-demos/tropical-paradise');">some of the Unity demos</a>. Unity is *not* the &#8220;best&#8221; 3D engine, the fastest, the best language &#8211; but it&#8217;s nicely balanced towards ease of adoption. It&#8217;s very easy for new developers to get into. And so it&#8217;s setting a very achievable base standard that&#8217;s higher than many people would believe. With anyone able to produce 3D to this level, and embed it in the browser almost as an afterthought, the use of plugins becomes a new landscape.</p>
<p>Right now, crappy Flash MMO&#8217;s are still re-treading the ground of Dragon Fable (which is coming up to it&#8217;s 4th birthday) et al &#8211; albeit that&#8217;s now the &#8220;standard&#8221; and there is better and better appearing. But just as it only took a few games to adopt this approach and show how good it could look, widespread adoption of Unity, and a few high-profile innovative products, will drag forwards the rest of us.</p>
<p>(by &#8220;us&#8221; I don&#8217;t mean professional developers, I mean primarily the amateur and semi-pro teams who don&#8217;t yet work for a living &#8211; the students etc)</p>
<p>2 years ago I wouldn&#8217;t have thought it would be necessary to say this (I assumed that FB would have kicked everyone&#8217;s butts) but maybe it&#8217;s still relevant: going forwards, I suspect &#8220;browser MMOs&#8221; still need to be a lot more &#8220;browser&#8221; and a lot less &#8220;traditional MMO&#8221; if they wish to stand out.</p>
<h4>The facebook question</h4>
<p>Browser MMO, huh? So &#8230; Why is there no option to use Facebook Connect to login? In 2010, I think that&#8217;s what browser-MMO probably means to most people: &#8220;it works from Facebook&#8221;.</p>
<p>The massive, fundamental changes to Facebook that are coming in this year may push a lot of content-providers off FB, and back to the web &#8211; but users will continue to demand single-sign-on access, and shared access to friends lists. This already works, off-site, thanks to Facebook Connect (both for websites and for other hardware platforms, e.g. iPhone).</p>
<p>I may be completely wrong, but my suspicion is that many developers still want to &#8220;use Facebook&#8221;, by which they mean:</p>
<blockquote><p>
&#8220;use (the large number of accounts on) Facebook (to get lots of users in our game without having to do so much advertising)&#8221;.
</p></blockquote>
<p>&#8230;while (again, merely a suspicion) users want their games to &#8220;use Facebook&#8221;, by which they mean:</p>
<blockquote><p>
&#8220;use (the apps, data, and list of friends I already have on) Facebook (to reduce the effort I go through to play the game)&#8221;
</p></blockquote>
<p>The problem here is the developer is chasing more signups, and the user is chasing ease-of-access. IMHO, the FB changes are going to cut off most of the former, leaving the question: who will do best at fulfilling the latter?</p>
<h4>The Glottal-Stops and Square Pegs of User Experience</h4>
<p>When people surf to your MMO direct from the Web, do they get a feeling akin to the <a href="http://en.wikipedia.org/wiki/Glottal_stop" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Glottal_stop');">glottal-stop</a>? Do they feel like they mentally &#8220;stumbled&#8221;, as the paradigms and user-interface go through a sudden change?</p>
<p>Embedded within an ordinary web-browser, does your MMO look like a square peg forced into a round hole?</p>
<p>The effects are subtle, but they decrease virality, decrease engagement. The effects are tiny, but with millions of web-users out there, they can be cumulative. Each time a user experiences this, you marginally shrink your maximum user-base, and you push your conversion rate down.</p>
<p>Why was I so shocked that Earth Eternal is (silently) Windows-only? (as is/was Free Realms, for that matter)</p>
<p>Well, largely because it reminded me of years ago, when you&#8217;d occasionally go to a website only to see:</p>
<blockquote><p>
&#8220;This site is only valid in Internet Explorer; you are not running that browser, so you are seeing this special page instead of the site. Please download IE now and then come back.&#8221; (or Netscape, or &#8220;desktop, but you are using a mobile phone&#8221;, etc)
</p></blockquote>
<p>History suggests that this is not a viable strategy when you&#8217;re fighting it out on the web&#8230;</p>
<h4>I&#8217;ll know it when I see it</h4>
<p>I&#8217;m waiting for one feature in a major MMO. I&#8217;ve seen it in a few &#8220;amateur&#8221; MMOs, and you get it on Facebook apps etc. It&#8217;s a fundamental expectation from the Web, and it is incredibly powerful:</p>
<blockquote><p>
Each piece of interesting content is *named* &#8230; it has a unique URL &#8230; so that I can directly tweet places, events, people, and things. I can bookmark conversations I&#8217;ve had. I can archive, I can cite, save, and return.</p>
<p>Bonus points for incorporating a bit.ly service in the client, so I can literally copy/paste direct into twitter
</p></blockquote>
<p>I&#8217;m hoping it&#8217;s out there already, and I just haven&#8217;t spotted it yet. When it comes, someone let me know; until then, I&#8217;ll be spending more time in flash games, and less in mainstream MMO&#8217;s. I prefer my gaming to be Web-compatible, thanks&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/18/2010-and-the-browser-mmo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Earth Eternal: Short Review</title>
		<link>http://t-machine.org/index.php/2010/01/18/earth-eternal-short-review/</link>
		<comments>http://t-machine.org/index.php/2010/01/18/earth-eternal-short-review/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 13:13:05 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://t-machine.org/?p=789</guid>
		<description><![CDATA[(if you haven&#8217;t read the main post explaining this, read this first)
Submission

Author: Chris Locher (calocher at gmail.com)
Title: &#8220;Net Quest: The Search for the win&#8221;
Word count: 500 words


Proposal

The game is a casual Diablo/Torchlight like dungeon crawler based on all things Internet. The player is a web browser personified in a virtual 3d world as an astronaut [...]]]></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: Chris Locher (calocher at gmail.com)
<li>Title: &#8220;Net Quest: The Search for the win&#8221;
<li>Word count: 500 words
</ul>
<p><span id="more-789"></span></p>
<h4>Proposal</h4>
<blockquote><p>
The game is a casual Diablo/Torchlight like dungeon crawler based on all things Internet. The player is a web browser personified in a virtual 3d world as an astronaut like being made of light in a Tron like fashion. The players view will be an Animal Crossing like convex surface.</p>
<p> As a browser you explore the Internet with websites/servers being the levels. The more untrustworthy a site the harder the difficulty is for that level. Forums and social networking sites will either be a high difficulty area or an arena style level. Search engines are portal worlds.  Currency for vendors is either “iDollars” or bytes.</p>
<p>Your health is labeled either bandwidth or connection, that way when you die you get disconnected and get a 404 error for the game over screen. There was also a possibility of using your bandwidth as a game play element by making it so that you have to kill enemies to keep your bandwidth usage down.  Max out bandwidth and get disconnected.</p>
<p>“Flamer”, “Spammer”, and “Troll” are the three different classes available. The Flamer is an all around nuking type as most of the attacks seem like excessively large forum posts in the shape of flames. The Spammer is your general necromancer summoning type with the summons being named “Spambots”. They will probably do some kind of mild ranged damage using ads or some other type of annoying spam based projectile. The Spammer’s final attack is to call down a roflcopter to shoot up enemies.  The Troll is a straight up melee type. I have not decided what Internet themed weapons it will have yet. All weapons look like 16-bit pixel cursors. The doodle I made after I came up with the idea has a sword shaped like a windows cursor.</p>
<p>Your enemies consist of various Internet memes and other personified bits of the Internet (spyware, adware, buggy javascript etc.) and other browsers like the player.</p>
<p>The single player storyline is very vague in that your goal is to search for “IT” on the Internet. At the end of the journey you are treated to a cinematic of a voice saying “finally” and clicking on a link for “IT”, which turns out to be a rick roll. Once the roll loads the YouTube window folds down and rick becomes the last boss.</p>
<p>There is multilayer co-op in the main campaign. It would be interesting to see 8 to 16 players facing off against the hordes of the Internet but four at once is what I will be shooting for.</p>
<p>At a certain level you will be able to buy a server to “host” yourself.  This will be tower defense like using the things you’ve seen on other servers as your building blocks. You can upgrade your server with different parts and upgrades. It may be possible for other players to try to assault your server. A reward for successful server (s/h)acking to be worked out later.
</p></blockquote>
<p>NB: there was also some very basic concept art, but as an attachment, not as a link.</p>
<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; 3
<li>Story / Theme &#8211; 4
<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: you&#8217;d expect this to get through to the next round of judging, but it would have even odds of getting into the final stage &#8211; lack of innovative gameplay/mechanics means it&#8217;s unlikely to win in a tie-break, and it doesn&#8217;t have enough points to go straight into the final without tie-breaking. OTOH, other judges could well give this a 5 for Originality and Story, and the aggregate score would push it through.</p>
<h4>Adam&#8217;s comments</h4>
<p>Very innovative concept, with lots of character and flavour detail (shows that the author won&#8217;t just run out of steam after the initial joke).</p>
<p>No core game mechanics beyond &#8220;it&#8217;s Diablo&#8221;.</p>
<p>TD-mechanics are tacked-on at the end, badly &#8211; the whole pitch would be better without them (shorter, cleaner), unless they are re-written to be part of the core gameplay.</p>
<p>Therefore, this pitch succeeds or fails on the conceit of &#8220;internet as combat game-world&#8221;, and how well you manage to fufil that theme. With the niche theme, and without innovative game mechanics, this could never be a AAA title, although it would probably make an excellent Casual title.</p>
<p>I&#8217;d definitely put this through to the next round of a game competition, especially one where you had to actually build a demo &#8211; I&#8217;d be particularly looking forward to playing it, even just for a few minutes. But at the very least, I&#8217;d want to see what art-style and GUI you came up with (assuming you had to produce fake screenshots, if not a full demo).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/14/judging-game-ideas-net-quest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Got an idea for a new game? Want some feedback and publicity?</title>
		<link>http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/</link>
		<comments>http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 15:01:26 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/</guid>
		<description><![CDATA[In general, it seems that most entrants to game-design-competitions could get huge benefit from just a small amount of fairly simple advice and feedback.
I&#8217;ve been a judge on several game-design competitions. I&#8217;ve seen a lot of recurring mistakes and successes, and I&#8217;d like to see less of the former, more of the latter.
I&#8217;m hereby offering [...]]]></description>
			<content:encoded><![CDATA[<p>In general, it seems that most entrants to game-design-competitions could get huge benefit from just a small amount of fairly simple advice and feedback.</p>
<p>I&#8217;ve been a judge on several game-design competitions. I&#8217;ve seen a lot of recurring mistakes and successes, and I&#8217;d like to see less of the former, more of the latter.</p>
<p>I&#8217;m hereby offering to provide *public* feedback to anyone who wants to send me their idea. I&#8217;ll publish your idea on my blog, along with my thoughts and reactions.</p>
<p>Here are my rules:</p>
<ol>
<li>MINIMUM of 300 words
<li>MAXIMUM of 500 words
<li>State whether it&#8217;s intended to be a Casual game, or a AAA game
<li>State whether it&#8217;s anonymous, or if you want me to include an email address and/or website URL (for people to contact you if they liked your idea)
<li>I will pick the most interesting ones, and publish the main text of your email, and my reactions, on this blog
<li>Email it to me directly, at adam.m.s.martin at gmail.com
<li>You must include the text: &#8220;I have read everything on the blog post, and understand and accept all the terms and conditions&#8221;
<li>If I can think of someone better-placed to comment on your idea, I *might* forward your idea to another industry-expert blogger, on the condition that they publish it on their blog with their own feedback, just as I would have done myself (unless you SPECIFICALLY state that you don&#8217;t want me to do this)
</ol>
<p>Some notes&#8230;</p>
<h4>SXSW entrants</h4>
<p>If you&#8217;re already entered for SXSW 2010, don&#8217;t bother sending me your idea until after the conference. I&#8217;m not going to allow this to interfere with that event.</p>
<h4>Public vs. NDA</h4>
<p>If you ask for an NDA, you&#8217;ve already lost. Forget it.</p>
<p>In general, the only people who would bother to &#8220;steal&#8221; your game idea are so incompetent / uncreative that the &#8220;best&#8221; game they could create &#8211; even using your idea! &#8211; would be so appallingly bad that no-one would ever play it or talk about it.</p>
<h4>Spelling and grammar</h4>
<p>I will judge you on your spelling and grammar. Get used to it. If you are so lazy you can&#8217;t be bothered to spellcheck your entry, you&#8217;ve just screamed:</p>
<p>&#8220;I AM TOO LAZY TO DESIGN OR MAKE A GAME, I WILL GIVE UP AS SOON AS IT GETS MILDLY CHALLENGING!!!&#8221;</p>
<h4>Cheat, cheat, and cheat again</h4>
<p>Anything you can do to make your pitch more convincing is acceptable. Within the 500 words limit, of course.</p>
<p>If you&#8217;ve got concept art, a downloadable MOD, or even better a faked gameplay video &#8230; include links!</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Panel at SXSW &#8211; AAA Game Design competition</title>
		<link>http://t-machine.org/index.php/2010/01/11/panel-at-sxsw-aaa-game-design-competition/</link>
		<comments>http://t-machine.org/index.php/2010/01/11/panel-at-sxsw-aaa-game-design-competition/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 14:27:45 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=785</guid>
		<description><![CDATA[In a few months time, I&#8217;ll be in Austin, TX, sitting on a panel at SXSW &#8230; judging people&#8217;s ideas for new computer games. I&#8217;m going to make an offer here, now, to help people entering future competitions (FYI: it&#8217;s too late for SXSW 2010).
This is the fourth time I&#8217;ve been a reviewer or judge [...]]]></description>
			<content:encoded><![CDATA[<p>In a few months time, I&#8217;ll be in Austin, TX, sitting on a panel at SXSW &#8230; judging people&#8217;s ideas for new computer games. I&#8217;m going to make an offer here, now, to help people entering future competitions (FYI: it&#8217;s too late for SXSW 2010).</p>
<p>This is the fourth time I&#8217;ve been a reviewer or judge for a game-design competition/panel/etc, and I&#8217;m noticing some recurring themes. This is interesting, since everything I&#8217;ve judged has been completely different (different countries, different audiences, different rules).</p>
<h4>Recurring themes of game-design competitions</h4>
<p>One theme in particular is that a large percentage (circa 30%) of entries are depressingly bad; it seems that many of the wannabe-game-designers in the world are just plain lazy.</p>
<p>Another theme is that when someone has a good idea, they often don&#8217;t realise how good it is. They end up spending one sentence (or, if you&#8217;re lucky, two sentences) talking about the interesting part, and the next 500 words spewing out meaningless drivel that applies to every game ever made.</p>
<blockquote><p>
e.g. &#8220;you will have different choices to make in this game, there will be puzzles, and when you finish a puzzle you will get a reward, rewards will be used to unlock more levels, and to finish the game you have to get to the last level, which will be harder than the earlier levels, and &#8230; &#8221;
</p></blockquote>
<p>&#8230; and: STFU. You&#8217;re boring. Do you think that I&#8217;ve never played a computer game before? Or do you just think I&#8217;m so stupid that I can&#8217;t remember what they&#8217;re like?</p>
<h4>Some tragic outcomes</h4>
<p>NB: this is just one example of what goes wrong with competition entries; I could give you countless more&#8230;</p>
<p>Some of the judging I&#8217;ve done was at the start of a competition, where the teams then spent the next 3+ months full-time actually building their games. On those occasions where a team was let through because we saw something special in their core idea, despite them waffling about a million other things, the team tended to make the EXACT SAME MISTAKE during production. They would spend 10% of their time on the cool idea, and 1% on each of 90 irrelevant distractions. They never won (surprise!).</p>
<p>For the times when we just judge ideas, not actual games, my distinct impression is that a lot of &#8220;good&#8221; ideas get thrown out because they&#8217;re submerged in so much rubbish that the judges either don&#8217;t see them &#8230; or assume the above is going to happen, and so they want to give the attention to other, more focussed teams.</p>
<h4>So&#8230;</h4>
<p>So, I&#8217;m offering anyone (anyone!) the chance to get some free feedback on their game idea, in the mindset of a competition judge. Maybe you&#8217;ll discover holes in your pitch, maybe you&#8217;ll discover ways to improve your core game &#8230; maybe it won&#8217;t help you at all :).</p>
<p>Details here: <a href="http://t-machine.org/index.php/2010/01/11/got-an-idea-for-a-new-game-want-some-feedback-and-publicity/" >Got an idea for a new Game?</a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2010/01/11/panel-at-sxsw-aaa-game-design-competition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell, Metaplace</title>
		<link>http://t-machine.org/index.php/2009/12/24/farewell-metaplace/</link>
		<comments>http://t-machine.org/index.php/2009/12/24/farewell-metaplace/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 15:34:50 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=782</guid>
		<description><![CDATA[I got this in my inbox a few days ago, and it&#8217;s been forwarded to me by a few people since:
(NB: the fact that you still have to login MERELY TO READ THE DAMN FAQ linked from the PR statement is IMHO symptomatic of some of MP&#8217;s problems :( )

metaplace.com is closing on january 1, [...]]]></description>
			<content:encoded><![CDATA[<p>I got this in my inbox a few days ago, and it&#8217;s been forwarded to me by a few people since:</p>
<p>(NB: the fact that you still have to login MERELY TO READ THE DAMN FAQ linked from the PR statement is IMHO symptomatic of some of MP&#8217;s problems :( )</p>
<blockquote><p>
<a href="http://metaplace.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://metaplace.com');">metaplace.com</a> is closing on january 1, 2010</p>
<p>We will be closing down our service on January 1, 2010 at 11:59pm Pacific.  The official announcement is <a href="http://metaplace.us1.list-manage.com/track/click?u=d52efca73013b738db5d9bab8&#038;id=f910dab462&#038;e=1ca359114d" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://metaplace.us1.list-manage.com/track/click?u=d52efca73013b738db5d9bab8&#038;id=f910dab462&#038;e=1ca359114d');">here</a>, and you can read a FAQ guide <a href="http://metaplace.us1.list-manage.com/track/click?u=d52efca73013b738db5d9bab8&#038;id=346b7ed13f&#038;e=1ca359114d" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://metaplace.us1.list-manage.com/track/click?u=d52efca73013b738db5d9bab8&#038;id=346b7ed13f&#038;e=1ca359114d');">here</a>.  We will be having a goodbye celebration party on January 1st at 12:00noon Pacific Time.
</p></blockquote>
<p>Some of the correspondence I&#8217;ve seen on this &#8211; what went wrong? what should they have done differently? &#8211; has been interesting. Personally, I&#8217;m in two minds about it. I think there were some great things about and within MP, but from the very start I felt it had no direction and too little real purpose (and if you ask around, I&#8217;m sure you&#8217;ll find plenty of people who&#8217;ll confirm I said that at the time).</p>
<p>I&#8217;ll hilight a couple of things that haven&#8217;t come up so much in conversations:</p>
<h4>Bad</h4>
<ol>
<li>On the face of it, MP was &#8220;the bad bits of Second Life&#8230;&#8221; (poor content tools, poor client, no direction, no purpose)
<li>&#8220;&#8230; without the good bits of Second Life&#8221; (no sex, no mainstream publicity, wrong target audience to charge millions of dollars in land-rental to)
<li>Poor discoverability (how do you find something cool in Metaplace? Go to site, login, download client, wait a lot, browse a weak index, wait for more downloads, wait for content to stream in &#8230; etc)
</ol>
<p>Discoverability was IMHO the killer: this is something that so many &#8220;hopeful&#8221; social sites and systems get wrong, and only a few get right. The best examples are still simple: browsing your friends&#8217; friends on Facebook by looking at photos of their faces (hmm; who do I fancy?), or using Google to find things you&#8217;re looking for (the gold standard in tech, but also the base *expectation* of the modern web surfer).</p>
<p>The history of SLURLs in Second Life should probably be required reading for people interested in this &#8211; if you can find ways to experience / re-live life pre-SLURLs, and read through some of the trials and tribulations that Linden went through in getting them to work.</p>
<p>And even then, of course, SL still had no browsability &#8211; but it least it had &#8220;open&#8221; bookmarks and copy/paste references you could share with people, and embed in webpages. That was barely acceptable (and still &#8220;awful&#8221;) back when SL was in its prime; the equivalent &#8220;minimum acceptable&#8221; is probably Faceboook Connect with full Facebook integration (i.e. not just FC-login, but having a bona fide FB app too that acts as an alternate access-path for your virtual world).</p>
<h4>Good</h4>
<ol>
<li>Well, obviously, there was a lot of great content in there. I only skimmed it, but apart from the problems above, I saw a lot of interesting stuff
<li>The AJAX/CSS/HTML GUI &#8230; it was really easy for me to mess about gaining and browsing badges (both mine and other peoples).
</ol>
<p>Early on, I found the AJAX vs Flash part particularly interesting. The former showed up how weak the latter (the world-client) was: sometimes I went to the site, all happy about the badges, the popovers, etc, and as soon as I got into the Flash client, my mood would drop noticeably. Eventually, I stopped bothering visiting at all; I dreaded the slow, unwieldy, &#8220;clicking all over the place to move fractionally&#8221;, Flash experience.</p>
<p>One question I had was how much this was to do with the languages / platforms involved: did AJAX/CSS inspire the people working in it to make lighter-weight, faster, more abstracted core experience? Or is this just coincidence? There should be literally no reason why either of those platforms forced the designers to provide the experiences that way (Flash is capable of a much faster, snappier, fluid usability experience &#8211; it&#8217;s been excelling at this for years).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/12/24/farewell-metaplace/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Updated &#8211; Simple maths game</title>
		<link>http://t-machine.org/index.php/2009/12/10/updated-simple-maths-game/</link>
		<comments>http://t-machine.org/index.php/2009/12/10/updated-simple-maths-game/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 21:53:40 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://t-machine.org/?p=769</guid>
		<description><![CDATA[A year or so ago I did a roundup of the major free Web Analytics services. I was interested to see how Google Analytics had affected the market: was there a market left any more?
One of the trials I signed up for I found so useful I carried on using after I&#8217;d written the review. [...]]]></description>
			<content:encoded><![CDATA[<p>A year or so ago I did a roundup of the major free Web Analytics services. I was interested to see how Google Analytics had affected the market: was there a market left any more?</p>
<p>One of the trials I signed up for I found so useful I carried on using after I&#8217;d written the review. <a href="http://www.GetClicky.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.GetClicky.com/');">GetClicky</a> had a lot less information than some services &#8211; including GA &#8211; and less detail than the free tools I already run on all my websites (e.g. AWstats). But it was a lot more user-friendly, presenting the most critical information all at once on a single screen.</p>
<p>Today I finally started disabling GetClicky on my sites; the company has forceably blocked my site from their service. Why? Because I had a week of heavy traffic *while I was using the premium version which allows unlimited traffic*. That&#8217;s it. I stayed within their requirements, but I was banned anyway. That suggests to me that their company is in trouble&#8230;<br />
<span id="more-769"></span></p>
<h4>What went wrong?</h4>
<p>My <a href="http://AppRejections.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://AppRejections.com');">AppRejections.com</a> site &#8211; a small blog chronicling Apple&#8217;s submissions process for iPhone apps &#8211; got hit by a storm of traffic for one week. I&#8217;d only started the blog a week or so earlier, and I hadn&#8217;t got around to adding analytics to it yet (it only had 5-10 hits a day!).</p>
<p>Once the traffic surge started, I panicked and quickly setup a GetClicky account for it. As a new site it was signed up for the GetClicky &#8220;free premium trial&#8221;, which allows the site to have unlimited traffic (more on this later). The traffic surge ended a few days before the free trial ended.</p>
<p>The site is now running at less than half the &#8220;limit&#8221; for a non-premium account. Well within the company&#8217;s rules. But when the trial ended, I received an email telling me they were cancelling my free account too, because my site has too much traffic.</p>
<p>So, assuming it was an automated email, and that they&#8217;d understand if I explained:</p>
<blockquote><p>
My site doesn&#8217;t average that much any more &#8211; it was a few days blip.</p>
<p>Presumably the getclicky stuff will carry on working?
</p></blockquote>
<p>To which I got a snarky email from them &#8211; NB: they have the FULL DATA on this site, they could easily have used their brains and checked:</p>
<blockquote><p>
The limit for free traffic is 3,000 daily page views. Your site has been above this number for every single day of your trial except the last 2 days. That&#8217;s not a &#8220;blip&#8221; in my opinion!
</p></blockquote>
<p>Hmm. OK. Snarky, but at least human. Let&#8217;s explain in more detail what happened (which they could corroborate easily if they cared):</p>
<blockquote><p>
I accidentally got a massive spike of traffic on a tiny blog &#8211; I<br />
went from 10 hits a day to 50,000 a day &#8211; which made me realise that I<br />
had no stats tracking, so I enabled GC. That traffic is now gone, it<br />
was a flash-in-the-pan thing.
</p></blockquote>
<p>Response? They banned me. All stats stopped functioning.</p>
<h4>GetClicky&#8217;s problems</h4>
<p>When I reviewed the various options for analytics, the interesting problem was that GA was providing the most powerful service &#8230; and doing it for free. Arguably Google shouldn&#8217;t be allowed to do this &#8211; it&#8217;s standard monopolistic behaviour &#8211; but having done the review of alternatives, I think it&#8217;s fine.</p>
<p>GA is so incredibly difficult, complicated, and user-unfriendly that most people use it, but get less of out it than if they were using ANY of the direct competitors.</p>
<p>Google is providing an &#8220;everything but the kitchen-sink&#8221; product which is really targetted at corporates who can afford to pay full-time staff to customize and manage their GA setup. For the rest of the world, Google is offering nothing more than a lowest-common-denominator product; the field is wide-open.</p>
<p>The problem now for other analytics companies is how to monetize in this arena. There are some notable successes, such as the URL-shortening companies, who offer analytics on stats that are simply not physically accessible by GA.</p>
<p>But in my experience, most of the analytics companies today have poor strategies for how to thrive and grow in the shadow of GA.</p>
<h4>What are they doing today?</h4>
<p>GetClicky is a great example: there are only two significant advantages to their premium product:</p>
<ol>
<li>The adverts on the stats page disappear
<li>You are allowed more than 3,000 visitors / day
</ol>
<p>Normally, removing two small ads from a webpage wouldn&#8217;t be worth paying for (at least not since 2000; we&#8217;re all so used to seeing ads now that we don&#8217;t care). But GetClicky&#8217;s webpaged are rather badly written, and they block on downloading the advert-code. The advertisers webservers are often a lot slower than GetClicky&#8217;s, and you can often wait 10 seconds for a stats page to load, of which 9.9 seconds was waiting for the advert.</p>
<p>But, essentially, their value proposition comes down to:</p>
<blockquote><p>
A couple of trivial concepts in &#8220;forced monetization&#8221; that wouldn&#8217;t be out of place in the late 1990&#8217;s.
</p></blockquote>
<p>There seems to be no real attempt to find stuff that modern consumers care about. For instance, the screamingly obvious USP for GetClicky &#8211; they have the most user-friendly of all analytics services, bar none &#8211; is completely ignored by the company.</p>
<h4>Growth</h4>
<p>As a GetClicky user, I wanted to access their site on my iPhone. A year ago, you could access their website and get an iphone-only version of the site. It was using the fake webpages that pretend to look like an iPhone app.</p>
<p>Now, even that has been withdrawn, and their own support forums are full of people asking &#8220;when can we get an iPhone client?&#8221;, with answers dated late 2008 (over a year ago!) saying &#8220;we can&#8217;t tell you what, but something exciting will appear very soon now&#8221;.</p>
<p>This is ridiculous. Checking live website-analytics on the iPhone is a classic example of a service that users desperately want &#8230; and it fits perfectly with GetClicky&#8217;s USP as a company.</p>
<p>So &#8230; since I *am* an iPhone developer &#8230; I approached GetClicky&#8217;s Business Development guy, and asked him if there was an iPhone app in development. I added that if there weren&#8217;t, I&#8217;d like to go ahead and make one myself &#8211; either contracted to them, or as a standalone product that they&#8217;d get some secondary benefit from (it makes their service better) but they wouldn&#8217;t be able to charge for (because they didn&#8217;t own it).</p>
<p>A week passed, with not even a single brief email response.</p>
<h4>The nail in the coffin</h4>
<p>Go look at the front page of <a href="http://www.GetClicky.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.GetClicky.com/');">http://www.GetClicky.com/</a>. In passing, note the testimonials &#8211; all these are about usability (but the company refuses to make money out of the usability!).</p>
<p>Focus on the &#8220;who uses our service&#8221; part. Wow. Lots of famous, big name websites there. Um. No. None that the target audience is likely to know or care about.</p>
<p>What are they selling to here? Are they trying to go head to head with GA for corporate clients? Are they targetting marketing depts internally &#8211; NOT the technical depts &#8211; who just want ease-of-use? Are they going after the small website owners, who don&#8217;t have the time/money to learn how to use GA?</p>
<p>Honestly? I don&#8217;t think they have any idea themselves&#8230; Which is rather sad, because it gives me little confidence they&#8217;ll still be around 5 years from now.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/12/09/getclicky-sucks-an-analytics-service-going-out-of-business/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Heavy Traffic: 750,000 hits in 3 days</title>
		<link>http://t-machine.org/index.php/2009/11/29/heavy-traffic-750000-hits-in-3-days/</link>
		<comments>http://t-machine.org/index.php/2009/11/29/heavy-traffic-750000-hits-in-3-days/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 01:52:10 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

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

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

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

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

		<guid isPermaLink="false">http://t-machine.org/?p=747</guid>
		<description><![CDATA[This came from a perfectly nice-seeming person, so I took it as genuine. Until I discovered the site I&#8217;d been lured in to. Very disappointing.
Unsolicited email I received today:

Hi Adam,
I’m the editor of GamerBlips.com and MassiveBlips.com I wanted to share the news that T=Machine is a hit with our readers. If you haven’t checked out [...]]]></description>
			<content:encoded><![CDATA[<p>This came from a perfectly nice-seeming person, so I took it as genuine. Until I discovered the site I&#8217;d been lured in to. Very disappointing.</p>
<p>Unsolicited email I received today:</p>
<blockquote><p>
Hi Adam,<br />
I’m the editor of GamerBlips.com and MassiveBlips.com I wanted to share the news that T=Machine is a hit with our readers. If you haven’t checked out these two gaming sites you’ll see that we’re dedicated to highlighting the best videogame and MMO content on the Web every day.</p>
<p>I enjoyed your recent Focused Work-Hours post. Your commentary on the Studio Manifesto ideology was spot on.</p>
<p>We&#8217;re currently contacting our most popular featured bloggers on these sites and asking them to claim their blogs. By doing so, you&#8217;re making it easier for thousands of new fans to quickly find your blog and read all your great posts.</p>
<p>To quickly and easily claim your blog on GamerBlips.com, click this link:
</p></blockquote>
<p>What does that link do?</p>
<ol>
<li>Goes to a page with a big advert for GamerBlips.com
<li>Once you find the relevant image-link (hint: it&#8217;s neither a link nor a button, but a custom graphic), you can click-through to &#8220;claim my blog&#8221;
<li>Now you get asked for:
<ol>
<li>Name
<li>username
<li>password
<li>email address
<li>CAPTCHA
<li>&#8230;I think 1 or 2 other fields, but I&#8217;d stopped reading and closed the window at this point
</ol>
</ol>
<h4>My reaction</h4>
<p>Let&#8217;s get this straight: you want ME to signup to a site I never use, to promote YOUR site and create content that YOU monetize (but don&#8217;t pay me for!) &#8230; and &#8211; even though you already have my name, email address, and blog info &#8211; I have to jump through signup hoops for the &#8220;priviledge&#8221; of earning YOU extra money?</p>
<p>Some people / companies just really don&#8217;t understand the world, I think.</p>
<p>Or it&#8217;s a scam.</p>
<p>The site seemed to work OK, so I&#8217;m assuming it&#8217;s NOT a scam &#8211; just shocking naivety on the behalf of the people that run it.</p>
<h4>Just to be clear</h4>
<p>There is nothing in the entire website I can see that requires a username or password. It&#8217;s probably part of the fetish a lot of web-designers have for taking people&#8217;s email addresses at every opportunity.</p>
<p>Tragically, in my experience, a lot of them don&#8217;t even intend to monetize it in the future &#8211; they&#8217;re just making the user jump through hoops &#8220;because everyone else does it&#8221;.</p>
<h4>And, finally</h4>
<p>Good luck to the people running the site. Something like that could be quite useful. Although I can&#8217;t help wondering what it does that makes it significantly better than Technorati or Digg. Or any of the many clones of those two that appeared over the years.</p>
<p>e.g. I&#8217;d suggest you try <a href="http://www.devbump.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.devbump.com/');">http://www.devbump.com/</a> if you&#8217;re looking for this kind of thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/24/this-is-2009-stop-asking-for-fake-email-addresses/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OS X: never let someone else use your computer</title>
		<link>http://t-machine.org/index.php/2009/11/22/os-x-never-let-someone-else-use-your-computer/</link>
		<comments>http://t-machine.org/index.php/2009/11/22/os-x-never-let-someone-else-use-your-computer/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 15:04:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://t-machine.org/?p=740</guid>
		<description><![CDATA[I&#8217;ll do a follow-up post in a minute with the anecdote that lead me to this. But here&#8217;s the general opinion/analysis first.
Project history (skip if you know all about Warhammer Online and Mythic already)

Huge project (cost in excess of $50 million to develop), based on a 20-year-old IP that is known and loved around the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll do a follow-up post in a minute with the anecdote that lead me to this. But here&#8217;s the general opinion/analysis first.</p>
<h4>Project history (skip if you know all about Warhammer Online and Mythic already)</h4>
<blockquote><p>
Huge project (cost in excess of $50 million to develop), based on a 20-year-old IP that is known and loved around the world, the game launched last year to a big marketing campaign.</p>
<p>Initial sales figures were excellent.</p>
<p>First-month renewals were dire, the company lost large amounts of money, they laid off large numbers of staff, and the CEO quit/resigned. They are now (late 2009) into the key point in such a product&#8217;s lifecycle where it has one last chance to succeed.</p>
<p>The parent company has recently laid off 1500 staff across different countries and products, but also just bought a small studio for $400 million.
</p></blockquote>
<h4>The problem with Mythic/WAR today</h4>
<p>Here&#8217;s what&#8217;s going on right now (based on observation, guesswork, and personal experience of similar situations at other companies):</p>
<blockquote><p>
They are spending large amounts of money to acquire new customers, while simultaneously erecting artificial barriers to turn away those new customers.</p>
<p>They are running loud marketing campaigns to attract those who&#8217;ve already rejected the product, while simultaneously creating powerful negative publicity for their own product.
</p></blockquote>
<p>In other words, this is a company that has a failing product AND has a non-unified product strategy, and yet is continuing to spend heavily. This strategy is known as &#8220;pure, blind, Hope&#8221;. It looks extremely similar to what happened with TR towards the end of it&#8217;s (brief, painful) lifetime:</p>
<p>&#8220;let&#8217;s work harder, do more, spend more! Cross your fingers, chant the secret mantra, and hope it all turns out for the best!&#8221;</p>
<p>Hope is not a strategy. All that can happen is that they might get lucky despite all the mistakes; there might be enough good left that they can survive this foolishness long enough to ditch the deadweight and pull themeslves out of the mire.</p>
<h4>The inevitable PlayFish comment&#8230;</h4>
<p>Maybe this would be a good project for the new hires from PlayFish to start work on? The essentials are there &#8211; and if the product could be made to succeed, it is a huge cash-cow. It could single-handedly pay-off a lot of the debt on that $400 million&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/21/whats-wrong-with-ea-ea-mythic-and-the-fail-of-war/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Speaker Evaluations &#8211; GDC Austin 2009</title>
		<link>http://t-machine.org/index.php/2009/11/21/speaker-evaluations-gdc-austin-2009/</link>
		<comments>http://t-machine.org/index.php/2009/11/21/speaker-evaluations-gdc-austin-2009/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 21:59:18 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[network programming]]></category>
		<category><![CDATA[system architecture]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=738</guid>
		<description><![CDATA[Conferences don&#8217;t make these public.
But they should.
So &#8230; here are the evaluations (from the audience) for our panel session at AGDC 09.
Judge for yourself whether you want to attend any future sessions featuring us again (Adam Martin, Bill Dalton, Rick Lambright, Joe Ludwig, Marty Poulin).
Head Count: 74; Evaluations: 32 (43% response rate)

Overall rating of the [...]]]></description>
			<content:encoded><![CDATA[<p>Conferences don&#8217;t make these public.</p>
<p>But they should.</p>
<p>So &#8230; here are the evaluations (from the audience) for <a href="http://t-machine.org/index.php/2009/09/20/agdc-2009-killing-the-sacred-cows-of-mmo-technology/" >our panel session at AGDC 09</a>.</p>
<p>Judge for yourself whether you want to attend any future sessions featuring us again (Adam Martin, Bill Dalton, Rick Lambright, Joe Ludwig, Marty Poulin).</p>
<h4>Head Count: 74; Evaluations: 32 (43% response rate)</h4>
<ul>
<li>Overall rating of the presentation &#8211; 88% (AVG: 86%)
<li>How relevant was the topic to you? &#8211; 86% (AVG: 84%)
<li>How well did this class meet your expectations? &#8211; 94% (AVG: 84%)
<li>Would you recommend this session to a colleague? &#8211; 90% (AVG: 84%)
<li>Evaluate the speakers&#8217; ability to communicate &#8211; 94% (AVG: 86%)
<li>If there were visual aids (slides) how were they? &#8211; 74% (AVG: 60%)
</ul>
<p>All of those are above average, and I&#8217;m glad that a particularly high number would recommend the session to their colleagues.</p>
<p>It seems that we did particularly well on fulfilling the remit (very high number for &#8220;met expectations&#8221;), and that our speakers had an awesome ability to communicate (almost 10% higher than average for the other speakers at the conference).</p>
<h4>Audience Comments</h4>
<ol>
<li>The most entertaining session I attended, but didn&#8217;t sacrifice information value.
<li>Interesting format, I wouldn&#8217;t mind seeing more of this, but it is time consuming
<li>Good stuff
<li>Slow, confused start lost valuable time for Q&#038;A
<li>Should have done middleware
<li>Only 3 topics covered. Expected others
</ol>
<p>Comment 4 &#8211; yeah, something I&#8217;m unhappy about too, (it wasn&#8217;t our fault, it was the people running the conference), but there was nothing for it but to grin and carry on. Someone screwed-up the radio microphones, and we lost a lot of time at the start waiting for them to fix it. There was nothing we could do &#8211; they had connected the mics from a different room to *our* speakers. We didn&#8217;t find out until the person in the other room started talking, and it all came out through our speakers :(.</p>
<p>Comment 6 &#8211; we covered 4 topics (oops, audience can&#8217;t count :P). We all wanted to do more, but at GDC conferences, the organizers only give us 1-hour slots. With 4 speakers + moderator, I think that was pretty good, especially considering the time we lost at the start.</p>
<p>Perhaps someone will clone this format for a future conference (seems a good idea), and try to get a 2-hour slot for it?</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/21/speaker-evaluations-gdc-austin-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Focussed work-hours, and the Studio Manifesto</title>
		<link>http://t-machine.org/index.php/2009/11/15/focussed-work-hours-and-the-studio-manifesto/</link>
		<comments>http://t-machine.org/index.php/2009/11/15/focussed-work-hours-and-the-studio-manifesto/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 23:18:34 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[advocacy]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=735</guid>
		<description><![CDATA[David Sirlin&#8217;s just done a writeup of Flashbang studios recent experiment with work hours:

&#8220;The first part of their theory is that we really only get about 2 hours of seriously focused, amazing-quality work per day&#8211;if we&#8217;re lucky. Maybe you can get 2.5 or 3 sometimes, but that&#8217;s pushing it. There are so many distractions and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sirlin.net/blog/2009/11/5/making-games-faster.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.sirlin.net/blog/2009/11/5/making-games-faster.html');">David Sirlin&#8217;s just done a writeup of Flashbang studios recent experiment with work hours</a>:</p>
<blockquote><p>
&#8220;The first part of their theory is that we really only get about 2 hours of seriously focused, amazing-quality work per day&#8211;if we&#8217;re lucky. Maybe you can get 2.5 or 3 sometimes, but that&#8217;s pushing it. There are so many distractions and blockers, so many times when you&#8217;re too tired or hungry or upset about something, or whatever. Flashbang is saying just be real here: accept that you&#8217;re only going to be able to do amazing work for a short time each day. Knowledge work as it&#8217;s called, is the type of thing where you could spend 20 hours on a problem and not solve it, but just *one* hour of your fully charged genius-time could solve it.&#8221;
</p></blockquote>
<p>Unfortunately (tragically!), David&#8217;s set his blog to be &#8220;no comments&#8221;, so there&#8217;s no public followup discussion (you can try registering in the forums. On a different page. Not even linked. Have fun with that!)</p>
<p>There are serious flaws with taking general conclusions from this experiment &#8211; as someone from TCE pointed out, there&#8217;s probably some <a href="http://en.wikipedia.org/wiki/Hawthorne_effect" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Hawthorne_effect');">Hawthorne Effect</a> going on &#8211; but I think it&#8217;s an interesting data point to add to the <a href="http://t-machine.org/index.php/2009/03/02/manifesto-for-a-game-development-studio-or-any-creative-tech-company/" >game studio manifesto</a>. Specifically because it&#8217;s from a games company, and the particular set of changes they experimented with is different from most of those we&#8217;ve seen tried before.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/15/focussed-work-hours-and-the-studio-manifesto/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>So, who&#8217;s going to buy Zynga?</title>
		<link>http://t-machine.org/index.php/2009/11/10/so-whos-going-to-buy-zynga/</link>
		<comments>http://t-machine.org/index.php/2009/11/10/so-whos-going-to-buy-zynga/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 08:37:26 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[jussi vc deals europe]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[startup advice]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=732</guid>
		<description><![CDATA[(for the three people who haven&#8217;t heard yet, EA just bought PlayFish, for circa $400 million)
Three things I have to say on this:

Mainstream games industry people question it&#8217;s value
Yes, of course it was worth it
What Would Zynga Do?

Mainstream games industry people question it&#8217;s value
I&#8217;ve seen a lot of people from the mainstream industry (i.e. consoles, [...]]]></description>
			<content:encoded><![CDATA[<p>(for the three people who haven&#8217;t heard yet, EA just bought PlayFish, for circa $400 million)</p>
<p>Three things I have to say on this:</p>
<ol>
<li>Mainstream games industry people question it&#8217;s value
<li>Yes, of course it was worth it
<li>What Would Zynga Do?
</ol>
<h4>Mainstream games industry people question it&#8217;s value</h4>
<p>I&#8217;ve seen a lot of people from the mainstream industry (i.e. consoles, PC games, handheld etc &#8211; eerything EXCEPT iPhone and Facebook) incredulous, unconvinced it was worth it. This was the case even with the rumoured $250 million valuation from a month ago (c.f. <a href="http://www.gamesbrief.com/2009/10/six-reasons-why-250-million-for-playfish-is-a-steal/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesbrief.com/2009/10/six-reasons-why-250-million-for-playfish-is-a-steal/');">Nicholas Lovell&#8217;s post on that</a>).</p>
<p>There&#8217;s also some discussion over at TheChaosEngine (private forum for professionals in the games industry) on the same topic, with similar levels of scepticism about the value.</p>
<p>The main reference points are traditional games companies and their sale prices. That&#8217;s where this goes wrong &#8211; and it&#8217;s symptomatic of something that hampers the games industry: a lack of understanding of the business side of games. For most people in the industry, this doesn&#8217;t matter &#8211; they&#8217;re making games, not selling or funding them. But for the people managing games companies, far too many of them need to get an MBA and learn the essentials of sales, marketing, revenue, and shareholder-value &#8211; and how that applies to their own day-jobs.</p>
<h4>Yes, of course it was worth it</h4>
<p>Reproducing some of what I&#8217;ve already written on TCE, since it&#8217;s non-public:</p>
<p>There&#8217;s three things driving the valuation of PF:</p>
<ol>
<li>A solid business, in business-terms (c.f. <a href="http://www.gamesbrief.com/2009/11/why-eas-acquisition-of-playfish-is-still-a-steal-at-400-million/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.gamesbrief.com/2009/11/why-eas-acquisition-of-playfish-is-still-a-steal-at-400-million/');">Nicholas Lovell&#8217;s &#8220;6 reasons why Playfish is a steal at $400m&#8221;</a>)
<li>Quality content-producer, in games / media terms
<li>Consistent success, in comparitive terms
</ol>
<p>Playfish is in the top 3 companies dominating the Social Games sector. They are the ONLY one of those companies that set out to dominate the SG sector &#8211; the other two happened purely by accident. PF was architected to take over this sector, and is succeeding at it.</p>
<p>From a game-design perspective, the entire business model for Zynga and SGN has been &#8220;keep bailing!&#8221;, and they&#8217;ve so far bailed faster than they were sinking (where &#8220;bailing&#8221; means &#8220;using marketing and sales ability to make up for severe product deficiency&#8221;). That might sound like I&#8217;m being derogatory &#8211; but compare it to all the &#8220;worthy&#8221; games companies who bailed *slower* than they were sinking; at the end of the day, who&#8217;s the smart one?</p>
<p>But good sales/marketing strategies are easy to dissect and clone, in a way that good content is not.</p>
<p>Part of the demand for PF is that a lot of people look at it and say: this is SGN/Zynga, except they make good games. Yes, they&#8217;re not 1st &#8211; but any idiot could take PF&#8217;s current position, throw $50m of marketing budget at it, and easily surpass Zynga. They will own this market, sooner or later &#8211; PF is fundamentally strong where Z is fundamentally fragile. (although Z&#8217;s &#8220;fragile&#8221; is still an order of magnitude stronger than most traditional games companies).</p>
<p>Just to be clear: I have a lot of respect for Zynga and SGN, they&#8217;ve achieved a heck of a lot. But they&#8217;re sharks. They&#8217;ve always been sharks. Comparing to modern standards of game-design, they&#8217;ve never had great product. Instead, they&#8217;ve been extremely canny, aggressive, vicious, and cash-driven &#8211; and they&#8217;ve shown how successful and profitable you can be with those things. If someone had asked &#8220;how well can you do with a weak content company if you&#8217;re exceptional on the business-side?&#8221; then these companies boldly step forth and demonstrate that the answer is: &#8220;very well indeed&#8221;.</p>
<p>But this is a new, novel market. Maybe there&#8217;s nothing special about PlayFish?</p>
<p>Well, apart from thriving in a new market against some of the toughest competition in the world, look at the comparitives. Compare PF with &#8211; say &#8211; Kongregate. That was founded by the ex TD of Pogo after years at Pogo/EA, and was expected to recreate the success of Pogo and expand on it (hundreds of millions of dollars revenue). They&#8217;ve fallen a long, long way short. PF was founded years later and is now doing perhaps 20 times the revenue (just guessing based on Kong&#8217;s last funding round and how long ago it was).</p>
<p>PF&#8217;s success *looks like* it&#8217;s &#8220;probably&#8221; no accident. IIRC (and I haven&#8217;t checked, I&#8217;m going from memory here, so I might be very wrong) this is the same management team that built and later floated GluMobile. Putting that into perspective:</p>
<ol>
<li>these guys have ridden the wave of an emerging market to create on of the big successes
<li>these guys started from nothing and ended up with an IPO
<li>these guys then started all over again, from scratch, in a new market &#8230; and succeeded AGAIN.
<li>&#8230;and they did it very quickly
</ol>
<h4>What Would Zynga Do?</h4>
<p>This, then, is the million-dollar question: who&#8217;s going to buy Zynga?</p>
<p>Zynga have followed a strategy of buying-or-burying every small competitor who came along. As I noted above, despite being rich, hugely successful, and growing fast, they have some internal fragility that PF has never had. Where PF *could*, in theory, get more aggressive, Zynga is already barrelling along flat-out on that front. Where PF has a good reptuation they can trade on, Zynga has a poor one that&#8217;s not worth much now PF is part of EA.</p>
<p>If it had been a smaller company that bought PF, maybe &#8211; maybe &#8211; Zynga could have afforded to try a reverse-takeover to hoist themselves up, and hold on to their top spot in Social Games.</p>
<p>But EA/PF is too complementary a pairing; together, they&#8217;re too effective for Zynga to get away with that. Zynga *might* have hoped, with a different competitor, that acquisition by EA would lead to a breaking-up of the company&#8217;s value. EA has done this many a time to other acquisitions: small companies vanish when eaten by big ones. But as I noted above (and as Nicholas referred to when claiming that PF&#8217;s team could &#8220;turn around the tanker&#8221; that is EA), PF&#8217;s team have enough experience and personal wealth that it is very unlikely they&#8217;d disappear inside EA. They *might* retire (despite the golden handcuffs, many EA acquisitions have lead to de-facto retirement of their founders) &#8211; but PF is so young as a company that I doubt they&#8217;re tired of it just yet.</p>
<p>Looking back at Zynga, this seems to be a company that sees itself as the Alpha Male. I can&#8217;t believe they&#8217;d settle for second place. So, Zynga needs to be bought. And, unlike PF, Zynga may actually benefit from being dominated by their acquirer (try and wipe out some of that bad reputation; perhaps fundamentally alter the internals of the business, make it into a good content-generator? Where PF is adding Zynga-esque marketing and sales ability, could Zynga add PF-esque content-creation/content-quality ability?).</p>
<p>Who?</p>
<p>I&#8217;ve no idea :).</p>
<p>But, looking around, Zynga has greatly underperformed on iPhone. There are a lot of media and consumer giants around that expect to have no problems making lots of money on iPhone. Maybe that would make a good deal, someone already exploring, or set to explore, iPhone, who doesn&#8217;t need Zynga, but who could expand Zynga on to iPhone in a huge way. That could even let Zynga save some face in the deal (&#8221;there&#8217;s nothing about our business approach we wanted to change, it&#8217;s just that this was an opportunity to dominate TWO platforms instead of ONE&#8221;).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/10/so-whos-going-to-buy-zynga/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Twitter: redglassesapps</title>
		<link>http://t-machine.org/index.php/2009/11/09/twitter-redglassesapps/</link>
		<comments>http://t-machine.org/index.php/2009/11/09/twitter-redglassesapps/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 16:11:35 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=729</guid>
		<description><![CDATA[A new twitter account you can use to keep up with all the iPhone stuff I&#8217;m doing:
http://twitter.com/redglassesapps
We&#8217;ll be posting app releases and iphone-dev links.
]]></description>
			<content:encoded><![CDATA[<p>A new twitter account you can use to keep up with all the iPhone stuff I&#8217;m doing:</p>
<p><a href="http://twitter.com/redglassesapps" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://twitter.com/redglassesapps');">http://twitter.com/redglassesapps</a></p>
<p>We&#8217;ll be posting app releases and iphone-dev links.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/09/twitter-redglassesapps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online Games as a Billion-Dollar Business</title>
		<link>http://t-machine.org/index.php/2009/11/02/online-games-as-a-billion-dollar-business/</link>
		<comments>http://t-machine.org/index.php/2009/11/02/online-games-as-a-billion-dollar-business/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 11:05:41 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games industry]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=725</guid>
		<description><![CDATA[I spotted some good commentary on NCWest&#8217;s City of Heroes/Villains in 2009 today &#8211; modulo one or two quirks  (umm &#8230; does Cryptic have anything to do with CoX any more? I thought this is now NCsoft&#8217;s game; as the publisher, they bought out Cryptic&#8217;s ownership last year, no?).
But one theme in particular came [...]]]></description>
			<content:encoded><![CDATA[<p>I spotted <a href="http://unsubject.wordpress.com/2009/11/02/city-of-heroes-villains-2009-running-twice-as-fast-to-stay-at-the-same-place/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://unsubject.wordpress.com/2009/11/02/city-of-heroes-villains-2009-running-twice-as-fast-to-stay-at-the-same-place/');">some good commentary on NCWest&#8217;s City of Heroes/Villains in 2009 today</a> &#8211; modulo one or two quirks  (umm &#8230; does Cryptic have anything to do with CoX any more? I thought this is now NCsoft&#8217;s game; as the publisher, they bought out Cryptic&#8217;s ownership last year, no?).</p>
<p>But one theme in particular came up that I want to hilight: why is NCsoft Korea so callous / vicious / greedy / demanding / single-minded / stupid when it comes to the profitability of their games? (NB: those aren&#8217;t my terms, as you&#8217;ll see by the end of this post &#8211; but that&#8217;s how I&#8217;ve heard people describe them, while trying and failing to understand what&#8217;s going on)<br />
<span id="more-725"></span><br />
(<a href="http://ardwulfslair.wordpress.com/2009/09/16/yet-another-title-meet-the-ncsoft-axe/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://ardwulfslair.wordpress.com/2009/09/16/yet-another-title-meet-the-ncsoft-axe/');">here&#8217;s a post which really exemplifies that mystification people seem to experience w.r.t. NCKorea</a>)</p>
<p>It&#8217;s all about this: NCsoft&#8217;s typical annual revenues (but perhaps not in the way that you think).</p>
<blockquote><p>
2007 &#8211; 330 million dollars<br />
2009 &#8211; 470 million dollars (<a href="http://investing.businessweek.com/research/stocks/earnings/earnings.asp?ric=NCSCF.PK" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://investing.businessweek.com/research/stocks/earnings/earnings.asp?ric=NCSCF.PK');">estimated</a>)
</p></blockquote>
<h4>When profitability ceases to matter</h4>
<p>This is MBA 101 (i.e. anyone could work it out for themselves &#8211; MBA courses aren&#8217;t that difficult) but a lot of people never get a chance to see it in action in the real world, and so forget it.</p>
<p>Which of the following would you prefer:</p>
<ol>
<li>50% profit margin
<li>1% profit margin
</ol>
<p>Ah! but I missed out a key piece of information&#8230;Which of the following would you prefer:</p>
<ol>
<li>50% profit margin on $1million annual revenue
<li>1% profit margin on $1billion annual revenue
</ol>
<p>(of course, nearly everyone would prefer option 2 &#8211; $10million profit, instead of $0.5million profit)</p>
<p>Next question: is there ever a time in the real-world where you&#8217;d see a pair of alternatives that were so &#8230; extreme?</p>
<p>Well, yes &#8211; all the time. Every single day. Because the simple, bare facts for NCsoft Korea go something like this:</p>
<ol>
<li>We have $1 billion in the corporate bank account (actually I think their cash balance is something like $200 million &#8211; but they could *spend* $1 billion right now)
<li>Deciding to cancel a game project, or to fund one, requires 6 highly skilled staff and 1-2 months of analysis
<li>Our $1 billion of unspent cash is earning $40k in interest every week
<li>Lineage 2 earnt us $5 million in revenue every week; Aion earns similar amounts
</ol>
<p>Oh, and one more thing: It is very hard to find additional teams of &#8220;6 highly skilled staff&#8221; who are smart enough, insightful enough, and sufficiently experienced to make good decisions.</p>
<h4>Rational business management</h4>
<p>If you have a billion dollars to spend, and you can spend it on projects that make a billion dollars return, or ones that make a million dollars return &#8230; it is a complete waste of your time to spend even one minute per day looking at a million-dollar project.</p>
<blockquote><p>
Note: this is INDEPENDENT of the costs of development.
</p></blockquote>
<p>That&#8217;s the keystone of NCsoft Korea&#8217;s activity: they don&#8217;t care how much a project costs &#8211; they in fact have TOO MUCH MONEY already &#8211; they only care what revenues it can potentially bring in.</p>
<p>And they are absolutely right to act this way. In fact, since it&#8217;s a public company, they are legally required to act this way (or get sued by shareholders / investigated by government and thrown in jail).</p>
<p>The problem for most of us is that we never get to experience what it&#8217;s like to own more money than we can feasibly spend. Most of us have never imagined the possibility of coupling that &#8230; with a requirement to make maximal additional profit. I mean &#8230; what&#8217;s the point? If you&#8217;ve got more money than you can spend, who cares about profit?</p>
<h4>Why I don&#8217;t work for NCsoft any more</h4>
<p>Well, of course, there&#8217;s multiple reasons &#8211; and a broad array of contributory factors &#8211; but this is one of the mega-big-reasons why I left:</p>
<blockquote><p>
I could invest $1million in each of 50 projects, and be more likely to achieve $500 million revenue than NCsoft Korea was when investing $50million in a single project
</p></blockquote>
<p>I believe everything I&#8217;ve said in this article about the rational approach to NCsoft&#8217;s business &#8211; but the probabilities of backing a successful game at $1million are NOT the same as those for backing a game at $50 million. If you know what you&#8217;re doing, the chance of success at $1 million is much, much higher.</p>
<p>So much higher that when you aggregate 50 attempts, on average you achieve a bigger total revenue than the average for 1 attempt at $50 million.</p>
<p>Believing that, I spent a lot of time and energy pushing the company in that direction.  I pushed my projects that way, I helped others push their projects that way. In the end, there was too much inertia, some of it due to bad luck (Tabula Rasa failed while I was there), a lot of it due to internal corporate politics. Some of it simply due to incompetent people (who were eventually fired, &#8220;told to resign&#8221;, or made redundant &#8211; but too late)</p>
<p>When the company you work for has proved itself unwilling to work in the way you believe it should, it&#8217;s very hard to remain there and do a good job at the same time. I tried for a while, I pissed off a lot of people, and eventually realised I just couldn&#8217;t hack it. I was living a lie, and I was doing it badly, upsetting people, and letting people down. My poorly-hidden negativity quickly undermined all the positive things I was still getting done. It was time to go&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/11/02/online-games-as-a-billion-dollar-business/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>How to FAIL, from the world of Open Source: Eclipse</title>
		<link>http://t-machine.org/index.php/2009/10/30/how-to-fail-from-the-world-of-open-source-eclipse/</link>
		<comments>http://t-machine.org/index.php/2009/10/30/how-to-fail-from-the-world-of-open-source-eclipse/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 20:23:44 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[MMOG development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[startup advice]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=718</guid>
		<description><![CDATA[The problem
It&#8217;s a great piece of openness to put your bug lists in the public domain. It makes it easier for your customers and partners to make decisions that save you time because they can see what&#8217;s coming and when (and save you money in reduced support requests). It saves you money in that you [...]]]></description>
			<content:encoded><![CDATA[<h4>The problem</h4>
<p>It&#8217;s a great piece of openness to put your bug lists in the public domain. It makes it easier for your customers and partners to make decisions that save you time because they can see what&#8217;s coming and when (and save you money in reduced support requests). It saves you money in that you get free QA / testing from your users.</p>
<p>The downside is that it exposes to the world the places where you are especially incompetent, lazy, or just plain self-centred.</p>
<p>This is a recurring theme I&#8217;ve seen with corporates looking at both Open Source and also Web 2.0:</p>
<blockquote><p>
We say we&#8217;re the best, but secretly I believe we&#8217;re the worst; if we expose ourselves to the public, people will ridicule our mediocrity, and refuse to do business with us.</p>
<p>Also &#8230; I will probably get fired because my colleagues and my boss will finally realise what a clusterfuck I preside over on a daily basis
</p></blockquote>
<h4>Eclipse, and a tale of two bugs</h4>
<p>I was going to log two high-impact bugs that Eclipse has had for several years. Then I did a search on that area of Eclipse, and realised that the current Eclipse maintainers don&#8217;t give a **** about this whole section of the IDE &#8211; some of the core bugs we see every day were logged in 2001, and are still open:</p>
<blockquote><p>
<a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&#038;order=relevance+desc&#038;bug_status=__open__&#038;product=&#038;content=syntax+coloring" onclick="javascript:pageTracker._trackPageview('/outbound/article/https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&#038;order=relevance+desc&#038;bug_status=__open__&#038;product=&#038;content=syntax+coloring');">https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&#038;order=relevance+desc&#038;bug_status=__open__&#038;product=&#038;content=syntax+coloring</a>
</p></blockquote>
<h4>What you find when you do some basic research</h4>
<p>If you go looking through the bug history for some of the more &#8220;obvious&#8221; bugs there, you often find little gems of passive-aggressiveness from maintainers. That&#8217;s an exceptionally effective way of making sure people stop helping and supporting any Open-Source project&#8230;</p>
<p>You&#8217;ll also find endless re-logging of the same old bugs from 10 years ago, revolving around the basic problem that Eclipse lets you set everything you could possibly imagine &#8230; EXCEPT the colours that it prints text in.</p>
<p>(all IDEs let you set the colours; most dont give you enough control over the other parts; Eclipse fails on the basic challenge, and succeeds on the advanced challenge)</p>
<p>This wouldn&#8217;t be so bad, except that its default is very bright with low-contrast &#8211; i.e. very hard to read on laptops when outside, and bad to read for long periods of time. As of about 5 years ago, you are finally &#8220;allowed&#8221; to set the colours yourself &#8211; except that the app breaks if you do, because they &#8220;didn&#8217;t bother&#8221; to allow you to change the colours on 20% or so of things.</p>
<h4>Final thoughts</h4>
<p>The next time someone &#8211; especially at a corporate &#8211; resists openness and transparency &#8230; in any form &#8230; ask yourself this:</p>
<blockquote><p>
What have they got to hide?
</p></blockquote>
<p>Often, once you ask yourself that question of the right person at the right time, it very quickly becomes obvious what they&#8217;re hiding (if not why). A little more digging, and you can pry open the can of worms, and see what trouble they&#8217;ve been up to&#8230;</p>
<p>(Incidentally (and unsurprisingly), in the face of the point-blank refusal of Eclipse developers to make basic usability concessions across the board, I didn&#8217;t bother logging either of the two bugs I&#8217;d found)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/30/how-to-fail-from-the-world-of-open-source-eclipse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Firefox bug: Who deleted my cache?</title>
		<link>http://t-machine.org/index.php/2009/10/29/firefox-bug-who-deleted-my-cache/</link>
		<comments>http://t-machine.org/index.php/2009/10/29/firefox-bug-who-deleted-my-cache/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 18:11:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=715</guid>
		<description><![CDATA[There&#8217;s a major bug in Firefox (allthough I left at &#8220;normal&#8221; severity, leave it to the maintainers to judge) that&#8217;s been around since Version 2.0 (maybe earlier). I&#8217;m *pretty* sure that Mozilla (i.e. precursor to Firefox) did not have this bug. It&#8217;s been bugging me for years, and I&#8217;ve seen lots of people complain about [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a major bug in Firefox (allthough I left at &#8220;normal&#8221; severity, leave it to the maintainers to judge) that&#8217;s been around since Version 2.0 (maybe earlier). I&#8217;m *pretty* sure that Mozilla (i.e. precursor to Firefox) did not have this bug. It&#8217;s been bugging me for years, and I&#8217;ve seen lots of people complain about it, but the latest release still hasn&#8217;t fixed it, so I went hunting. No bugs found.</p>
<p>Not any more:</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=525266" onclick="javascript:pageTracker._trackPageview('/outbound/article/https://bugzilla.mozilla.org/show_bug.cgi?id=525266');">Bug 525266: Disk cache is deleted when browser restarts</a><br />
<span id="more-715"></span></p>
<h4>Summary</h4>
<p>When web browsers were invented, people noticed that &#8211; shock! horror! &#8211; the internet is SLOW.</p>
<p>So, all web browsers (ALL web browsers &#8211; IIRC it started with Internet Explorer 3.0, which was so amazingly fast thanks to its cache that everything else had to follow suit &#8211; but my memory is vague here, this was 15 years ago!) added a Disk Cache, that would keep a copy of each web page on your hard disk, and try to serve it up from the cache rather than download.</p>
<p>Because it was persisted to disk, this performance boost would survive even if your browser crashed (which they did more often back then &#8211; this is in the days before Windows NT, when Windows 95 would crash *a lot*).</p>
<p>Fast-forward to 2009: Firefox has a disk-cache, but it&#8217;s 99% useless. You (effectively) can ONLY use the FF cache if you have so little RAM that your webpages fit on the cache but not in RAM. This is extremely unlikely for most people.</p>
<p>Why?</p>
<p>Because someone on the FF team decided that everytime they restart the browser, they will hard-code it to delete your cache. What? Why? And where&#8217;s the option to turn it off?</p>
<p>(hint: there isn&#8217;t one. Type &#8220;about:config&#8221; into your address bar to see the complete set of options, and search for cache. Try turning everything to the max &#8211; no effect. Check by typing in &#8220;about:cache&#8221;, which tells you how big your caches are and lets you see what&#8217;s in them. After a restart &#8211; for any reason, including &#8220;the browser crashed, and autorestarted&#8221; &#8211; FF deletes its own cache. Stupid. Very stupid).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/29/firefox-bug-who-deleted-my-cache/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Eclipse v3.5 / OS X: Breaking the fonts is &#8220;non optional&#8221;</title>
		<link>http://t-machine.org/index.php/2009/10/29/eclipse-v3-5-os-x-when-sadistic-bastards-make-software/</link>
		<comments>http://t-machine.org/index.php/2009/10/29/eclipse-v3-5-os-x-when-sadistic-bastards-make-software/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 16:31:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[fixing your desktop]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=711</guid>
		<description><![CDATA[EDIT: the fix that worked for most (not all) people on the internet &#8230; doesn&#8217;t work for me. Even with reboot. I have no idea how to fix this now :(.
Look what they&#8217;ve done to the latest release of Eclipse: (old version at top &#8211; rendering CORRECTLY on high-res monitor; new version below &#8211; rendering [...]]]></description>
			<content:encoded><![CDATA[<p>EDIT: the fix that worked for most (not all) people on the internet &#8230; doesn&#8217;t work for me. Even with reboot. I have no idea how to fix this now :(.</p>
<p>Look what they&#8217;ve done to the latest release of Eclipse: (old version at top &#8211; rendering CORRECTLY on high-res monitor; new version below &#8211; rendering BLURRY on high-res monitor)<br />
<a href="https://t-machine.org/wp-content/uploads/Eclipse-aliasing-3.5.png" ><img src="https://t-machine.org/wp-content/uploads/Eclipse-aliasing-3.5.png" alt="Eclipse aliasing 3.5" title="Eclipse aliasing 3.5" width="596" height="492" class="aligncenter size-full wp-image-712" /></a><br />
(note the side-by-side compare with the old version &#8211; in the same screenshot &#8211; so presumably Eclipse 3.5 is using a different font-rendering call than Eclipse 3.4).</p>
<p>i.e. it&#8217;s now unusable on OS X. Unless you enjoy headaches and probable permanent damage to your eyesight (oh, you like that? OK. Good for you. Leave the rest of us &#8211; with decent LCD monitors &#8211; alone, please).<br />
<span id="more-711"></span><br />
Is there an option to disable this?</p>
<p>Nope.</p>
<p>But you can set an OS X *command-line* hack (yes, this is Apple &#8211; they don&#8217;t trust users to configure their own computers, so no GUI: instead, you have to do it the old-fashioned way).</p>
<blockquote><p>
defaults write org.eclipse.eclipse AppleAntiAliasingThreshold 20
</p></blockquote>
<p>And &#8230; breathe! Phew. Although, sadly, it apparently also requires a full reboot. Sigh. Microsoft solved this about 10 years ago. Never again tell me OS X is &#8220;vastly superior to Windows&#8221;. Anyway, fingers crossed&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/29/eclipse-v3-5-os-x-when-sadistic-bastards-make-software/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Entity Systems are the Future of MMOs Part 5</title>
		<link>http://t-machine.org/index.php/2009/10/26/entity-systems-are-the-future-of-mmos-part-5/</link>
		<comments>http://t-machine.org/index.php/2009/10/26/entity-systems-are-the-future-of-mmos-part-5/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 23:08:17 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[design]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=700</guid>
		<description><![CDATA[(Start by reading Entity Systems are the Future of MMOs Part 1)
It&#8217;s been a long time since my last post on this topic. Last year, I stopped working for a big MMO publisher, and since then I&#8217;ve been having fun doing MMO Consultancy (helping other teams write their games), and iPhone development (learning how to [...]]]></description>
			<content:encoded><![CDATA[<p>(Start by reading <a href="http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/" >Entity Systems are the Future of MMOs Part 1</a>)</p>
<p>It&#8217;s been a long time since my last post on this topic. Last year, I stopped working for a big MMO publisher, and since then I&#8217;ve been having fun doing MMO Consultancy (helping other teams write their games), and iPhone development (learning how to design and write great iPhone apps).</p>
<p>Previously, I posed some questions and said I&#8217;d answer them later:</p>
<ul>
<li>how do you define the archetypes for your entities?
<li>how do you instantiate multiple new entities from a single archetype?
<li>how do you STORE in-memory entities so that they can be re-instantiated later on?
</ul>
<p>Let&#8217;s answer those first.<br />
<span id="more-700"></span></p>
<h4>A quick warning&#8230;</h4>
<p>I&#8217;m going to write this post using Relational terminology. This is deliberate, for several reasons:</p>
<ul>
<li>It&#8217;s the most-correct practical way of describing runtime Entities
<li>It&#8217;s fairly trivial to see how to implement this using static and dynamic arrays &#8211; the reverse is not so obvious
<li>If you&#8217;re working on MMO&#8217;s, you should be using SQL for your persistence / back-end &#8211; which means you should already be thinking in Relations.
</ul>
<h5>&#8230;and a quick introduction to Relational</h5>
<p>If you know literally nothing about Relational data, RDBMS&#8217;s, and/or SQL (which is true of most game programmers, sadly), then here&#8217;s the idiot&#8217;s guide:</p>
<ol>
<li>Everything is stored either in arrays, or in 2-dimensional arrays (&#8221;arrays-of-arrays&#8221;)
<li>The index into the array is explicitly given a name, some text ending in &#8220;_id&#8221;; but it&#8217;s still just an array-index: an increasing list of integers starting with 0, 1, 2, 3 &#8230; etc
<li>Since you can&#8217;t have Dictionaries / HashMaps, you have to use 3 arrays-of-arrays to simulate one Dictionary. This is very very typical, and so obvious you should be able to understand it easily when you see it below. I only do it twice in this whole blog post.
<li>Where I say &#8220;table, with N columns&#8221;, I mean &#8220;a variable-length array, with each element containing another array: a fixed-size array of N items&#8221;
<li>Where I say &#8220;row&#8221;, I mean &#8220;one of the fixed-size arrays of N items&#8221;
<li>Rather than index the fixed-size arrays by integer from 0&#8230;N, we give a unique name (&#8221;column name&#8221;) to each index. It makes writing code much much clearer. Since the arrays are fixed-size, and we know all these column names before we write the program, this is no problem.
</ol>
<p>Beyond that &#8230; well, go google &#8220;SQL Tutorial&#8221; &#8211; most of them are just 1 page long, and take no more than 5 minutes to read through.</p>
<h4>How do you store all your data? Part 2: Runtime Entities + Components (&#8221;Objects&#8221;)</h4>
<p>We&#8217;re doing part 2 first, because it&#8217;s the bit most of us think of first. When I go onto part 1 later, you&#8217;ll see why it&#8217;s &#8220;theoretically&#8221; the first part (and I called it &#8220;1&#8243;), even though when you write your game, you&#8217;ll probably write it second.</p>
<h5>Table 3: all components</h5>
<p>(yes, I&#8217;m starting at 3. You&#8217;ll see why later ;))</p>
<table border="1">
<tr>
<th colspan="5">Table 3: components</th>
</tr>
<tr>
<td>component_id</td>
<td>official name</td>
<td>human-readable description</td>
<td>table-name</td>
</tr>
</table>
<p>There are N additional tables, one for each row in the Components table. Each row has a unique value of &#8220;table-name&#8221;, telling you which table to look at for this component. This is optional: you could instead use an algorithmic name based on some criteria like the official_name, or the component_id &#8211; but if you ever change the name of a component, or delete one and re-use the id, you&#8217;ll get problems.</p>
<h5>Table 4: all entities / entity names</h5>
<table border="1">
<tr>
<th colspan="5">Table 4 : entities</th>
</tr>
<tr>
<td>entity_id</td>
<td>human-readable label FOR DEBUGGING ONLY</td>
</tr>
</table>
<p>(really,you should only have 1 column in this table &#8211; but the second column is really useful when debuggin your own ES implementation itself!)</p>
<p>&#8230;which combines with:&#8230;</p>
<h5>Table 5: entity/component mapping</h5>
<table border="1">
<tr>
<th colspan="5">Table 5 : entity_components</th>
</tr>
<tr>
<td>entity_id</td>
<td>component_id</td>
<td>component_data_id</td>
</tr>
</table>
<p>&#8230;to tell you which components are in which entity.</p>
<p>Technically, you could decide not to bother with Table 4; just look up the &#8220;unique values of entity_id from table 5&#8243; whenever you want to deal with Table 4. But there are performance advantages for it &#8211; and you get to avoid some multi-threading issues (e.g. when creating a new entity, just create a blank entity in the entity table first, and that fast atomic action &#8220;reserves&#8221; an entity_id; without Table 4, you have to create ALL the components inside a Synchronized block of code, which is not good practice for MT code).</p>
<h5>Tables 6,7,8&#8230;N+5: data for each component for each Entity</h5>
<table border="1">
<tr>
<th colspan="5">Table N+5 : component_data_table_N</th>
</tr>
<tr>
<td>component_data_id</td>
<td>[1..M columns, one column for each piece of data in your component]</td>
</tr>
</table>
<p>These N tables store all the live, runtime, data for all the entity/component pairs.</p>
<h4>How do you store all your data?  Part 1: Assemblages (&#8221;Classes&#8221;)</h4>
<p>So &#8230; you want to instantiate 10 new tanks into your game.</p>
<p>How?</p>
<p>Well, you could write code that says:</p>
<blockquote><p>
<code><br />
int newTank()<br />
{<br />
	int new_id = createNewEntity();</p>
<p>	// Attach components to the entity; they will have DEFAULT values</p>
<p>	createComponentAndAddTo( TRACKED_COMPONENT, new_id );<br />
	createComponentAndAddTo( RENDERABLE_COMPONENT, new_id );<br />
	createComponentAndAddTo( PHYSICS_COMPONENT, new_id );<br />
	createComponentAndAddTo( GUN_COMPONENT, new_id );</p>
<p>	// Setup code that EDITS the data in each component, e.g:<br />
	float[] gunData = getComponentDataForEntity( GUN_COMPONENT, new_id );<br />
	gunData[ GUN_SIZE ] = 500;<br />
	gunData[ GUN_DAMAGE ] = 10000;<br />
	gunData[ GUN_FIRE_RATE ] = 0.001;<br />
	setComponentDataForEntity( GUN_COMPONENT, new_id, gunData );</p>
<p>	return new_id;<br />
}<br />
</code>
</p></blockquote>
<p>&#8230;and this is absolutely fine, so long as you remember ONE important thing: the above code is NOT inside a method &#8220;because you wanted it in an OOP class&#8221;. It&#8217;s inside a method &#8220;because you didn&#8217;t want to type it out every time you have a place in your code where you instantiate tanks&#8221;.</p>
<p>i.e. IT IS NOT OOP CODE! (the use of &#8220;methods&#8221; or &#8220;functions&#8221; is an idea that predates OOP by decades &#8211; it is coincidence that OOP *also* uses methods).</p>
<p>Or, in other words, if you do the above:</p>
<blockquote><p>
NEVER put the above code into a Class on its own; especially NEVER NEVER split the above code into multiple methods, and use OOP inheritance to nest the calls to &#8220;createComponet&#8221; etc.
</p></blockquote>
<p>But &#8230; it means that when you decide to split one Component into 2 Components, you&#8217;ll have to go through the source code for EVERY kind of game-object in your game, and change the source, then re-compile.</p>
<p>A neater way to handle this is to extend the ES to not only define &#8220;the components in each entity&#8221; but also &#8220;templates for creating new entities of a given human-readable type&#8221;. I previously referred to these templates as &#8220;assemblages&#8221; to avoid using the confusing term &#8220;template&#8221; which means many things already in OOP programming&#8230;</p>
<p>An assemblage needs:</p>
<h5>Table 1: all Assemblages</h5>
<table border="1">
<tr>
<th colspan="5">Table 1 : assemblages</th>
</tr>
<tr>
<td>assemblage_id</td>
<td>default human-readable label (if you&#8217;re using that label in Table 1 above)</td>
<td>official name</td>
<td>human-readable description</td>
</tr>
</table>
<h5>Table 2: assemblage/component mapping</h5>
<table border="1">
<tr>
<th colspan="5">Table 2 : assemblage_components</th>
</tr>
<tr>
<td>assemblage_id</td>
<td>component_id</td>
</tr>
</table>
<p>This table is cut-down version of Table 5 (entity/component mapping). This table provides the &#8220;template&#8221; for instantiating a new Entity: you pick an assemblage_id, find out all the component_id&#8217;s that exist for it, and then create a new Entity and instantiate one of each of those components and add it to the entity.</p>
<h5>Table 3: all components</h5>
<table border="1">
<tr>
<th colspan="5">Table 3: components</th>
</tr>
<tr>
<td>component_id</td>
<td>official name</td>
<td>human-readable description</td>
<td>table-name</td>
</tr>
</table>
<p>This is the same table from earlier (hence the silly numbering, just to make sure you noticed ;)) &#8211; it MUST be the same data, for obvious reasons.</p>
<h4>Things to note</h4>
<h5>DataForEntity( (entity-id) ) &#8211; fast lookup</h5>
<p>If you know the entity-id, you may only need one table lookup to get the data for an entire component (Table5 is highly cacheable &#8211; it&#8217;s small, doesn&#8217;t change, and has fixed-size rows).</p>
<h5>Splitting Table 5 for performance or parallelization</h5>
<p>When your SQL DB is too slow and you want to split to multiple DB servers, OR you&#8217;re not using SQL (doing it all in RAM) and want to fit inside your CPU cache, then you&#8217;ll split table 5 usually into N sub-tables, where N = number of unique component_id&#8217;s.</p>
<p>Why?</p>
<p>Because you run one System at a time, and each System needs all the components with the same component_id &#8211; but none of the components without that id.</p>
<h5>Isolation</h5>
<p>The entire data for any given system is fully isolated into its own table. It&#8217;s easy to print to screen (for debugging), serialize (for saving / bug reports), parallelize (different components on different physical DB servers)</p>
<h4>Metadata for editing your Assemblages and Entities</h4>
<p>a.k.a. &#8220;Programmer/Designers: take note&#8230;&#8221;</p>
<p>It can be tempting to add extra columns to the Entity and Assemblage tables. Really, you shouldn&#8217;t be doing this. If you feel tempted to do that, add the extra data as more COMPONENTS &#8211; even if the data is NOTHING to do with your game (e.g. &#8220;name_of_designer_who_wrote_this_assemblage&#8221;).</p>
<p>Here&#8217;s a great feature of Entity Systems: it is (literally) trivial for the game to &#8220;remove&#8221; un-needed information at startup. If, for instance, you have vast amounts of metadata on each entity (e.g. &#8220;name of author&#8221;, &#8220;time of creation&#8221;, &#8220;what I had for lunch on the day when I wrote this entity&#8221;) &#8211; then it can all be included and AUTOMATICALLY be stripped-out at runtime. It can even be included in the application, but &#8220;not loaded&#8221; at startup &#8211; so you get the benefits of keeping all the debug data hanging around, with no performance overhead.</p>
<p>You can&#8217;t do that with OOP: you can get some *similar* benefits by doing C-Header-File Voodoo, and writing lots of proprietary code &#8230; but &#8230; so much is dependent upon your header files that unless you really know what you&#8217;re doing you probably shouldn&#8217;t go there.</p>
<p>Another great example is Subversion / Git / CVS / etc metadata: you can attach to each Entity the full Subversion metadata for that Entity, by creating a &#8220;SubversionInformation&#8221; System / Component. Then at runtime, if something crashes, load up the SubversionInformation system, and include it in the crash log. Of course, the Components for the SubversionInformation system aren&#8217;t actually loader yet &#8211; because the system wasn&#8217;t used inside the main game. No problem &#8211; now you&#8217;ve started the system (in your crash-handler code), it&#8217;ll pull in its own data from disk, attach it to whatever entities are in-memory, and all works beautifully.</p>
<h4>Wrapping up&#8230;</h4>
<p>I wanted to cover other things &#8211; like transmitting all this stuff over the network (and maybe cover how to do so both fast and efficiently) &#8211; but I realise now that this post is going to be long enough as it is.</p>
<p>Next time, I hope to talk about that (binary serialization / loading), and editors (how do you make it easy to edit / design your own game?).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/26/entity-systems-are-the-future-of-mmos-part-5/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>How to sort an NSDictionary on iPhone</title>
		<link>http://t-machine.org/index.php/2009/10/25/how-to-sort-an-nsdictionary-on-iphone/</link>
		<comments>http://t-machine.org/index.php/2009/10/25/how-to-sort-an-nsdictionary-on-iphone/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 17:02:19 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=697</guid>
		<description><![CDATA[(because I googled it, and on the first page of hits I couldn&#8217;t find any copy/pasteable source for this common problem, here&#8217;s an answer with (poor) public domain source code)

In Objective-C / Cocoa, you cannot sort a dictionary (which is what I&#8217;m about to fix&#8230;). You cannot place any kind of persistent ordering onto a [...]]]></description>
			<content:encoded><![CDATA[<p>(because I googled it, and on the first page of hits I couldn&#8217;t find any copy/pasteable source for this common problem, here&#8217;s an answer with (poor) public domain source code)<br />
<span id="more-697"></span><br />
In Objective-C / Cocoa, you cannot sort a dictionary (which is what I&#8217;m about to fix&#8230;). You cannot place any kind of persistent ordering onto a dictionary.</p>
<p>(this is a common requirement in modern software, such that you expect any standard lib to contain a core class to handle it. For instance, Java&#8217;s LinkedHashMap&#8230;)</p>
<p>I would prefer a standard-lib solution, especially since it&#8217;ll have all the features, and probably no bugs &#8211; and it&#8217;s more likely to be optimized for performance. But, since Apple hasn&#8217;t given us one, here&#8217;s the lazy-and-quick way to do it:</p>
<ol>
<li>Make a class that includes an Array and a Dictionary
<li>copy/paste the method signatures from NSDictionary and NSMutableDictionary into your new class
<li>implement each method with a call to your embedded dictionary
<li>EXCEPT for the methods:
<ul>
<li>allKeys
<li>setObject:forKey:
<li>setValue:forKey:
<li>removeAllObjects
<li>removeObjectForKey:
<li> &#8230;[and all the methods to do with enumeration and init*  - but I don't have time to do all those, too much hassle]&#8230;
</ul>
<li>&#8230;for those methods, update the embedded Array as well, and for &#8220;allKeys&#8221; specifically: return a copy of the Array, not the keys from your dictionary
</ol>
<p>It&#8217;s that easy &#8230; and yet, because Apple didn&#8217;t do it, you have to re-write this class every time you start a new project. Sigh.</p>
<p>There&#8217;s one issue with this &#8211; for the allKeys method, I did a &#8220;copy&#8221;, which I probably shouldn&#8217;t have (I wasn&#8217;t really thinking carefully about i), which means you&#8217;ll have to remember to release the reference you receive &#8211; or else change that to:</p>
<blockquote><p>
return underlyingArray;
</p></blockquote>
<p>or:</p>
<blockquote><p>
return [[underlyingArray copy] autorelease];
</p></blockquote>
<p>or, perhaps best of all:</p>
<blockquote><p>
return [NSArray arrayWithContentsOfArray: underlyingArray]; // returns an Immutable result; nice and safe!
</p></blockquote>
<p>Here&#8217;s my quick hack code, in its entirety:</p>
<blockquote><p>
<code><br />
#import "SortedDictionary.h"</p>
<p>@implementation SortedDictionary<br />
@synthesize underlyingArray, underlyingDictionary;</p>
<p>-(id) init<br />
{<br />
	if( self = [super init] )<br />
	{<br />
		underlyingArray = [[NSMutableArray alloc] init];<br />
		underlyingDictionary = [[NSMutableDictionary alloc] init];<br />
	}<br />
	return self;<br />
}</p>
<p>-(id)objectForKey:(id)aKey<br />
{<br />
	return [underlyingDictionary objectForKey:aKey];<br />
}</p>
<p>-(id)valueForKey:(NSString *)key<br />
{<br />
	return [underlyingDictionary valueForKey:key];<br />
}</p>
<p>-(NSUInteger)count<br />
{<br />
	return [underlyingDictionary count];<br />
}</p>
<p>/** Ordered... */<br />
-(NSArray *)allKeys<br />
{<br />
	return [underlyingArray copy];<br />
}</p>
<p>-(NSArray *)allValues<br />
{<br />
	return [underlyingDictionary allValues];<br />
}</p>
<p>/** Preserves current order, or does ordered ADD if the key isn't already present */<br />
-(void)setObject:(id)anObject forKey:(id)aKey<br />
{<br />
	if( [underlyingDictionary objectForKey:aKey] == nil )<br />
	{<br />
		[self addObject:anObject forKey:aKey];<br />
	}<br />
	else<br />
	{<br />
		[underlyingDictionary setObject:anObject forKey:aKey];<br />
	}<br />
}</p>
<p>/** Preserves current order, or does ordered ADD if the key isn't already present */<br />
-(void)setValue:(id)value forKey:(NSString *)key;<br />
{<br />
	if( [underlyingDictionary objectForKey:key] == nil )<br />
	{<br />
		[self addValue:value forKey:key];<br />
	}<br />
	else<br />
	{<br />
		[underlyingDictionary setValue:value forKey:key];<br />
	}<br />
}</p>
<p>-(void)removeObjectForKey:(id)aKey<br />
{<br />
	[underlyingArray removeObject:aKey];<br />
	[underlyingDictionary removeObjectForKey:aKey];<br />
}</p>
<p>-(void)removeAllObjects<br />
{<br />
	[underlyingArray removeAllObjects];<br />
	[underlyingDictionary removeAllObjects];<br />
}</p>
<p>-(void)addObject:(id)anObject forKey:(id)aKey<br />
{<br />
	if( [underlyingDictionary objectForKey:aKey] == nil )<br />
	{<br />
		[underlyingArray addObject:aKey];<br />
		[underlyingDictionary setObject:anObject forKey:aKey];<br />
	}<br />
	else<br />
	{<br />
		NSLog( @"[%@] ERROR: attempted to addObject a key that already exists in this dictionary: %@", [self class], aKey );<br />
	}<br />
}</p>
<p>-(void)addValue:(id)value forKey:(NSString *)key<br />
{<br />
	if( [underlyingDictionary objectForKey:key] == nil )<br />
	{<br />
		[underlyingArray addObject:key];<br />
		[underlyingDictionary setValue:value forKey:key];<br />
	}<br />
	else<br />
	{<br />
		NSLog( @"[%@] ERROR: attempted to addValue a key that already exists in this dictionary: %@", [self class], key );<br />
	}<br />
}</p>
<p>@end<br />
</code>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/25/how-to-sort-an-nsdictionary-on-iphone/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to make an iPhone static library &#8211; part 2</title>
		<link>http://t-machine.org/index.php/2009/10/14/how-to-make-an-iphone-static-library-part-2/</link>
		<comments>http://t-machine.org/index.php/2009/10/14/how-to-make-an-iphone-static-library-part-2/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 00:01:20 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=683</guid>
		<description><![CDATA[Intro
This is NOT a perfect way of doing static libs on iPhone; however, it does work &#8211; I&#8217;ve used it in iPhone apps that are on the App Store right now &#8211; and I&#8217;ve been sitting on this post for over a month, improving it, tweaking it. It&#8217;s not perfect, but I think it&#8217;s better [...]]]></description>
			<content:encoded><![CDATA[<h4>Intro</h4>
<p>This is NOT a perfect way of doing static libs on iPhone; however, it does work &#8211; I&#8217;ve used it in iPhone apps that are on the App Store right now &#8211; and I&#8217;ve been sitting on this post for over a month, improving it, tweaking it. It&#8217;s not perfect, but I think it&#8217;s better to put it out onto Google than to keep it quiet any longer.</p>
<p>NB: I&#8217;m not a Mac developer; the iPhone is relatively new to me. I apologize in advance for any stupid mistakes I make here where I should have known better!</p>
<p>PS: If you don&#8217;t read this blog normally, you might be dismayed at the amount of whinging about Apple&#8217;s less-than-perfect code and documentation in this post. Sorry. Let me just say that I am *trying* to be even-handed &#8211; and that that requires not only praising Apple, but also calling out their bad acts where relevant. I and many of my friends and ex-colleagues have suffered hours and days of wasted time &#8211; ON THIS TOPIC ALONE &#8211; because of tiny things that Apple staff &#8220;forgot to mention&#8221; or &#8220;didn&#8217;t bother testing&#8221;. It&#8217;s understandable, but it&#8217;s also painful.<br />
<span id="more-683"></span></p>
<h4>A recap of what we need</h4>
<p>You might want to read <a href="http://t-machine.org/index.php/2009/10/13/how-to-make-an-iphone-static-library-part-1/" >How to make an iPhone static library &#8211; part 1</a> if you haven&#8217;t already &#8211; it goes into much more detail on what we need, and why.</p>
<p>Recapping the key points:</p>
<ul>
<li>One (or more&#8230;) &#8220;libSOMETHING.a&#8221; files that we can include in other projects
<li>Must work both in Simulator and on Device
<li>Must be distributable with NO SOURCE CODE (even if we ourselves have the source code &#8211; this makes version control much simpler!)
<li>Must be implemented ENTIRELY inside Xcode &#8211; no external tools or dependencies
<li>Must work on iPhone OS 2.x and iPhone OS 3.x
</ul>
<h4>The Trick</h4>
<p>On OS 2.x, I didn&#8217;t need to do this, but with 3.x, Apple hard-coded some new bugs into Xcode, making Xcode even harder to use.</p>
<p>Here&#8217;s the bug:</p>
<blockquote><p>
In the Build Settings for a Target, Xcode for iPhone OS 3.x and above will IGNORE the architecture instructions you give it
</p></blockquote>
<p>This means that &#8220;Compile these architectures&#8221; (a list of names) and &#8220;Only build the selected architecture&#8221; (a checkbox) are both ignored. You MUST treat these settings as &#8220;FYI only&#8221;, and be careful not to set them manually &#8211; your settings will be silently overridden. I&#8217;ve tested this by editing the Xcode .xcodeproj files (XML format) manually, and finding that they are ignored no matter what.</p>
<p>Instead, you MUST make all your architecture-configuration inside the &#8220;Base SDK&#8221; setting, and then NEVER EVER use anything EXCEPT the &#8220;Base SDK&#8221; setting in the main Build drop-down (the one you can see at all times when in the main Xcode view, up at the top left, just underneath the red, yellow, and green buttons (close window/minimize window/maximize window).</p>
<p>Unfortunately, this makes that drop-down ENTIRELY USELESS. Crap.</p>
<p>(UPDATE: <a href="http://stackoverflow.com/questions/1162336/building-iphone-sdk-2-x-targets-with-base-sdk-3-0-when-linking-static-libraries" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://stackoverflow.com/questions/1162336/building-iphone-sdk-2-x-targets-with-base-sdk-3-0-when-linking-static-libraries');">See this link for another entire class of problems caused by the SAME major bug in Xcode for iPhone 3.0</a>)</p>
<p>But &#8230; there&#8217;s a workaround!</p>
<p>You can create MULTIPLE values for Base SDK, and use the master drop-down to choose between them.</p>
<p>How?</p>
<p>By (manually) creating new Target&#8217;s.</p>
<p>Ultimately, we create a unique Target for every set of Build Settings we need. In the simple version, all we have to do is create one Target for the Device, and a separate Target for the Simulator. However, ultimately, you want (MUST!) create a separate Target for each combination of:</p>
<ol>
<li>Device / Simulator
<li>Debug / Release
<li>Main app / Lite app
</ol>
<p>&#8230;because if you don&#8217;t, then it&#8217;s highly likely you&#8217;ll accidentally change that drop-down one day, your project will screw up completely, and you&#8217;ll have no idea what&#8217;s going on. I have helped lots of people who broke their projects by using the master drop-down in OS 3.x. So many that I&#8217;m sure Apple *never* bothered to test this drop-down with basic Unit Tests, sadly, or they would have noticed quickly that they&#8217;d broken the settings that populate it.</p>
<h4>Creating your Targets</h4>
<p>First, understand that there are two &#8220;sets&#8221; of targets in Xcode (and there is NO way of telling the difference between them &#8211; this is a classic Xcode design bug).</p>
<p>There&#8217;s the Targets you can see &#8211; in the Targets twisty &#8211; and then there&#8217;s the &#8220;root&#8221; or &#8220;default&#8221; Target, which you access by scrolling to the top of the &#8220;Groups &#038; Files&#8221; pane, and clicking on the first line (should be the same name as your Xcode Project). ALL values in the default target are copied into the real Targets, and then any &#8220;local overrides&#8221; in the real Targets are applied.</p>
<p>Usually, you only have 3-10 settings in the real Targets &#8211; all the rest is inherited from the default target.</p>
<p>Create new Targets by right-clicking on the Targets twisty and selecting &#8220;Add&#8230; -> New Target&#8230;&#8221; and selecting &#8220;Static Library&#8221; from the GUI. Make sure to give the new static lib a unique name!</p>
<p>MAKE SURE you do not re-use the same product name / target name / executable name that the original project&#8217;s target had (again, just trust me: this exposes so many horrible bugs in Xcode that you simply DO NOT want to go there&#8230;). Standard practice is to make TWO new Targets, include &#8220;Device&#8221; in the name of one of them, and &#8220;Simulator&#8221; in the name of the other one, and delete the original one (but only after you&#8217;ve tested the new projects are fully working!)</p>
<p>NB: Xcode has hard-coded a &#8220;magic&#8221; relationship between the Target name and the Project name and the Application Binary name. Just don&#8217;t go there. I&#8217;ve tried; it&#8217;s a horrible hacky mess, and if you screw it up you have to manually edit Xcode&#8217;s behind-the-scenes text files to fix it &#8211; Xcode is hard-coded to prevent you from editing it yourself, so just avoid it all and keep all your Target names &#8220;unique&#8221;.</p>
<h4>One Target for device, one Target for simulator</h4>
<p>On iPhone OS 2.x, you could create a single file, e.g. &#8220;libMY-LIBRARY.a&#8221; (NB: other standards, not important here, dictate that the filename must begin &#8220;lib&#8221; and must end &#8220;.a&#8221;), which contained both the Device binary and the Simulator binary; this is no longer possible on OS 3.x.</p>
<p>Instead, you MUST create two separate binaries. If you look at the mainstream 3rd-party libraries (e.g. AdMob), you&#8217;ll see that they give you TWO .a files, one &#8220;something-something-device.a&#8221; and the other &#8220;something-something-simulator.a&#8221;. This is because they&#8217;re using separate Xcode Target&#8217;s for Simulator and Device.</p>
<p>In each of those Target&#8217;s, simply:</p>
<ol>
<li>Click on the Target name in the Groups &#038; Files pane
<li>Press command-I
<li>Go to the &#8220;Build&#8221; tab
<li>Change the Base SDK (It&#8217;s right at the top of the list) to whatever is appropriate &#8211; Simulator 2.2.1, or Device 3.0, or whatever
</ol>
<p>Now you have some &#8220;unconfigured&#8221; new Targets, but you need to add all your source files to them, or they will do nothing.</p>
<p>This is a bit trickier, because you have to: Close your eyes, cross your fingers (because there&#8217;s no way you can know if this will work or not &#8211; this being Apple (useless at UI design), and this being Xcode (highly random on what it does for drag/drop)). However, *trust me*: it just so happens that Xcode will 100% of the time in this situation do what you actually wanted: duplicate all the links to the files and move the duplicates to the place you wanted them.</p>
<p>So&#8230;</p>
<ol>
<li>Select everything in the original Target&#8217;s sub-groups, one sub-group at a time, and drag them to the equivalent sub-group of each of the new targets.
</ol>
<h4>Making life simpler: screw Apple&#8217;s (broken) Configurations</h4>
<p>Configurations are a pain in the ass &#8211; now that OS 3.x has broken the Base SDK and Architecture settings, they don&#8217;t really work; it&#8217;s far, FAR easier just to delete them.</p>
<p>So &#8230;:</p>
<ol>
<li>select the root Target (first item in the Groups &#038; Files pane)
<li>hit command-I
<li>Go to the &#8220;Configurations&#8221; tab
<li>select each of them and press &#8220;Delete&#8221; button at bottom left of the screen, until there&#8217;s only one left
</ol>
<p>Of course, now you&#8217;ve lost the ability to dynamically change between &#8220;normal&#8221; and &#8220;highly optimized&#8221; compiles.</p>
<p>Or .. have you?</p>
<p>No, of course you haven&#8217;t &#8211; you just need to create some more Targets!</p>
<p>Assuming you deleted the &#8220;Release&#8221; Configurations, create 2 new Targets: &#8220;Release Simulator&#8221; and &#8220;Release Device&#8221;. Set them as per the original targets (you can in fact create them FROM the original Targets &#8211; although Apple has removed the keyboard shortcut, you can select each existing Target, and from the Edit menu select &#8220;Duplicate&#8221;; this is a good idea, as it spares you from manually setting the Base SDK and possibly getting it wrong).</p>
<p>Unfortunately, you will need to manually re-create the &#8220;Release&#8221; custom settings.</p>
<p>Create a new, virgin, Xcode project, set it to Release mode, and then open the Build Settings. From the second drop-down at top-left, titled &#8220;Show:&#8221;, select &#8220;Settings Defined at This Level&#8221;, to see ONLY the things that are &#8220;unique&#8221; to Release builds &#8211; and copy the changed settings across to your manually-created &#8220;Release&#8221; Targets.</p>
<h4>How do I use this to Build?</h4>
<p>The drop down at top-left of Xcode&#8217;s main window should now:</p>
<ol>
<li>NOT have multiple things in the &#8220;Active Configurations&#8221; section &#8211; instead it should have only one, either &#8220;Debug&#8221; (or &#8220;Release&#8221; &#8211; which ever one you didn&#8217;t delete). NB: this DOES NOT MEAN ANYTHING
<li>SHOULD have multiple things in the &#8220;Active Target&#8221; section &#8211; one for each different thing you think you want to build
<li>WILL have lots of things in the &#8220;Active SDK&#8221; section
</ol>
<p>This is VERY IMPORTANT:</p>
<blockquote><p>
ALWAYS leave the &#8220;Active SDK&#8221; set to &#8220;Base SDK&#8221;; this is to workaround the bug(s) in the version of Xcode that came with iPhone OS 3.x; you may be tempted to change it BUT DO NOT! Instead, only ever change the Active Target
</p></blockquote>
<p>This way, all you have to do is glance at the Active Target, and you will always &#8211; ALWAYS &#8211; know exactly what Xcode is going to build right now.</p>
<p>Eventually, Apple will (hopefully) fix the new bugs they introduced for OS 3.x, and we can go back to using the drop-down to select Configurations, SDK&#8217;s, etc &#8211; but, actually, now that I&#8217;m used to using Targets, I see it&#8217;s much, much easier &#8211; and a lot less error-prone. Basically, Apple&#8217;s GUI is too poorly designed, and it&#8217;s just easier to have ONE thing to click on, rather than lots of them. So, I think I&#8217;ll stick to it from now on.</p>
<h4>How do I use this in a separate project?</h4>
<p>Still a lot of work to do, I&#8217;m afraid&#8230;</p>
<p>But first of all, you need to right-click EACH of the items in the Products twisty (there will be exactly one for each Target you have), and select &#8220;Reveal in Finder&#8221;.</p>
<p>Then, you need to drag/drop the revealed files &#8211; one by one &#8211; into the APP project.</p>
<p>NB: a lot of people have their Xcode setup such that these binaries will be located in DIFFERENT directories &#8211; that&#8217;s why you should use &#8220;Reveal in Finder&#8221; to make sure that you are *guaranteed* to be drag/dropping the correct file. I&#8217;ve confidently dragged the wrong file before (an old build from a previous setup), and wasted hours trying to figure out why none of my source changes seemed to show up in the app. Oh, how I laughed when I worked out the cause (actually, I nearly cried).</p>
<h4>Libraries: the problem(s)</h4>
<p>First, you need to copy all the Header files. Frameworks do this for you &#8211; but, remember: Apple has banned us from using Frameworks on iPhone :(.</p>
<p>Second, you need to implement some minor manual fixes to make Objective C work correctly. Objective C is very, very hacky, and with external libraries you need to set an extra linker flag to make it link the libs correctly.</p>
<h4>Copying the header files</h4>
<p>More bugs. Xcode&#8217;s &#8220;Add Files&#8221; dialog box has multiple bugs that have been around for multiple versions of Xcode. I&#8217;ve found only one way of reliably adding header files for external libs &#8211; and it&#8217;s not perfect :(.</p>
<ol>
<li>create a folder on your hard disk, inside the LIBRARY proejct, called &#8220;[library] headers&#8221; where [library] is the name of your library
<li>inside Xcode, manually delete all headers from your LIBRARY project &#8211; but do NOT click &#8220;also move to trash&#8221;
<li>manually move all header files (using Finder) into the &#8220;library headers&#8221; sub-folder
<li>inside Xcode, select &#8220;add existing files&#8221; and re-add all the headers
<li>&#8230;now go to your APP project&#8230;
<li>drag/drop the &#8220;library headers&#8221; folder from Finder into your APP project inside Xcode
<li>you MUST select &#8220;Recursively create groups for any added folders&#8221; &#8211; there are bugs in the other option that cause it to break your Xcode project
<li>you SHOULD NOT select &#8220;Copy items into destination group&#8217;s folder&#8221;; any changes to your header files inside LIBRARY project will automatically be picked up by APP project; however, if you delete the source for LIBRARY project (e.g. if you do a CVS checkin and then delete the working directory), then the APP project will refuse to build any more&#8230; it&#8217;s up to you.
</ol>
<p>What&#8217;s wrong with this?</p>
<p>Only one thing: when you create new Header files in LIBRARY, they do not automatically appear inside APP. You have to manually drag/drop them from finder into Xcode when it has APP project open.</p>
<p>However, at least Xcode does automatically create a Group named &#8220;[library] headers&#8221; and place all the files inside that group, which is nice&#8230;</p>
<h4>Fixing the Objective C linker</h4>
<p>If you don&#8217;t do this, then several things go wrong:</p>
<ol>
<li>Interface Builder appears to work, but any time your NIB files reference a LIBRARY class, they will cause your APP to crash with &#8220;impossible&#8221; line numbers and &#8220;impossible&#8221; error messages&#8221;
<li>Funky code in your library that uses custom Categories on Apple classes will fail to run at all
</ol>
<p>Apple (and sites you&#8217;ll find on Google) warn you about the second item above, but I only discovered the first item by accident.</p>
<p>UPDATE: To fix the first item:</p>
<p>UPDATE: &#8230;well, the approach for the second used to work for me, but now it dosn&#8217;t any more. Maybe a bug in the latest SDK update from apple, may be something else enitrely. </p>
<p>To fix the second item:</p>
<ol>
<li>open up your APP project
<li>go to the root Target
<li>in the Build Settings page type: &#8220;Other Linker Flags&#8221; into the search box. You should get one result
<li>double-click on the RHS, and click the &#8220;+&#8221; button on the dialog that pops up
<li>type &#8220;-ObjC&#8221; into the second dialog, and OK out of there
</ol>
<p>UPDATE: <a href="http://developer.apple.com/mac/library/qa/qa2006/qa1490.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://developer.apple.com/mac/library/qa/qa2006/qa1490.html');">here&#8217;s a link to Apple&#8217;s official explanation of the need for the -ObjC flag</a></p>
<p>I have heard rumours that you might also need &#8220;-all_load&#8221; for some libraries &#8211; but I&#8217;ve not investigated that myself, and I&#8217;ve not (yet) encountered situations where it&#8217;s needed, sorry!</p>
<p>UPDATE: With iPhone OS 3.0 and above, you often DO need the -all_load flag &#8211; it&#8217;s due to bugs in Apple&#8217;s shipped SDK for 3.0. Oops.</p>
<h4>UPDATE: Other problems with Interface Builder</h4>
<p>If you do NOT manually copy all your header files across to the application project, IB will stop working.</p>
<p><a href="http://stackoverflow.com/questions/1058766/interface-builder-cant-see-classes-in-a-static-library" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://stackoverflow.com/questions/1058766/interface-builder-cant-see-classes-in-a-static-library');">Here&#8217;s an explanation of how to trivially fix this in just a few clicks</a></p>
<p>That&#8217;s a great feature of IB. That&#8217;s terrible GUI design from Apple, though: the only way you&#8217;d ever find out about it is if someone else told you first. I&#8217;ve not yet heard of this technique anywhere except on that one linked page above. YMMV&#8230;</p>
<h4>Conclusion</h4>
<p>Hopefully I haven&#8217;t missed anything out. If I have, I&#8217;ll re-write the post as necessary when people point out what&#8217;s missing.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/14/how-to-make-an-iphone-static-library-part-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to make an iPhone static library &#8211; part 1</title>
		<link>http://t-machine.org/index.php/2009/10/13/how-to-make-an-iphone-static-library-part-1/</link>
		<comments>http://t-machine.org/index.php/2009/10/13/how-to-make-an-iphone-static-library-part-1/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:48:01 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=681</guid>
		<description><![CDATA[I&#8217;ve now deployed iPhone static libraries in two (live) applications, and numerous updates.
This is a process that is seemingly (*) 90% undocumented by Apple, despite being (IMHO) absolutely essential for any professional iPhone developer.
[(*) - if there's docs, then I've not found it in over 6 months of googling, searching Xcode doc libraries, and asking [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve now deployed iPhone static libraries in two (live) applications, and numerous updates.</p>
<p>This is a process that is seemingly (*) 90% undocumented by Apple, despite being (IMHO) absolutely essential for any professional iPhone developer.</p>
<p>[(*) - if there's docs, then I've not found it in over 6 months of googling, searching Xcode doc libraries, and asking everyone I know. I will feel stupid if it's there and I haven't found it, but I have honestly tried very hard to find it!]</p>
<p>I have sought help in numerous expert forums and mailing lists &#8211; and generally discovered that no-one else is quite sure how to do it either, although I&#8217;ve seen some funky ideas and methods that others have come up with.</p>
<p>Through trial and error I&#8217;m pretty sure I know how to do it now &#8211; but I still have no idea what the &#8220;correct&#8221; approach is &#8211; so I&#8217;m writing up my best knowledge here, and I&#8217;m going to spread it to as many people as possible to get feedback from the 30,000+ other iPhone developers around the world.<br />
<span id="more-681"></span><br />
First, some background&#8230;</p>
<h4>The basics &#8211; Apple documentation</h4>
<p>Apple&#8217;s documentation is absolutely terrible. It is shamefully, inexcusably, bad. It tells you:</p>
<blockquote><p>
Don&#8217;t use static libraries; static libraries are for idiots; you SHOULD use dynamic libraries for everything. This makes life easier for you (as a developer) and a lot cleaner for your users.
</p></blockquote>
<p>This is all ENTIRELY TRUE and extremely worthy.</p>
<p>Sadly &#8230; Apple also states (if you follow their instructions for dynamic libraries on iPhone)</p>
<blockquote><p>
We forceably prevent you from using dynamic libraries on iPhone; dynamic libraries are banned; you MUST use static libraries for everything
</p></blockquote>
<p>Apparently, someone at Apple &#8220;forgot&#8221; that they removed their docs on making static libraries some time ago, replacing them with notes to &#8220;use dynamic libraries and frameworks instead&#8221;.</p>
<h4>The basics &#8211; Frameworks</h4>
<p>Frameworks are awesome &#8211; well done, Apple! &#8211; but apparently they require dynamic libraries. I have never yet found anyone who managed to make an Apple Framework for iPhone; I don&#8217;t think it&#8217;s possible (although I keep trying&#8230;).</p>
<h4>The basics &#8211; Universal Binaries</h4>
<p>Universal Binaries are awesome &#8211; well done, Apple! &#8211; but Apple decided they were &#8220;too good for you, suckas!&#8221;, and removed them in iPhone OS 3.x.</p>
<p>At least, I had techniques that successfully built and deployed UBs on iPhone in 2.2.1, but completely stopped working in iPhone OS 3.0. As far as I could tell, none of this &#8211; none of it! &#8211; is documented (of course!). I have given up on UB&#8217;s. But, if someone can show me an officially accepted way of doing UB on iPhone OS 3.x, I will be very happy.</p>
<p>(NB: it *must* be officially accepted: I suspect that Apple deliberately broke / removed UB support for 3.x)</p>
<h4>The basics &#8211; Source-code builds</h4>
<p>Xcode is:</p>
<p>The Worst IDE in The World &#8482;</p>
<p>HOWEVER &#8230; it does have very good support for embedding references to one project (LIB) inside another project (APP), so that whenever you re-build APP, it automagically re-compiles LIB if &#8211; and only if! &#8211; it is necessary.</p>
<p>However, that is only of relevance if:</p>
<ol>
<li>You have the complete source code AND build settings to ALL libraries you ever use (this is very unlikely)
<li>Your distributed, caching, build system is complete crap, and you don&#8217;t actually use it
<li>Your SCM is exceptional, and deploys entire &#8220;related&#8221; Xcodeproj directories for all revelant projects (this is very VERY unlikely)
<li>You have a super-fast machine that compiles REALLY REALLY fast, and you don&#8217;t mind doing triggered re-builds of projects
<li>You don&#8217;t mind spending several weeks tracking down non-existent bugs because of a dynamic mis-matching of library source versions
</ol>
<p>So, basically &#8230; it&#8217;s a useful feature for the hobbyist programmer, but most real studios can&#8217;t afford to rely upon it.</p>
<h4>The basics &#8211; Device-only builds</h4>
<p>The iPhone Simulator that apple provides to all iPhone developers is EXTREMELY good. It has four bugs / problems:</p>
<ol>
<li>It&#8217;s too fast (it makes NO attempt to run at the same speed as an actual iPhone)
<li>It doesn&#8217;t simulate the different hardware revisions (you cannot select &#8220;3GS mode&#8221; as opposed to &#8220;3G mode&#8221;)
<li>It doesn&#8217;t simulate multi-touch (and a few others, like &#8220;vibration&#8221;) and (bizarrely) doesn&#8217;t support odd things like some of the built-in animations
<li>It uses a different CPU architecture &#8211; intel only, as opposed to the iPhone&#8217;s ARM chips
</ol>
<p>It takes a LONG TIME to download a freshly-compiled iPhone app to your iPhone &#8211; approximately 10 to 30 seconds, on average. This can easily extend the &#8220;change, compile, test&#8221; cycle on a (fast) Mac from about 20 seconds to about 40 seconds &#8211; i.e. literally a 2x decrease in productivity.</p>
<p>Hence it is essential for serious iPhone devleopers to work on the Simulator as much as possible, and switch to the Device periodically (perhaps using the Simulator 30-50 times an hour, and the Device merely 3-5 times an hour).</p>
<h4>Next post&#8230;</h4>
<p>Followup, with details on how I solved all this:</p>
<p><a href="http://t-machine.org/index.php/2009/10/14/how-to-make-an-iphone-static-library-part-2/" >How to make an iPhone static library &#8211; part 2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/13/how-to-make-an-iphone-static-library-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Will Wright is &#8230; lazy?</title>
		<link>http://t-machine.org/index.php/2009/10/13/will-wright-is-lazy/</link>
		<comments>http://t-machine.org/index.php/2009/10/13/will-wright-is-lazy/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 22:10:49 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[bitching]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[games design]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=678</guid>
		<description><![CDATA[Let&#8217;s get this straight: if we judge him solely by output (games), then he is not a genius &#8211; he&#8217;s lazy. Everyone knows the 1% inspiration/99% perspiration quote, and &#8211; looking at the last shipped title &#8211; IMHO it&#8217;s inexcusable to ship crap and pretend it&#8217;s OK. You can&#8217;t just abrogate responsibility once you stick [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s get this straight: if we judge him solely by output (games), then he is not a genius &#8211; he&#8217;s lazy. Everyone knows the 1% inspiration/99% perspiration quote, and &#8211; looking at the last shipped title &#8211; IMHO it&#8217;s inexcusable to ship crap and pretend it&#8217;s OK. You can&#8217;t just abrogate responsibility once you stick your name on Spore&#8230;</p>
<p>(disclaimer: when I say &#8220;lazy&#8221; I don&#8217;t mean universally; I mean that in at least one crucial aspect, he failed to apply simple due diligence to his own named project; arguably, it&#8217;s a kind of laziness in itself not to have checked this stuff, or a kind of cowardice not to have insisted it be done &#8220;correctly&#8221;; but this post is really about the overall impact of the game, and the way that an individual, if they were to stamp their persona on a project &#8211; and expect us to read their persona from interacting with the product &#8211; comes across. I have no idea what <a href="http://en.wikipedia.org/wiki/Will_Wright_(game_designer)" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Will_Wright_(game_designer)');">Will Wright is like as an individual</a>; this is a post about <a href="http://uk.gamespy.com/articles/595/595975p1.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://uk.gamespy.com/articles/595/595975p1.html');">Will Wright as the PR entity</a>&#8230;)<br />
<span id="more-678"></span><br />
If you&#8217;ve enough optimisim / hubris / cojones / arrogance to stick your own name on a game (yes, I&#8217;m also thinking of <a href="http://en.wikipedia.org/wiki/Richard_Garriott" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Richard_Garriott');">Richard Garriott</a>&#8217;s <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/" >Tabula Rasa</a> here. Oh dear&#8230;), then you have to accept that any basic, simplistic failings in that game are going to be your &#8211; personal &#8211; fault. You chose to attach your name to the brand, and you can&#8217;t just ignore the downside.</p>
<blockquote><p>
Spore doesn&#8217;t save while you play.
</p></blockquote>
<p>Let&#8217;s just repeat that, with emphasis:</p>
<blockquote><p>
Spore &#8211; which crashes to desktop relatively frequently for an EA game &#8211; NEVER saves, even after 4 hours of solid gameplay, no matter what. This was released in 2008. Even Flash games, written by 15-year-old kids who have NO IDEA WHAT THEY&#8217;RE DOING, will always &#8211; always * &#8211; save continuously BY DEFAULT because you would have to be INCREDIBLE STUPID or EXTREMELY ARROGANT as a game designer not to have this basic precaution enabled.
</p></blockquote>
<p>[*] &#8211; 4 in 5 Flash games autosave these days, including the &#8220;my first real flash game&#8221; attempts, even if they don&#8217;t do it properly (hint: Macromedia&#8217;s &#8220;local storage&#8221; isn&#8217;t used by professionals; only by inexperienced teenagers)</p>
<p>&#8230;</p>
<p>Incidentally, I&#8217;ve been blogging a lot less frequently for two reasons, and my fury at losing 4 hours of my life due to the Spore team&#8217;s stupidity here has caused me to make an exception of this post.</p>
<p>In general, I&#8217;ve decided:</p>
<ol>
<li>I don&#8217;t want to post any more negative posts unless/until I&#8217;ve posted several things at least as positive; I&#8217;m a positive person, but certain situations (conferences) and certain outlets (blogging) tend to bring out &#8220;what frustrates me&#8221;, rather than &#8220;what delights me&#8221;, and I&#8217;d like to kick that habit.
<li>There&#8217;s loads of things I&#8217;ve been doing recently that I cannot talk about for PR reasons. Not especially exciting, but it&#8217;s been stuff that I (or others) have wanted to keep quiet until / unless it actually works. All being done under &#8220;release early, release often&#8221;, but we haven&#8217;t hit first releases yet&#8230;
</ol>
<p>So, to Will Wright: please stop dicking about, making crap like Sim Earth (yes, I went there), and make decent games. Stop pretending that a &#8220;game&#8221; is beneath you (even though that attitude probably is the sole reason that The Sims came to life&#8230; ah, crap, that (best-selling game-franchise of all time) dilutes the argument somewhat): please either stop making games and go become the PhD student you seem to (secretly) want to become (and which I&#8217;m sure you&#8217;d be brilliant at), or &#8230; make games &#8211; but do it properly; do it professionally.</p>
<p>[Incidentally, apart from being an good-yet-flawed game, Spore is a great example of "desire to make a Social Game - but a complete lack of "ability" to actually do so...". More on that later (although that is another "negative" post I've had sitting in my in-progress pile for a year now, featuring Sony as the lead protagonist...)]</p>
<p>PS: I really enjoyed playing some of Will Wright&#8217;s games over the years. Spore has some great elements. But I&#8217;m reminded of Demis &#8220;I don&#8217;t like games, I like puzzles&#8221; Hassabis who equally made at least one great game, but (with hindsight) seemingly misattributed the causes of its success, and IMHO never really grokked the whole &#8220;game&#8221; thing. Perhaps Will was wiser, or just luckier.</p>
<p>Worse &#8230; Spore wasn&#8217;t a huge succes. And yet, if Spore had been made by Blizzard, it would have been an AWESOME game, simply because they&#8217;d have polished it properly, instead of shipping it before it was more than half-finished.</p>
<p>In fact, if Spore had been made by any of the medium or large independent studios, it would have been a &#8220;better&#8221; game, because it would have had a &#8220;normal&#8221; level of polish, instead of being below-par. Blizzard is just a peculiarly easy example for me to pick; I have great faith that most indies would have made it substantially better (even without Will Wright), just because they&#8217;d have done a more professional job of the thing :(.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/13/will-wright-is-lazy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting a job in the games industry: its all about skill</title>
		<link>http://t-machine.org/index.php/2009/10/09/getting-a-job-in-the-games-industry-its-all-about-skill/</link>
		<comments>http://t-machine.org/index.php/2009/10/09/getting-a-job-in-the-games-industry-its-all-about-skill/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 12:27:58 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[games design]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=675</guid>
		<description><![CDATA[Tim Schafer recently posted scans of his rejection letters over the years from various tech and games companies he applied to. There&#8217;s one from Atari, one from Hewlett Packard &#8211; and, eventually, his acceptance letter from Lucasfilm / Lucasarts.
But far, far more important to this post is the cover-letter that Tim sent to Lucasfilm (it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Tim Schafer recently posted scans of his rejection letters over the years from various tech and games companies he applied to. <a href="http://www.doublefine.com/site/comments/twenty_years_only_a_few_tears/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.doublefine.com/site/comments/twenty_years_only_a_few_tears/');">There&#8217;s one from Atari, one from Hewlett Packard &#8211; and, eventually, his acceptance letter from Lucasfilm / Lucasarts</a>.</p>
<p>But far, far more important to this post is the cover-letter that Tim sent to Lucasfilm (it&#8217;s a truly special cover letter (go have a look now, before you read on)).</p>
<p>There&#8217;s also a rich array of comments at the end of Tim&#8217;s post. The HR manager (now head of HR at Pixar) who handled his job application all those years ago even chimes in to say hi. But, again, that&#8217;s not what I found interesting; what I liked was the large number of comments from wannabe game developers trying to get into the industry right now.</p>
<h4>What&#8217;s wrong with this picture?</h4>
<p>Reading those comments, here&#8217;s a couple of things I noticed:</p>
<ul>
<li>They feel &#8220;inspired&#8221; and full of &#8220;renewed hope&#8221; / &#8220;confidence&#8221; that they have a chance of getting into the industry at all
<li>Lots of wishful comments fishing for a confirmation that this technique would &#8220;still work today&#8221;, while declaring that they&#8217;re sure it doesn&#8217;t (supposedly demonstrating their realism)
<li>The realization that lack of experience is no barrier to becoming an industry legend; coincidentally, most of the people saying this have no experience of their own
</ul>
<p>&#8230;and here&#8217;s the conclusions that leapt to my mind:</p>
<ul>
<li>New entrants to the industry are convinced it&#8217;s very hard to &#8220;break in&#8221;; they sound by turns cynical and hopeless. This is merely to get a *job*, not to actually achieve anything. Ouch
<li>No-one seems to have told them how easy it can be (how straight-forward it often is)
<li>They&#8217;re guessing at the reasons this was successful, and are picking the wrong ones (hint: what worked for Tim still works today, if anything *even more* than it did 20 years ago)
<li>Their understanding of what it takes to become a major industry figure is back-to-front
</ul>
<h4>Why was Tim successful? How can you re-create that today?</h4>
<p>OK, so Tim was: funny, dedicated, and inventive.</p>
<p>But we&#8217;ve all heard (I hope) of many occasions when any or all three of those have not only failed to win people jobs but have got them ridiculed (sometimes even had their desperate exploits broadcast at the company or industry level). I&#8217;m not thinking simply of the games industry here &#8211; although <a href="http://www.ixobelle.com/2009/09/greetings-from-irvine.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.ixobelle.com/2009/09/greetings-from-irvine.html');">I noticed one the other week where a hopeful Quest Designer tried it on with Blizzard</a> (they spent a thousand dollars on fancy-printed design docs for their proposed Raid Dungeon, drove to Blizzard&#8217;s offices, and spent a couple of days sitting on the sidewalk handing copies to staff as they arrived / left the office each day).</p>
<p>Rather, I was thinking of all the stories of people doing everything from sending in their Resume/CV wrapped in shiny metallic paper, to sending gifts (including alcohol) to the hiring managers, to stuff that comes dangerously close to stalking.</p>
<p>Reading the comments on Tim&#8217;s post, in at least a couple of cases, I&#8217;m not convinced that the posters see the difference between those disasters and what Tim did. I don&#8217;t know any of the people involved, but I do know there are positions we&#8217;ve recruited for in the past 5 years where a cover letter akin to Tim&#8217;s would have gone a very long way (possibly even &#8220;all the way&#8221;) towards single-handedly getting us to hire someone.</p>
<p>IMHO, it&#8217;s all about skill and enthusiasm (although few companies hire on enthusiasm, so we&#8217;ll just stick to the &#8220;skill&#8221; part)</p>
<p>What Tim shows is skill for the *underlying* things that his (potential) employers would love to see him employ in his day job. That requires showing ALL of the following:</p>
<ul>
<li>Personal interest (he plays games. He plays them enough for the next part to be possible)
<li>Understanding of a genre (he understands a genre well enough to pastiche it effectively; you can&#8217;t do that if all you&#8217;ve done is dabble in it (unless you&#8217;re particularly skilled at literary/experience analysis &#8211; which is great, we want that too! ))
<li>Ability to polish (look at the images; notice how he sends up each of LA and Silicon Valley in panels 2a and 2b, and makes out San Rafael to be the land of Nature and Sunshine and happiness)
<li>Knowing when to stop (again, look at the images. The &#8220;volume&#8221; of detail is actually very small; apart from the final image, they are very simple, and quick to execute)
</ul>
<p>One thing we don&#8217;t know, that I&#8217;d love to know, is the timing: how long after the phone call did he send this in? I&#8217;ve known candidates to take *more than a month* to complete something that was offered (by them!) in a job interview. WTF? If you say you have something, we assume you either have it, or will complete it imminently. i.e. days &#8211; a week at the most.</p>
<h4>TO GET A JOB IN THE GAMES INDUSTRY, ALL YOU NEED TO DO IS &#8230; </h4>
<p>Let&#8217;s see how simple I can make this&#8230;</p>
<blockquote><p>
Make a game.
</p></blockquote>
<p>3 words. Not bad. I think that&#8217;s pretty clear.</p>
<p>Sadly, most people misunderstand it *completely*.</p>
<p>Look back at the rest of this blog post; it all lead up to this. When college students ask senior people, and hiring managers, what to do to get their first job, and we say &#8220;make a game; make several games&#8221;, our reasons for saying that are all encapsulated in what I&#8217;ve already said.</p>
<p>Even if you&#8217;re in a discipline that has read-made degrees (Programming: Computer Science; Art: Fine Art, etc), what you&#8217;re usually showing with your degree is a small amount of education and a large amount of skill / aptitude. University/College rarely teaches the things you&#8217;ll need every day to do your job, but it prepares you in a more general way to be/become skilled more quickly.</p>
<p>Imagining a game is easy; if you like games, you should be able to imagine games you&#8217;d like to play, or make.</p>
<p>Making a game is easy, if you only ever make a game that fits within your abilities and resources. I&#8217;ve made games in under a day. Some of them were even fun! ;). I have a friend who *frequently* writes entire games in a single evening. He&#8217;s a programmer, with no art or game-design skills &#8211; but some of what he makes looks gorgeous and is great fun; he cheats; so should you. So &#8230; never tell me that making a game is &#8220;beyond&#8221; you; just shrink your ambition to fit.</p>
<p>(incidentally, &#8220;I can&#8217;t program&#8221; is not a valid excuse; pre-teen children regularly learn to program &#8211; (IIRC it&#8217;s still in the national curriculum in most western countries, although it&#8217;s not labelled &#8220;computer programming&#8221;) &#8211; and if they can handle it, what&#8217;s wrong with you that you&#8217;re too stupid/lazy to do it too? No-one&#8217;s asking you to learn highly optimized C++, that would be insane. But &#8230; all you need is Basic, PHP, Javascript, or something similar)</p>
<p>Finishing making a game &#8211; removing all the &#8220;doesn&#8217;t actually work&#8221; parts &#8211; is hard. But everyone who&#8217;s been there should understand: it&#8217;s *hard* to include all the bits that weren&#8217;t fun for you to make. It&#8217;s hard to force yourself to check all the buttons still work every time you change something. It&#8217;s hard to force yourself to write in-game instructions *and keep them up-to-date* each time you change the game-design, or add/remove a feature.</p>
<p>And that&#8217;s a big part of why we judge you on it. Because if you can do that &#8211; more than anything else &#8211; all the other problems are smaller, more tractable.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/09/getting-a-job-in-the-games-industry-its-all-about-skill/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>GDC 2010: I (probably) won&#8217;t see you there</title>
		<link>http://t-machine.org/index.php/2009/10/08/gdc-2010-i-probably-wont-see-you-there/</link>
		<comments>http://t-machine.org/index.php/2009/10/08/gdc-2010-i-probably-wont-see-you-there/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:05:24 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[GDC 2009]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=673</guid>
		<description><![CDATA[Last month, I ran a novel panel session at Austin GDC, which was well-attended and (apparently) well-liked.
I came up with the format myself, very different from normal panels, and spent a couple of months fleshing it out with the panellists, discussing different ways we could improve on it, different approaches, etc. I made a lot [...]]]></description>
			<content:encoded><![CDATA[<p>Last month, I ran <a href="http://t-machine.org/index.php/2009/09/20/agdc-2009-killing-the-sacred-cows-of-mmo-technology/" >a novel panel session at Austin GDC</a>, which was well-attended and (apparently) well-liked.</p>
<p>I came up with the format myself, very different from normal panels, and spent a couple of months fleshing it out with the panellists, discussing different ways we could improve on it, different approaches, etc. I made a lot of mistakes with it, but I was pleased with how it went for a first attempt.</p>
<p>We filled about 1/2 of the room, I think the capacity was around 200. I&#8217;d hoped for more &#8211; but &#8230; we were scheduled on the second-to-last slot, on the last day of the conference, when lots of people had already gone home.</p>
<p>We were also scheduled at the same time as <a href="http://www.xeodesign.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.xeodesign.com/');">Nicole Lazzaro</a>, and <a href="http://www.zenofdesign.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.zenofdesign.com/');">Damion Schubert</a>. They are both exceptional &#8211; and exceptionally popular &#8211; speakers.</p>
<p>So &#8230; I was pretty happy we got the crowd that we did :).</p>
<p>It all went so well that I thought the organizers of the &#8220;main&#8221; GDC &#8211; the one in San Francisco &#8211; might like something similar. So, I contacted them (not exact email, some details snipped):</p>
<blockquote><p>
I just ran a really good session at Austin GDC, and thought that something similar might work really well for GDC 2010. And several people who want something like this at GDC have asked me to at least try :).</p>
<p>It was a novel format that I came up with originally, and then hammered out the details with the panellists over a couple of months until we were happy with it. Now we&#8217;ve live-tested it, I could do it even better next time :).</p>
<p>Is it worth me taking this further? I&#8217;d have to find a new set of panellists, and work out a new topic appropriate to GDC (as opposed to AustinGDC).
</p></blockquote>
<p>Here&#8217;s the salient part of the response I got:</p>
<blockquote><p>
Thank you for your email. If you&#8217;ve already done this session I would advise against a repeat at GDC, especially if it&#8217;s a panel proposal because panels are very hard to advance to Phase 2 and get accepted.
</p></blockquote>
<p>(NB: the wording is &#8220;I would advise&#8221;, but the email itself didn&#8217;t provide any of the details or info I&#8217;d need on how to submit this panel, so I read this as a polite but fairly strong: &#8220;no&#8221;).</p>
<p>My first reaction was that I&#8217;m quite relieved NOT to spend all the time and effort it takes finding another 4 top-class speakers, persuading them to speak, working with them on format and content, and organizing everything in the months leading up to the conference.</p>
<p>(for which &#8211; unlike most industries &#8211; GDC speakers get nothing in return. Oh, you do get an invite to a party. But it&#8217;s just like the 15 other parties that all the non-speakers get to go to. So &#8230; not a huge benefit, really)</p>
<p>I&#8217;m not going to hassle them to try to change their minds.</p>
<p>But then I thought a bit more, and wondered why it was that the conference organizers aren&#8217;t biting my arm off, demanding that we do this again? (assuming the session was as well-received as I thought it was). They&#8217;re always deflecting criticisms of &#8220;poor&#8221; sessions with &#8220;we&#8217;re dependent on the quality of what gets submitted&#8221;. In the past year, I&#8217;ve also seen a couple of friends get some of the highest-rated feedback from past GDC&#8217;s and yet seemingly the organizers don&#8217;t want them back again.</p>
<p>So, I&#8217;m left wondering what the strategy is here. There must &#8211; surely &#8211; be *some* strategy for a money making machine like GDC (this thing is making 6-figure profits each year). I&#8217;m just confused as to what it is.</p>
<p>Also, as an aside, since I rarely go to conferences these days unless I&#8217;m speaking at them, I probably won&#8217;t be at GDC next year. This year, surprisingly many people asked me why I was bothering to go to GDC at all (despite the fact I was a speaker :)). By the tenth time of being asked, I&#8217;d realised that my justifications owed as much to nostalgia and socialisation as to a useful use of my time. I was already feeling dubious about turning up next year, even before I heard my proposals had been rejected. So, just to be clear: I&#8217;m not skipping it because of this response from the organizers, although if they&#8217;d been keen for me to give the talk, it would have forced my hand into going.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/10/08/gdc-2010-i-probably-wont-see-you-there/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>AGDC-2009: Killing the Sacred Cows of MMO Technology</title>
		<link>http://t-machine.org/index.php/2009/09/20/agdc-2009-killing-the-sacred-cows-of-mmo-technology/</link>
		<comments>http://t-machine.org/index.php/2009/09/20/agdc-2009-killing-the-sacred-cows-of-mmo-technology/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 04:57:59 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[MMOG development]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[massively multiplayer]]></category>
		<category><![CDATA[network programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=667</guid>
		<description><![CDATA[Slides for our panel arehere: &#8220;Killing mmo tech sacred cows.pdf&#8221;.
Final panel was myself (moderating) and speakers: Bill Dalton (Bioware), Rick Lambright (Gazillion), Joe Ludwig (Valve), Marty Poulin (Shady Logic).
PLEASE NOTE: WE DON&#8217;T REALLY ADVOCATE EXTREMIST RESPONSES TO TECHNICAL QUESTIONS; THIS WAS JUST A BIT OF FUN. (Mostly).
]]></description>
			<content:encoded><![CDATA[<p>Slides for our panel are<a href='https://t-machine.org/wp-content/uploads/killing-mmo-tech-sacred-cows.pdf'>here: &#8220;Killing mmo tech sacred cows.pdf&#8221;</a>.</p>
<p>Final panel was myself (moderating) and speakers: Bill Dalton (Bioware), Rick Lambright (Gazillion), <a href="http://programmerjoe.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://programmerjoe.com/');">Joe Ludwig (Valve)</a>, <a href="http://martysmind.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://martysmind.com/');">Marty Poulin (Shady Logic)</a>.</p>
<p>PLEASE NOTE: WE DON&#8217;T REALLY ADVOCATE EXTREMIST RESPONSES TO TECHNICAL QUESTIONS; THIS WAS JUST A BIT OF FUN. (Mostly).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/09/20/agdc-2009-killing-the-sacred-cows-of-mmo-technology/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How much do iPhone developers cost (contract)?</title>
		<link>http://t-machine.org/index.php/2009/09/12/how-much-do-iphone-developers-cost-contract/</link>
		<comments>http://t-machine.org/index.php/2009/09/12/how-much-do-iphone-developers-cost-contract/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 22:13:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=665</guid>
		<description><![CDATA[(this is off the top of my head, probably some glaring errors; it&#8217;s intended to give a general idea rather than be authoritative. How do YOU calculate your hourly rate for contracts?)
It seems there&#8217;s an increasing number of people around who have no prior experience of this, and are taking their first steps into freelance/contracting [...]]]></description>
			<content:encoded><![CDATA[<p>(this is off the top of my head, probably some glaring errors; it&#8217;s intended to give a general idea rather than be authoritative. How do YOU calculate your hourly rate for contracts?)</p>
<p>It seems there&#8217;s an increasing number of people around who have no prior experience of this, and are taking their first steps into freelance/contracting while doing iPhone dev in particular.</p>
<p>There are also an increasing number of clients offering impossibly low daily rates. I&#8217;m sure some of these are sharks taking advantage of first-time contractors, BUT &#8230; I know from personal experience that some are merely naive. Sometimes, it&#8217;s just that they are themselves ignorant of the realities of contracting.</p>
<p>So, to help first-time contractors, and to help clients trying to work out why they&#8217;re having trouble getting decent people on their seemingly &#8220;sensible&#8221; budget, here&#8217;s some quick thoughts on the standard practice on contract pricing.</p>
<p>By the way, to answer the titular question: Bad ones &#8211; about £250 / $350 a day; good ones &#8211; about £750-£1250 / (guess, but I haven&#8217;t asked any USA guys recently: circa $1200-$1500?) a day; Really really bad ones who have no idea what they&#8217;re doing and are probably teaching themselves programming as they go, on *your* budget &#8211; about £200 / $200 a day.</p>
<p>(note: the weak (disappointing, but bearable) and the worst (total waste of your time and money) are duking it out on price at the bottom end of the scale, that&#8217;s no coincidence. That&#8217;s all they can sell themselves on)</p>
<h4>1. Salary is not remuneration</h4>
<p>By law, in the UK and throughout Europe, companies *must* provide employees with cash and benefits above and beyond their salary. Whatever your official salary, the govt mandates that your employer pays you X% more than that (X varies from place to place and situation to situation).</p>
<p>X is made up of, among other things: &#8220;employer&#8221; tax, &#8220;employer&#8221; pension payments, sick pay, holiday pay (typically around 10% of base salary!), local govt taxes, various kinds of mandatory insurance, etc.</p>
<p>Some people get company bonuses as well, often from 1% to 20%.</p>
<p>Of course, at most companies, you also get a whole load of stuff &#8220;for free&#8221;. The rule of thumb at many companies is that *every* employee costs approx 10% on top of their base salary &#8211; and that any bonuses, benefits, etc, are extra on top.</p>
<p>TOTAL: 120%-150%</p>
<h4>Finding work is an unpaid activity</h4>
<p>Contractors are required to spend some number of hours every month looking for their next contract. This can start simple &#8211; trawling websites &#8211; but even when a good match is found, the contractor has to take UNPAID time off work to speak to recruiters/hiring managers, attend interviews, etc.</p>
<p>Assuming everything goes perfectly and it takes you 2-3 days of preparation, search, interviewing, bidding, viewing specs, etc, and you work 2-3 month contracts on average, this is 5% of your working time.</p>
<p>If just one project gets cancelled / doesnt come through, that is immediately doubled. Any slowness on the part of recruiters again increases the cost to the contractor.</p>
<p>TOTAL: 110%-125%</p>
<p>The numbers above are off the top of my head, and are far from complete. When you add it all up, and average over time, the rule of thumb for experienced contractors is that your hourly contract-rate should be at minimum 2 times your hourly employee salary, and as much as 3 times.</p>
<p>This is getting pretty long for an LI post, and I&#8217;m sure there&#8217;s a lot wrong with it, but hopefully it&#8217;s enough to give people an idea of the realities of the situation.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/09/12/how-much-do-iphone-developers-cost-contract/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New free iPhone game&#8230;</title>
		<link>http://t-machine.org/index.php/2009/08/23/new-free-iphone-game/</link>
		<comments>http://t-machine.org/index.php/2009/08/23/new-free-iphone-game/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 13:30:09 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[dev-process]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=658</guid>
		<description><![CDATA[Last night, I had another game approved for the App Store&#8230;

iTunes: click here to open iTunes download page
I started writing this as a real-life demo on how to use the tech for my new company (if any of our early access licensees are reading this, a project ZIP with full source code should appear on [...]]]></description>
			<content:encoded><![CDATA[<p>Last night, I had another game approved for the App Store&#8230;</p>
<p><a href="http://t-machine.org/index.php/2009/08/23/new-free-iphone-game/ss1/"  rel="attachment wp-att-659"><img src="https://t-machine.org/wp-content/uploads/ss1.jpg" alt="ss1" title="ss1" width="320" height="480" class="alignnone size-full wp-image-659" /></a></p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327089909&#038;mt=8" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=327089909&#038;mt=8');">iTunes: click here to open iTunes download page</a></p>
<p>I started writing this as a real-life demo on how to use the tech for my new company (if any of our early access licensees are reading this, a project ZIP with full source code should appear on your dashboard imminently), but I gave it to a few friends to test, and they liked it so much I thought I&#8217;d put it up on the App Store too.</p>
<p>I&#8217;ll be updating it over time to add more of the features from our tech. If enough people download it, I might even make a paid version (which would be pretty handy as an example, too :)) with some more features, more powerups, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/23/new-free-iphone-game/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Games Industry Recruitment: Intel</title>
		<link>http://t-machine.org/index.php/2009/08/18/games-industry-recruitment-intel/</link>
		<comments>http://t-machine.org/index.php/2009/08/18/games-industry-recruitment-intel/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 16:51:04 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[recruiting]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=653</guid>
		<description><![CDATA[Things are getting interesting in Recruitment land again&#8230;
Received today:

Adam, greetings from the Visual Computing Group at Intel Corporation.  We received your contact information from the Siggraph Job Fair. 
Please let me know how much discrete or integrated graphics driver development, media software, or debug experience you have and what you are interested in doing. [...]]]></description>
			<content:encoded><![CDATA[<p>Things are getting interesting in Recruitment land again&#8230;</p>
<p>Received today:</p>
<blockquote><p>
Adam, greetings from the Visual Computing Group at Intel Corporation.  We received your contact information from the Siggraph Job Fair. </p>
<p>Please let me know how much discrete or integrated graphics driver development, media software, or debug experience you have and what you are interested in doing.  Also let me know about your video codec and debug experience.</p>
<p>Please complete this pre-screen document and return it to me along with your current resume.   You can also create a career profile at http://www.intel.com/jobs .</p>
<p>Intel is changing the way the world sees 3D graphics, visualization and games. Our Larrabee architecture will deliver teraflops of performance for high-throughput applications, including scientific computing, gaming and visualization. In addition, our Software and Solutions Group is working to enhance all levels of software that executes on Intel based platforms.</p>
<p>We invite you to consider opportunities with Intel by completing and returning the attached Graphics pre-screen as soon as possible which will let us know if you are available, your area of expertise, where you want to work and salary expectations.  As soon as we receive this information, we will be reviewing with the hiring managers.  If there is interest, the next contact will be from the hiring manager to conduct a phone screen   Additionally, I have attached a copy of a flyer on the work this group is doing and information about Intel.</p>
<p>We look forward to hearing from you soon.</p>
<p>Best regards,<br />
Larry Gonzales<br />
Sr. Recruiting Consultant<br />
Intel Corporation/VCG
</p></blockquote>
<p>My reply:</p>
<blockquote><p>
Hi, Larry!</p>
<p>2009/8/18 Gonzales, Larry Z <larry.z.gonzales@intel.com>:<br />
><br />
> Adam, greetings from the Visual Computing Group at Intel Corporation.  We<br />
> received your contact information from the Siggraph Job Fair.</p>
<p>No. You didn&#8217;t. You really didn&#8217;t. I wasn&#8217;t at Siggraph this year.</p>
<p>I&#8217;m a serial CTO of online games and MMO companies. My last job involved leading internal PS3 and PC MMO development, and founding a new internal studio, for one of the world&#8217;s largest online games publishers.</p>
<p>> Please complete this pre-screen document and return it to me along with your<br />
> current resume.   You can also create a career profile at<br />
> http://www.intel.com/jobs .</p>
<p>If you want me to apply to a position, feel free to send me the details.</p>
<p>> We invite you to consider opportunities with Intel by completing and<br />
> returning the attached Graphics pre-screen as soon as possible which will<br />
> let us know if you are available, your area of expertise, where you want to<br />
> work and salary expectations.  As soon as we receive this information, we</p>
<p>I&#8217;m not interested in anything less than [ommitted] USD per annum (which is slightly below the last round of job offers I turned down).</p>
<p>Apart from that requirement, I&#8217;m happy to consider anything you send me.</p>
<p>Regards,<br />
Adam Martin
</p></blockquote>
<p>(working at Intel could be interesting. But I certainly don&#8217;t feel in the mood to do all the work of a &#8220;pre-screen document&#8221;, and to make apologies for the lack of &#8220;your video codec and debug experience&#8221; for a job I know nothing about, never asked for, and which &#8211; a moment&#8217;s glance at my public LinkedIn profile would show &#8211; I am hopelessly inappropriately qualified for :))</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/18/games-industry-recruitment-intel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What talk do you want from me at GDC? (you have 12 hours to reply!)</title>
		<link>http://t-machine.org/index.php/2009/08/18/what-talk-do-you-want-from-me-at-gdc-you-have-12-hours-to-reply/</link>
		<comments>http://t-machine.org/index.php/2009/08/18/what-talk-do-you-want-from-me-at-gdc-you-have-12-hours-to-reply/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 09:22:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=651</guid>
		<description><![CDATA[A bit late to be asking, I know, but &#8230; If you&#8217;re (considering) going to GDC next year (the worlds biggest game development conference, in San Francisco), is there any topic in particular you&#8217;d like me to speak on?
The deadline for proposals has been extended to today. I&#8217;ve submitted something about iPhone development, because its [...]]]></description>
			<content:encoded><![CDATA[<p>A bit late to be asking, I know, but &#8230; If you&#8217;re (considering) going to GDC next year (the worlds biggest game development conference, in San Francisco), is there any topic in particular you&#8217;d like me to speak on?</p>
<p>The deadline for proposals has been extended to today. I&#8217;ve submitted something about iPhone development, because its useful and IMHO generally applicable enough to be of interest to much of the GDC audience. but I&#8217;ve no idea if they&#8217;ll decide to take me up on it. Quite possibly not.</p>
<p>Whatever I speakabout, obviously all slides will be posted here, and the conference organizers will record full audio and let anyone purhase it for a few dollars IIRC.</p>
<p>so&#8230; What would YOU like to hear/see?</p>
<p>If its sane and I can actually talk meanIngfully on it, I promise I&#8217;ll submit a proposal today, just for you :).</p>
<p>The process requires &#8211; amongst other things &#8211; a shortlist of what &#8220;new skills or knowledge&#8221; the audience will gain from the session. Bear that in mind if you reply (either in comments field below or jsut email me directly) </p>
<p>EDIT: OK &#8230; it&#8217;s done &#8230; a talk on Entity Systems for MMO engines. It&#8217;ll take a few months to find out what they think, I&#8217;ll let you know how it turns out&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/18/what-talk-do-you-want-from-me-at-gdc-you-have-12-hours-to-reply/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Volunteer project: a simple RPG for iPhone &#8211; UPDATE</title>
		<link>http://t-machine.org/index.php/2009/08/13/volunteer-project-a-simple-rpg-for-iphone-update/</link>
		<comments>http://t-machine.org/index.php/2009/08/13/volunteer-project-a-simple-rpg-for-iphone-update/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 17:33:53 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[devdiary]]></category>
		<category><![CDATA[entrepreneurship]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[startup advice]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=648</guid>
		<description><![CDATA[A lot of people asked me to blog as this volunteer project progressed, share some insight into how things were going. I&#8217;ve not had enough time until just now, and it&#8217;s a mix: Some good news, some bad news.

Good news:

It&#8217;s a friendly group of people, and we seem to get along well
Alex Crouzen picked up [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of people asked me to blog as <a href="http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/" >this volunteer project</a> progressed, share some insight into how things were going. I&#8217;ve not had enough time until just now, and it&#8217;s a mix: Some good news, some bad news.<br />
<span id="more-648"></span><br />
Good news:</p>
<ul>
<li>It&#8217;s a friendly group of people, and we seem to get along well
<li>Alex Crouzen picked up Objective C and OpenGL, and Shi Daniels threw together some wall and floor textures. That gave us a very basic &#8220;here&#8217;s some walls and floors, running in OpenGL, on an iPhone&#8221;, but no walking, no movable camera, no interaction, etc. It actually worked! :)
<li>Brian Green and Wendy Despain (both games industry pros) joined up and did loads of great game-design and plot work. As a group, lead by them, we generated lots of pages of good design &#8211; although (my fault) the remit probably wasn&#8217;t as well constrained as it should have been
<li>Lots of good ideas and commentary from the other people in the group
<li>We setup a private wiki, a 24-hour skype group-chat, and a private google group, and had some pretty good communications going between the active contributors
<li>I picked up Alex&#8217;s code and rewrote the underlying OpenGL stuff (I&#8217;m very rusty; haven&#8217;t done any OpenGL for > 4 years), but got it integrated with iPhone GUI stuff, so you could use drag gestures to move around the map in 3D, and added some programmatic map generation
</ul>
<p>Bad news:</p>
<ul>
<li>A lot of people (I think more than half, in the end!) had to step back &#8211; or even drop out &#8211; due to time constraints / external commitments (work, life, etc). Ultimately, through no fault of any individual &#8230; our team was somewhat gutted before we&#8217;d got beyond the first milestone :(
<li>&#8230;as a result of that, and some mistakes I personally made on the project leadership side, we stagnated, and the project has ground to a halt with too few active coders
</ul>
<p>It&#8217;s not clear where we&#8217;ll go from here, but I&#8217;m now looking at whether I can take some of the lessons learnt from this and start it all over again, do it better, more simply, and more clearly directed, as a commercial project.</p>
<p>One of the biggest mistakes I made personally is that I tried to do this as a volunteer project &#8211; but simultaneously tried to do it unmanaged, Scrum-style. You could fairly argue that this was foolish, given that I&#8217;ve run a lot of volunteer projects before, and they have *always* needed huge amounts of vicious, aggressive project management. Not because people are lazy or dumb, but merely because volunteer projects are always the lowest item on people&#8217;s list of priorities (way below &#8220;day job&#8221; and &#8220;family&#8221;, for instance &#8211; which is fair enough).</p>
<p>But I&#8217;ve got so used to working this way now (team-based, distributed responsibility, etc) that I ignored my  previous experience and actively avoided aggressive PM.</p>
<p>I&#8217;m putting together a detailed project plan now &#8211; as if I were doing this commercially. i.e. working it out based on me personally paying other people to work on it &#8211; it may not be viable / possible, but if nothing else it&#8217;s a good practice to plan to that level of diligence. It&#8217;s just a theoretical exercise right now, although I&#8217;m sharing it with some industry colleagues and some professional coders and artists, seeing if it&#8217;s convincing enough for any of them to want to try it.</p>
<p>One of the interesting things I&#8217;ve noticed already while writing it up that way is that &#8211; if I have to pay people &#8211; I&#8217;d start with a much smaller team, almost entirely coders, and only bring on other people once we have (*if* we have&#8230;) a substantial working prototype. Which is the opposite of how I was taught to make games originally. But it&#8217;s exactly how I was taught to do commercial startups. This could be interesting&#8230;</p>
<p>PS: here&#8217;s a screenshot of one of the first renders:</p>
<p><img src="https://t-machine.org/wp-content/uploads/picture-11.png" alt="picture-11" title="picture-11" width="414" height="770" class="alignnone size-full wp-image-626" style="float: left" /></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/13/volunteer-project-a-simple-rpg-for-iphone-update/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dungeon Master Clone for iPhone &#8211; Concept GUI</title>
		<link>http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/</link>
		<comments>http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 17:04:00 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[computer games]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dev-process]]></category>
		<category><![CDATA[devdiary]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=625</guid>
		<description><![CDATA[(c.f. my original post here: http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/)
I&#8217;ve been playing around with GUI setups for DM / EOTB / Wizardry clones on iPhone, and thought I&#8217;d post some of the more interesting results here &#8211; I&#8217;m interested to see what other people think of each of them.
The first three are all assuming a single-character RPG, the fourth [...]]]></description>
			<content:encoded><![CDATA[<p>(c.f. my original post here: <a href="http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/" >http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/</a>)</p>
<p>I&#8217;ve been playing around with GUI setups for DM / EOTB / Wizardry clones on iPhone, and thought I&#8217;d post some of the more interesting results here &#8211; I&#8217;m interested to see what other people think of each of them.</p>
<p>The first three are all assuming a single-character RPG, the fourth is something more like DM / Wizardry (could be 6 chars, could be 3).</p>
<p>Everything is clickable &#8211; small maps become full screen map, blue buttons fire spells, character portraits go to the inventory screens.</p>
<p>Screens with no arrow buttons require you to drag your finger forwards/backwards/left/right to move, and allow 360 degree movement. Screens with arrow buttons assume you can only turn 90 degrees at a time (like the original games), although they smoothly animate the rotations (UN-like the original games &#8211; because I have access to OpenGL to do the 3D for me).</p>
<p>What do you think?</p>
<p><a href="http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/concept-ss-1/"  rel="attachment wp-att-642"><img src="https://t-machine.org/wp-content/uploads/concept-ss-1.png" alt="concept-ss-1" title="concept-ss-1" width="480" height="320" class="alignnone size-full wp-image-642" /></a></p>
<p><a href="http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/concept-ss-2/"  rel="attachment wp-att-643"><img src="https://t-machine.org/wp-content/uploads/concept-ss-2.png" alt="concept-ss-2" title="concept-ss-2" width="480" height="320" class="alignnone size-full wp-image-643" /></a></p>
<p><a href="http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/concept-ss-3/"  rel="attachment wp-att-644"><img src="https://t-machine.org/wp-content/uploads/concept-ss-3.png" alt="concept-ss-3" title="concept-ss-3" width="480" height="320" class="alignnone size-full wp-image-644" /></a><a href="http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/concept-ss-4/"  rel="attachment wp-att-645"><img src="https://t-machine.org/wp-content/uploads/concept-ss-4.png" alt="concept-ss-4" title="concept-ss-4" width="480" height="320" class="alignnone size-full wp-image-645" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/13/dungeon-master-clone-for-iphone-concept-gui/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Uploading iPhone app to App Store fails with CodeSign validation error</title>
		<link>http://t-machine.org/index.php/2009/08/11/uploading-iphone-app-to-app-store-fails-with-codesign-validation-error/</link>
		<comments>http://t-machine.org/index.php/2009/08/11/uploading-iphone-app-to-app-store-fails-with-codesign-validation-error/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 15:06:21 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=639</guid>
		<description><![CDATA[I&#8217;ll be writing this up in more detail soon, but here&#8217;s a bad error message from Apple&#8217;s App Store process (summer 2009) that I found zero hits for on a google search, so I thought I&#8217;d quickly throw up this page now that I&#8217;ve found out what the cause is. Hopefully it will help anyone [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be writing this up in more detail soon, but here&#8217;s a bad error message from Apple&#8217;s App Store process (summer 2009) that I found zero hits for on a google search, so I thought I&#8217;d quickly throw up this page now that I&#8217;ve found out what the cause is. Hopefully it will help anyone else who hits the same problem.</p>
<p>If you&#8217;re using the new Apple Uploader to send your binary to the App Store (don&#8217;t! I&#8217;ve discovered it has at least one critical bug where it claims to upload the binary but it actually hasn&#8217;t!), you might hit this error before the upload starts:</p>
<blockquote><p>
 &#8220;Application failed codesign verification.  Please see the console log for additional details&#8221;
</p></blockquote>
<p>Assuming you know enough about OS X to know how/where to view the Console, at the end of the log you may see something like this pair of entries:</p>
<blockquote><p>
ApplicationLoader[18609] *** Codesign error (please ignore invalid option comments): got requirements(0&#215;805a00, 525)<br />
Executable=/var/folders/0o/0oFmipSKGvqwVZcVZJPOgU+++TI/-Tmp-/starcatcher.app.zip/starcatcher.app/Star Catcher<br />
Identifier=no<br />
Format=bundle with Mach-O thin (armv6)<br />
CodeDirectory v=20001 size=1587 flags=0&#215;0(none) hashes=72+5 location=embedded<br />
Signature size=4274<br />
Authority=iPhone Distribution: Adam Martin<br />
Authority=Apple Worldwide Developer Relations Certification Authority<br />
Authority=Apple Root CA<br />
Signed Time=10 Aug 2009 16:55:51<br />
Info.plist entries=18<br />
Sealed Resources rules=3 files=24<br />
Internal requirements count=0 size=12</p>
<p>Executable=/var/folders/0o/0oFmipSKGvqwVZcVZJPOgU+++TI/-Tmp-/starcatcher.app.zip/starcatcher.app/Star Catcher<br />
got entitlements(0&#215;805e00, 299)<br />
codesign_wrapper-0.7.3: using Apple CA for profile evaluation<br />
AssertMacros: binary,  file: /data/conrad/security/codesign_wrapper/codesign.c, line: 205<br />
AssertMacros: code_signatures,  file: /data/conrad/security/codesign_wrapper/codesign_wrapper.c, line: 903
</p></blockquote>
<blockquote><p>
ApplicationLoader[18609] *** Error: /Users/adam/Desktop/starcatcher.app.zip: validation failures: (<br />
    &#8220;Application failed codesign verification.  Please see the console log for additional details&#8221;<br />
)
</p></blockquote>
<p>What&#8217;s the error message?</p>
<p>Ah, well, despite the second entry claiming that the console log will have an error &#8230; the error itself is missing (like so much of Apple&#8217;s documentation ;)). With a bit of imagination and &#8220;creative interpretation&#8221;, I spotted that:</p>
<p>Line 1:</p>
<blockquote><p>ApplicationLoader[18609] *** Codesign error (please ignore invalid option comments): got requirements(0&#215;805a00, 525)
</p></blockquote>
<p>Line 16:</p>
<blockquote><p>
got entitlements(0&#215;805e00, 299)
</p></blockquote>
<p>and inferred that there was a problem with a checksum, whereby it was expecting something that looked like X, but found something that looked like Y.</p>
<p>(NB: Apple&#8217;s appallingly bad lack-of-error-message may mean something completely different, but this guess lead to me trying something that ended up fixing the problem)</p>
<p>Looking carefully at my App, looking for signed things not being what were expected, I realised that my app was importing a static library that had been signed by someone else (partly because the new version of Xcode defaults to signing everything, all the time &#8211; which it should do, but I hadn&#8217;t got used to that new &#8220;feature&#8221; yet). With bad code-signing implementations, that can often be a problem (although I naively expected Apple to have a sensible implementation of code-signing, and it had never occurred to me this would be a problem with Xcode. Oops).</p>
<p>Speaking to the person who built that library, I found that the build config they&#8217;d used had been set to sign using a Developer provisioning profile. I re-built it using my Distribution provisioning profile, re-added the static lib binary it to my project, re-built my app &#8230; and the App Store upload finally succeeded.</p>
<p>Anyway &#8230; followup post coming soon on how to make static libraries work on iPhone with iPhone OS 3.0 / Xcode 3.1.3 and above (hint: Apple broke some of the things that used to work, and so sometimes you have to do it differently since OS 3.0 came along)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/11/uploading-iphone-app-to-app-store-fails-with-codesign-validation-error/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Web 0.1: Apple Customer Support: &#8220;please don&#8217;t email us, just sue us&#8221;</title>
		<link>http://t-machine.org/index.php/2009/08/11/web-01-apple-customer-support-please-dont-email-us-just-sue-us/</link>
		<comments>http://t-machine.org/index.php/2009/08/11/web-01-apple-customer-support-please-dont-email-us-just-sue-us/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 14:45:30 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Web 0.1]]></category>
		<category><![CDATA[amusing]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=637</guid>
		<description><![CDATA[I saw an article recently that described this attitude nicely: certain weak marketing executives believe that the purpose of a &#8220;conversation&#8221; is for them to have more ways of telling the customer what to do; they are seemingly incapable of understanding the idea that a &#8220;conversation&#8221; involves listening to the other person.
To them, email is [...]]]></description>
			<content:encoded><![CDATA[<p>I saw an article recently that described this attitude nicely: certain weak marketing executives believe that the purpose of a &#8220;conversation&#8221; is for them to have more ways of telling the customer what to do; they are seemingly incapable of understanding the idea that a &#8220;conversation&#8221; involves listening to the other person.</p>
<p>To them, email is a &#8220;one-way broadcast medium for us to tell the customer what to buy&#8221;, rather than &#8220;a two-way communication medium that allows us to listen and respond to our customers&#8221;.</p>
<p>Today, I received a great example. Here&#8217;s an email I received one month ago, from Apple:</p>
<blockquote><p>
&#8220;Thank you for renewing your iPhone Developer Program membership. New Expiration Date: 10 Aug 2010&#8243;
</p></blockquote>
<p>And here&#8217;s the email I received today, from Apple:</p>
<blockquote><p>
&#8220;your iPhone Developer Program has expired&#8221; (sent from address: &#8220;noreply-iphonedev@apple.com&#8221; )
</p></blockquote>
<p>A triple-whammy on appalling customer support there:</p>
<ol>
<li>Erroneously (I hope) claiming that they are NOT providing a service they have committed to providing
<li>Taking money from a bank account in return for a service that they then don&#8217;t provide (that bit&#8217;s illegal)
<li>&#8230;and:
<li>Sending all correspondence from an email address that they mark &#8220;noreply&#8221;; i.e. &#8220;if we (Apple) screwed up, we don&#8217;t want to hear from you. We don&#8217;t want to fix it. Go away&#8221;
</ol>
<p>I especially like the way they put this all together, so you get the implication that:</p>
<blockquote><p>
Apple would prefer me to sue them (Apple), or file a claim against them for fraud, than to let me send them a simple email and spare them the fallout of their stupid mistake.
</p></blockquote>
<p>Using a two-way media to deliberately ignore your customers? That&#8217;s Web 0.1.</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/08/11/web-01-apple-customer-support-please-dont-email-us-just-sue-us/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Venues with free wifi in Brighton &amp; Hove</title>
		<link>http://t-machine.org/index.php/2009/08/04/venues-with-free-wifi-in-brighton-hove/</link>
		<comments>http://t-machine.org/index.php/2009/08/04/venues-with-free-wifi-in-brighton-hove/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 10:07:49 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

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

		<guid isPermaLink="false">http://t-machine.org/?p=621</guid>
		<description><![CDATA[I&#8217;m trying to download the 3.0 OS update for iPhone&#8230;and being denied by Apple&#8217;s own software &#8211; that cannot even download a single file from a website (!)
It&#8217;s a 1GB download that you &#8220;must&#8221; download via iTunes, because &#8230; well &#8230; because &#8230; um &#8230; Apple hates web browsers? I don&#8217;t know. Hard to see [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to download the 3.0 OS update for iPhone&#8230;and being denied by Apple&#8217;s own software &#8211; that cannot even download a single file from a website (!)</p>
<p>It&#8217;s a 1GB download that you &#8220;must&#8221; download via iTunes, because &#8230; well &#8230; because &#8230; um &#8230; Apple hates web browsers? I don&#8217;t know. Hard to see why it is downloaded via iT at all, really. It is rather strange.</p>
<p>(EDIT: it has now dropped to being a 230 MB download; I have no idea why &#8211; it was only a hundred meg or so into the alleged 1 GB download when it crashed, and when I retried it became 230 MB. Odd&#8230;)</p>
<p>And yes &#8211; it really *is* downloading a website file (that&#8217;s all it&#8217;s doing):</p>
<blockquote><p>
GET /content.info.apple.com/iPhone/stuff.stuff/iPhone1,2_3.0_7A341_Restore.ipsw HTTP/1.1<br />
Host: appldnld.apple.com.edgesuite.net<br />
User-Agent: iTunes/8.2 (Macintosh; N; Intel)<br />
Connection: close
</p></blockquote>
<p>That&#8217;s missing a key line. The line that resumes the download from where it left off. Apple apparently decided to write a &#8220;crap&#8221; web-browser, and embed it inside iTunes. Why? Why, when they have one of the world&#8217;s best web-browsers, do they insist on writing an extra one &#8211; and missing out fundamental basic features (like resumable downloads)?</p>
<p>There are occasional latency spikes on my net connection. iTunes is such a terrible &#8220;web browser&#8221; that when this happens, it arbitrarily (note: no other web browser would do this!) decides to cancel the download. There is no &#8220;resume&#8221; option and no &#8220;retry&#8221; option.</p>
<p>Congratulations, Apple! Having 2 copies of the same &#8220;core&#8221; software, one which works and one which doesn&#8217;t, and not allowing the user to use the &#8220;good&#8221; one when they need to? You&#8217;re well on your way to becoming Microsoft :).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/07/28/apple-still-dont-know-how-to-use-the-internet-thingy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Apple: VAT, fraud, and UK customers&#8230;</title>
		<link>http://t-machine.org/index.php/2009/07/20/apple-vat-fraud-and-uk-customers/</link>
		<comments>http://t-machine.org/index.php/2009/07/20/apple-vat-fraud-and-uk-customers/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 00:06:07 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[amusing]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=618</guid>
		<description><![CDATA[Clearly stated on every single page on the Apple store (it&#8217;s the page footer):

Prices are inclusive of VAT (15%) but exclusive of delivery charges unless otherwise indicated.

In the Apple Store, Apple therefore appears to (maybe&#8230;actually does, considering they *clearly state* the above?) over-charge you for VAT. But there&#8217;s more to this (obviously &#8211; it would [...]]]></description>
			<content:encoded><![CDATA[<p>Clearly stated on every single page on the Apple store (it&#8217;s the page footer):</p>
<blockquote><p>
Prices are inclusive of VAT (15%) but exclusive of delivery charges unless otherwise indicated.
</p></blockquote>
<p>In the Apple Store, Apple therefore appears to (maybe&#8230;actually does, considering they *clearly state* the above?) over-charge you for VAT. But there&#8217;s more to this (obviously &#8211; it would be horrifically stupid if that were all: defrauding via VAT makes governments very unhappy indeed).<br />
<span id="more-618"></span><br />
When I looked into this in detail, it turns out that they are simply &#8230; lying &#8230; when it comes to the VAT charge. From their help pages on VAT:</p>
<blockquote><p>
Why do I pay 21.5% VAT on Electronic Software Download orders and other products which are classified as services?</p>
<p>The VAT rate for Apple customers who purchase Electronic Software Downloads or other Apple products which are classified as services under EU VAT law will be 21.5% Irish VAT. This is because the place of supply of these products under EU VAT law is Ireland as the country from where Apple Sales International makes these supplies.
</p></blockquote>
<p>(amusingly, that specific page (and only that page) has a custom page footer that adds a note specifically on the extra VAT that Apple charges you because of the low rate of corporate tax they&#8217;re paying for headquartering themselves in Ireland. Doesn&#8217;t mention the reason (lower taxes on their profits) &#8211; I added that bit myself :))</p>
<p>Ah. Thanks, Apple. It would be nice if you actually mentioned that at POS, perhaps even included it in the order summary (like most internet companies do)? Sigh. Also, I wonder at the legality of declaring you&#8217;re charging VAT at once price, and then actually charging it at a different price? I don&#8217;t really care &#8211; the difference is only a few pounds in this case &#8211; but someone buying 10 copies of Adobe software might find it was a serious amount of money&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/07/20/apple-vat-fraud-and-uk-customers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Indie developers and gaming sites: stop breaking the web</title>
		<link>http://t-machine.org/index.php/2009/07/17/indie-developers-and-gaming-sites-stop-breaking-the-web/</link>
		<comments>http://t-machine.org/index.php/2009/07/17/indie-developers-and-gaming-sites-stop-breaking-the-web/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 11:46:34 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Web 0.1]]></category>
		<category><![CDATA[bitching]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=613</guid>
		<description><![CDATA[Over the past few weeks, I&#8217;ve been looking at a lot of independent developers&#8217; websites. It&#8217;s quite surprising how many of them go out of their way to make their site unusable &#8211; clearly thinking that they&#8217;re achieving the opposite. But also, today, Wikipedia started actively doing a very minor (but no less irritating) content-block [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few weeks, I&#8217;ve been looking at a lot of independent developers&#8217; websites. It&#8217;s quite surprising how many of them go out of their way to make their site unusable &#8211; clearly thinking that they&#8217;re achieving the opposite. But also, today, Wikipedia started actively doing a very minor (but no less irritating) content-block on mobile users. And last week, I found one of the main games-news sites is also actively *hard*-blocking mobile users.</p>
<p>This was annoying (and stupid!) 5 years ago, when sites added the &#8220;smartphones&#8221; to their content-blocking, even though smartphones could (and happily would) render full-fat webpages perfectly (tabbed browsing worked fine in Opera on Windows Mobile back in 2005 &#8211; I used it a lot).</p>
<p>Now, with the iPhone added to the list of clients that these sites are blocking, it&#8217;s a bit worse: Apple won&#8217;t allow you to purchase any web browser other than their version of Safari, and Safari won&#8217;t allow you to lie to the website and tell it you&#8217;re not using a cell phone (this was the standard workaround on windows mobile/opera for stupid web design teams: tell Opera to claim your cell phone was a Windows desktop). The iPhone, with a better quality web-browser than many desktops currently run? That&#8217;s just insane&#8230; </p>
<h4>Wikipedia: mobile users, go away</h4>
<p>Until/unless they decide to fix it, it&#8217;s now too much hassle to read WP pages unless I do it on my laptop. Since I&#8217;ve probably just followed a link from google, that would mean emailing myself the link from my iPhone, and going to WP via my desktop. More wasted time. I&#8217;ll just stop using wikipedia, thanks.</p>
<p>So far this morning I haven&#8217;t been able to access WP short of manually changing the URL to go to a country-specific Wikipedia mirror, switching to a &#8220;slow&#8221; (non-broadband) internet connection, reloading the page, and hitting the stop button before they redirect me to a &#8220;cut down&#8221; version, and no link to escape from it. There&#8217;s a link for you to &#8220;comment&#8221; on the new &#8220;feature&#8221;; my commentary would have been unprintable, so I declined.</p>
<h4>Gamespot: we don&#8217;t want money, money is for wimps</h4>
<p>The other week I noticed that Gamespot &#8211; one of the big ad-driven news + reviews/cheats/etc websites for games &#8211; is still locking-out all mobile users. That&#8217;s probably a fairly substantial load of ad revenue they are literally throwing away every day.</p>
<h4>The web, HTTP, and HTML&#8230;</h4>
<p>Why do people do this? I don&#8217;t know. But here&#8217;s a few points you should bear in mind:</p>
<ul>
<li>No website should ever block content based on the user&#8217;s device
<li>No website should ever have a flash-only front page
<li>Since the very first versions of HTTP and HTML in the mid-1990&#8217;s, the web has been designed to avoid these problems; this shouldn&#8217;t be happening
</ul>
<h4>Content Blocking</h4>
<p>Gamespot checks your web browser when you fetch any article, review, etc. If it finds you&#8217;re coming from an iPhone, then it refuses to let you view the content. Instead, it serves up a custom &#8220;news page&#8221; that is identical no matter which link you came in on. There is no way for you to see the actual content you tried to view &#8211; literally: they do an auto-redirect that wipes it from the URL.</p>
<p>I can see no reason for this other than the bizarre assumption that an iPhone was launched 10 years ago with a tiny black-and-white screen and an inability to scroll and render web pages. I would love to ask the Gamespot web design team: have you ever seen an iPhone? You do realise it has a better web browser than most desktop PCs, yes? So &#8230; why are you manually blocking them from your website?</p>
<p>Amazon has for a long time done a similar thing with any mobile device (again, sadly, the stupid bit is that they apply it to devices where it&#8217;s completely unnecessary) &#8211; except that Amazon has three essential features which Gamespot lacks.</p>
<p>Firstly, they do actually show you some of the content you were trying to view (not all of it. ARGH!)</p>
<p>Secondly, there&#8217;s always a link on the page to view the real version of the page. If you click that, it gives you a warning something like: &#8220;YOUR MOBILE PHONE MAY NOT RENDER THIS PAGE &#8230; ARE YOU SURE!!!!????!&#8221;. Of course, this is somewhat inappropritate when applied to most smartphones, especially iPhones. But hey &#8211; at least the option is there.</p>
<p>Finally, they have a link something along the lines of: &#8220;Do you want to permanently stop seeing the broken, cut-down version of pages on amazon.com? You can re-enable them whenever you want&#8221;.</p>
<p>Irritating, patronising, and foolish (the default should be &#8220;view the website normally&#8221;, not &#8220;don&#8217;t view the website&#8221;) &#8211; but at least you only have to fix it once, and you never again get problems. Gamespot et al offer no such option &#8211; they just block you, dead.</p>
<h4>Flash-only front pages</h4>
<p>About 50% of indie studios have decided to put a massive flash on their front page, most of them with *no* link to &#8220;skip intro&#8221; or &#8220;go to website&#8221; or any kind of navbar. About 50% of them (in my sampling over the past few weeks) have made that flash NON clickable: you cannot (you are &#8220;not allowed to&#8221; ?) view the &#8220;real&#8221; website until the flash has loaded, you have seen the self-promoting advert for the studio embedded in it, and clicked some internal link at the end. This was foolish, unnecessarily slow, and contrary to the spirit and standards that drive the web even 10 years ago when it first started happening.</p>
<p>Games industry companies please take note:</p>
<blockquote><p>
The 1990&#8217;s phoned &#8211; they want their web-designers back.
</p></blockquote>
<p>(real web companies don&#8217;t do this kind of thing any more)</p>
<p>But now, with the iphone, it&#8217;s particularly dumb: it is de-facto content blocking &#8211; because the iPhone cannot / will not run Flash. If the Flash is clickable, you can at least (if you know what the studio did &#8211; which many people won&#8217;t guess) access the site anyway. I&#8217;m amazed how many sites don&#8217;t even give you that small fillip.</p>
<p>If this post persuades JUST ONE web designer, somewhere, to wake up and smell the roses, and spares us yet another self-blocked website, then I shall be happy.</p>
<p>Of course, maybe I should be grateful that we&#8217;re even this far &#8220;ahead&#8221; &#8230; I heard from someone the other day that he still has to explain to web design teams that websites don&#8217;t need to be hardcoded for rendering at 800&#215;600 any more (i.e. that &#8211; OMGWTFBBQ! &#8211; everyone has rather larger desktop screen resolutions than that these days; or else so much smaller that hardcoding to 800&#215;600 isn&#8217;t going to help at all).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/07/17/indie-developers-and-gaming-sites-stop-breaking-the-web/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Brighton: 3 free iphone talks + networking, tomorrow</title>
		<link>http://t-machine.org/index.php/2009/07/14/brighton-3-free-iphone-talks-networking-tomorrow/</link>
		<comments>http://t-machine.org/index.php/2009/07/14/brighton-3-free-iphone-talks-networking-tomorrow/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 12:40:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[conferences]]></category>
		<category><![CDATA[games industry]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=611</guid>
		<description><![CDATA[If you&#8217;re in Brighton this week for the Develop conference &#8230; there&#8217;s a few places left at the free networking/talks event we&#8217;re doing tomorrow night:
http://upcoming.yahoo.com/event/3017732/?ps=6
(if you can&#8217;t make it, I&#8217;ll get all the slides on-line afterwards, so long as the speakers don&#8217;t mind)
&#8230;although we&#8217;re getting very close to capacity. Some people probably will change their [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re in Brighton this week for the Develop conference &#8230; there&#8217;s a few places left at the free networking/talks event we&#8217;re doing tomorrow night:</p>
<p><a href="http://upcoming.yahoo.com/event/3017732/?ps=6" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://upcoming.yahoo.com/event/3017732/?ps=6');">http://upcoming.yahoo.com/event/3017732/?ps=6</a></p>
<p>(if you can&#8217;t make it, I&#8217;ll get all the slides on-line afterwards, so long as the speakers don&#8217;t mind)</p>
<p>&#8230;although we&#8217;re getting very close to capacity. Some people probably will change their minds and not turn up, so it might be worth coming along anyway, even if there&#8217;s apparently no space left (and the venue have said they can make room for up to 10 more if they have to, althoguh it&#8217;d be a real squeeze, apparently).</p>
<p>PS: the organizers of the Develop Conference manage to be arrogant, rude, ****s for the third year running. They didn&#8217;t even deign to respond to my offers to schedule this event at a time that would be least conflicting with their evening schedule for the conference. I am constantly amazed at how many people they manage to piss-off every year, and rather sad, because I suspect it&#8217;ll gradually erode more and more of the value of the conference (all the people who refuse to come back, or refuse to speak in future) &#8211; and that would be a huge shame, because a summer conference in Brighton is great thing. If they can manage to stop being such ****s and doing their best to screw it up. Sigh.</p>
<p>PPS: FWIW, my reference to &#8220;third year running&#8221; is based on the things that I know they did / said to friends and colleagues in previous years. I learnt early on to expect nothing but rudeness from them, although I&#8217;ve been studiously polite each year, giving them the benefit of the doubt. Perhaps foolishly &#8211; but I hoped they might, you know, learn some basic courtesy at some point. Not yet.</p>
<p>&lt;/rant&gt; ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/07/14/brighton-3-free-iphone-talks-networking-tomorrow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want to help write a simple RPG for iPhone?</title>
		<link>http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/</link>
		<comments>http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 16:21:26 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[MMOG development]]></category>
		<category><![CDATA[computer games]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[games design]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=607</guid>
		<description><![CDATA[Now I&#8217;ve recovered from GDC illness, I&#8217;ve got a little free time again, and I&#8217;m starting one of the iPhone games I wanted to write. This is a &#8220;for fun and learning&#8221; project, so it&#8217;s deliberately chosen to be low maintenance / easy to make a first version / easy to extend later / etc. [...]]]></description>
			<content:encoded><![CDATA[<p>Now I&#8217;ve recovered from GDC illness, I&#8217;ve got a little free time again, and I&#8217;m starting one of the iPhone games I wanted to write. This is a &#8220;for fun and learning&#8221; project, so it&#8217;s deliberately chosen to be low maintenance / easy to make a first version / easy to extend later / etc. I need artists, designers, quest-writers, and programmers.</p>
<p>Well, I don&#8217;t *need* anyone; I can do this all myself. But I&#8217;d rather do it with other people, and I thought there might be some hobbyists reading this who&#8217;d like to do something similar.</p>
<p>EDIT: there&#8217;s now a googlegroup for people working on this. You *must* contact me first via email (see below) or your request to join will be automatically rejected. <a href="http://groups.google.com/group/dmclone" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://groups.google.com/group/dmclone');">http://groups.google.com/group/dmclone</a><br />
<span id="more-607"></span><br />
Super-short summary:</p>
<ul>
<li>Clone of Dungeon Master / Eye of the Beholder (google them if you haven&#8217;t played them)
<li>&#8230;except &#8220;online&#8221; (not sure how much direct multiplayer interaction to allow, but probably &#8220;a lot&#8221;)
<li>i.e: real-time / turn-based mixture, using simple fixed-perspective 2D-faking-3D graphics, and using the built-in pauses in gameplay to hide the network latency
</ul>
<p>I would like to do these bits myself (most important first)</p>
<ul>
<li>Server code
<li>Level design
<li>RPG system design
</ul>
<p>I would really like other people to do these bits (most important first)</p>
<ul>
<li>Graphics sets
<li>RPG system + balancing
<li>iPhone client
<li>Quests / scripting / level-design
</ul>
<p>I could do all that myself, easily enough. Fine. Whatever. But given my limited spare time, I&#8217;d rather focus on doing a small number of things (i.e. server code) better, with more depth, than doing the whole thing but much more shallow / weak.</p>
<p>For the first release, everything&#8217;s GPL licensed: code, content, everything. It&#8217;ll probably take us several releases to get something we&#8217;re happy with publishing, and at the start of each new release we might mutually decide to change the license; but we&#8217;ll start off with GPL and see how that works out.</p>
<p>If you&#8217;re interested, email me at adam.m.s.martin@gmail.com, tell me a bit about yourself, and what you&#8217;d like to do and why. Prior experience isn&#8217;t required &#8211; enthusiasm, personal interest, and &#8220;actually producing something&#8221; is. If I get no responses, I&#8217;ll just go ahead and do it all myself. Slowly :).</p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/06/28/want-to-help-write-a-simple-rpg-for-iphone/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Making MediaWiki secure (and fixing some config annoyances)</title>
		<link>http://t-machine.org/index.php/2009/06/26/making-mediawiki-secure-and-fixing-some-config-annoyances/</link>
		<comments>http://t-machine.org/index.php/2009/06/26/making-mediawiki-secure-and-fixing-some-config-annoyances/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 20:12:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[security]]></category>
		<category><![CDATA[server admin]]></category>

		<guid isPermaLink="false">http://t-machine.org/?p=602</guid>
		<description><![CDATA[(this assumes you are running Debian on your server; if not, I suggest you switch)
Mediawiki. One of the world&#8217;s less secure wikis? Probably. I use and install it a lot, and it&#8217;s usually &#8220;the compromise wiki&#8221;: it&#8217;s weak at a lot of things, but it&#8217;s the &#8220;least worst overall&#8221; a lot of the time. Here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>(this assumes you are running Debian on your server; if not, I suggest you switch)</p>
<p>Mediawiki. One of the world&#8217;s less secure wikis? Probably. I use and install it a lot, and it&#8217;s usually &#8220;the compromise wiki&#8221;: it&#8217;s weak at a lot of things, but it&#8217;s the &#8220;least worst overall&#8221; a lot of the time. Here&#8217;s my current standard fixes and tweaks.</p>
<p><span id="more-602"></span><br />
Strange, given how many people use wikis as a collaboration tool, that Mediawiki doesn&#8217;t do basic security out of the box, and has no user-options to enable any of these:</p>
<ul>
<li>Prevent non-image uploads (i.e. viruses, rootkits, etc)
<ul>
<li>Actually, I don&#8217;t have a simple fix for that one yet; but with the site locked-down to only pre-authorized users, its not quite so scary
</ul>
<li>Require login to see the wiki content
<li>Encrypt passwords when people login
<li>Prevent anyone on planet from &#8220;giving themselves&#8221; user accounts
<li>Basic upload / files / viruses security
</ul>
<p>By default (with no user-configurable settings for this) it also:</p>
<ul>
<li>Won&#8217;t let you upload most images (!)
<li>Has a naive idea of what an &#8220;image file&#8221; is &#8230; based on filename(!)
<li>Won&#8217;t let you edit the navigation bar
<li>Won&#8217;t give you a link to &#8220;create new user&#8221; (even though it has this feature)
</ul>
<p>So, here&#8217;s my list of fixes that I have to re-apply manually every time I install mediawiki; I do this often enough that I&#8217;m blogging it so I can just copy/paste them next time. This is tiresome; it would be nice if they just updated it to work like other webapps and have a &#8220;config&#8221; page &#8211; and even better if it did some of these by default or as options at install time.</p>
<h4>1. Use your webserver</h4>
<p>Assuming you use Apache (and if not, why not?), setup a virtual hosts file to force-redirect non-SSL traffic to an SSL version of the wiki domain. This *guarantees* that *all* wiki pages can&#8217;t be snooped off-the-wire, and has the benefit of preventing any cleartext sending of passwords.</p>
<p>Downsides: er &#8230; only one I can think of off the top of my head is that the CPU usage / traffic will increase from using &#8220;always on&#8221; encryption. Shouldn&#8217;t even be noticeable on modern server hardware&#8230;</p>
<blockquote>
<pre><code>
&lt;VirtualHost *:80&gt;
        ServerName wiki.securedomain.com
        ServerAdmin webmaster@localhost

        Redirect permanent / https://wiki.securedomain.com/
&lt;/VirtualHost&gt;
&lt;VirtualHost *:443&gt;
        ServerName wiki.securedomain.com
        ServerAdmin webmaster@localhost

        # only these two lines and the second in the file should differ
        #   from the default site
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem

        DocumentRoot /var/lib/mediawiki/
        ServerSignature On

&lt;/VirtualHost&gt;
</code>
</pre>
</blockquote>
<h4>2. Change mediawiki configfile settings</h4>
<p>You have to edit the config files manually on your webserver &#8211; if you don&#8217;t have access to your webserver files, you&#8217;re just screwed, sorry. Well, shell-access hosting is very cheap these days ($10 a month), shouldn&#8217;t be a problem&#8230;</p>
<blockquote>
<pre>
## Adam's default settings for LocalSettings.php

## *All* the following put together will prevent everyone on the web
## reading your data without even logging in, but will also allow your
## real users to login; don't miss any of these out, or you may be unable
## to login
$wgGroupPermissions['*']['edit'] = false;
$wgWhitelistRead = array("Special:Userlogin", "-", "MediaWiki:Monobook.css" );
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['createaccount'] = false;

## Basic obvious default: let users get rid of the ugly
##  default GUI (sidebar, stylesheets, etc)
$wgGroupPermissions['user']['editinterface'] = true;

## Put uploads ... somewhere sensible:
$wgUploadDirectory = "{$IP}/images";
$wgUploadPath = "{$wgScriptPath}/images";

## Ah, but they have a "security" system that will allow you to upload any
## virus you want, and hack the server, BUT ... it won't let you upload most
## image files. That's just ... stupid, IMHO.
$wgStrictFileExtensions = false;

## AND you can do this (note that it is STILL active even if the above flag
## is set to false).
## I was quite horrified that they use filename extensions as a security
## mechanism - this stops some kinds of simple attack (based on tricking
## the webserver - although you SHOULD already have your webserver
## setup to prevent this; if not, why not?)
## For other attacks ... Mediawiki's approach to security
## simply DOES NOT WORK. You *must* check the content
## of files, rather than the filename.
$wgFileBlacklist = array('php','phtml','php3','php4','php5','phps');
</pre>
</blockquote>
<h4>3. Setup each user by hand</h4>
<p>To create new users, you now need to manually go to this URL on your wiki:</p>
<blockquote><p>
/index.php/Special:UserLogin
</p></blockquote>
<p>(assuming you installed the wiki on its own domain name)</p>
<h4>4. Some final tweaks to add missing features</h4>
<p>AND, if you want to edit the navbar, go to: (yes, this is required: go there by hand, with the following &#8220;special&#8221; URL. It&#8217;s a terrible user-interface :( )</p>
<blockquote><p>
/index.php?title=MediaWiki:Sidebar&#038;action=edit
</p></blockquote>
<p>&#8230;but it gets worse, because that page alone uses a special syntax (not the Wiki syntax, sadly), so that adding either of the obvious misisng links is a bit of hassle. Here&#8217;s copy/pasteable working code:</p>
<blockquote><p>
* essentials<br />
** MediaWiki:Sidebar | edit-sidebar<br />
** Special:UserLogin|create user
</p></blockquote>
<p>(note: they BOTH have a unique syntax due to the way mediawiki is badly designed, and the first one WILL BREAK if you use the text &#8220;sidebar&#8221; instead of &#8220;edit-sidebar&#8221; (use anything, just NOT &#8220;sidebar&#8221; on its own))</p>
<p>More info:<br />
<a href="http://www.mediawiki.org/wiki/Manual:Preventing_access" onclick="javascript:pageTracker._trackPageview('/outbound/article/http://www.mediawiki.org/wiki/Manual:Preventing_access');">http://www.mediawiki.org/wiki/Manual:Preventing_access</a></p>
]]></content:encoded>
			<wfw:commentRss>http://t-machine.org/index.php/2009/06/26/making-mediawiki-secure-and-fixing-some-config-annoyances/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
