<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Matt Legend Gemmell</title>
	
	<link>http://mattgemmell.com</link>
	<description>Modesty is Lying</description>
	<lastBuildDate>Mon, 08 Feb 2010 17:17:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mattgemmell/rss2" /><feedburner:info uri="mattgemmell/rss2" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>NSConference 2010 US Workshop</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/9OltU0wNjqs/nsconference-2010-us-workshop</link>
		<comments>http://mattgemmell.com/2010/02/08/nsconference-2010-us-workshop#comments</comments>
		<pubDate>Mon, 08 Feb 2010 17:15:08 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[speaking]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1567</guid>
		<description><![CDATA[If you&#8217;re attending my workshop in the US at NSConference 2010, I&#8217;d like to ask you to please read this and email your questions, topics and suggestions for what you&#8217;d like to cover. Anything at all is most welcome; it&#8217;s your workshop, and the reason the UK one went so well is because so many [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re attending my workshop in the US at NSConference 2010, I&#8217;d like to ask you to please <a href="http://mattgemmell.com/2010/01/14/nsconference-2010-workshop">read this</a> and email your questions, topics and suggestions for what you&#8217;d like to cover. Anything at all is most welcome; it&#8217;s <em>your</em> workshop, and the reason the UK one went so well is because so many people contributed interesting points for us to discuss.</p>
<p>You can ask to remain entirely anonymous if you wish, and you can similarly contribute a question or issue that you&#8217;ve already solved &#8211; there might be scope for other views or some useful additions. In you have a possible topic in mind and aren&#8217;t sure about it, send it anyway!</p>
<p>You can send your thoughts to me via email to my gmail account (matt.gemmell) or to matt at this domain. Get those suggestions in.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/9OltU0wNjqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/02/08/nsconference-2010-us-workshop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/02/08/nsconference-2010-us-workshop</feedburner:origLink></item>
		<item>
		<title>Ask me anything</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/u-34E4aivqE/ask-me-anything</link>
		<comments>http://mattgemmell.com/2010/02/07/ask-me-anything#comments</comments>
		<pubDate>Sun, 07 Feb 2010 23:25:09 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[ask]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[formspring]]></category>
		<category><![CDATA[question]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1564</guid>
		<description><![CDATA[I discovered Formspring today via Twitter, and I think it&#8217;s an interesting idea: you can ask people questions on anything you like, and see their responses listed. Very simple and not very original, but the lack of a need to sign up (though you can if you want to) and the simplicity of the interface [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered <a href="http://www.formspring.me/mattgemmell">Formspring</a> today via Twitter, and I think it&#8217;s an interesting idea: you can ask people questions on anything you like, and see their responses listed. Very simple and not very original, but the lack of a need to sign up (though you can if you want to) and the simplicity of the interface is somehow very conducive to just asking and answering.</p>
<p>I&#8217;ve already answered almost 40 questions on all kinds of things (mostly Mac/iPad/iPhone UI/interaction questions), and I&#8217;ve love to hear yours &#8211; though please note that I&#8217;m more interested in giving my <em>opinions</em> on things than answering specific technical questions. You can <a href="http://www.formspring.me/mattgemmell">ask me a question here</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/u-34E4aivqE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/02/07/ask-me-anything/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/02/07/ask-me-anything</feedburner:origLink></item>
		<item>
		<title>How to compete with iPad</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/2BotEVO1wxE/how-to-compete-with-ipad</link>
		<comments>http://mattgemmell.com/2010/02/05/how-to-compete-with-ipad#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:26:14 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[compete]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[touch]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1542</guid>
		<description><![CDATA[This is an open letter to the many companies who want to compete with the iPad. Sony, HP, the JooJoo people; all of them.
Dear Potential iPad Competitors,
We&#8217;ve all seen the media furore about the iPad, and we know that this day has been coming for a long time. There&#8217;s something natural and seductive about the [...]]]></description>
			<content:encoded><![CDATA[<p>This is an open letter to the many companies who want to compete with the iPad. Sony, HP, the JooJoo people; all of them.</p>
<p><span id="more-1542"></span>Dear Potential iPad Competitors,</p>
<p>We&#8217;ve all seen the media furore about the iPad, and we know that this day has been coming for a long time. There&#8217;s something natural and seductive about the idea of a tablet computer. Something to do with the form factor, portability, implied intuitiveness and non-computery quality of the thing. It&#8217;s straight out of Star Trek, and a lot of people want one in their lives.</p>
<p>I&#8217;m a little worried about you, though. Your usual tactic is to simply copy the industrial design of the most successful product, reduce the price, then adopt a pump and dump strategy until your next quarterly financials. That&#8217;s fine in itself; that&#8217;s how business works. I just think you&#8217;re misinterpreting both why people are excited about the iPad (even if they don&#8217;t realise it), and what exactly you need to copy. I think you might be on a dead-end track without even realising it.</p>
<p>I&#8217;m here to help you. I mean that genuinely. As you read the previous paragraphs, you were probably assuming I was speaking in a sarcastic, mean-spirited Apple fanboy tone &#8211; I assure you that&#8217;s not the case. Yes, I&#8217;m a <a href="http://instinctivecode.com/">Mac/iPhone/iPad developer and contractor</a>, and I&#8217;m excited about the iPad, but I&#8217;m <em>more</em> excited by the general class of devices which iPad represents.</p>
<p>I don&#8217;t want Apple to be the only company who understands the potential and attraction of devices like these. I use an iPhone, but I&#8217;m glad that there are now many other touch-screen smartphones with polished interfaces, multi-touch capability, desktop-class web browsers and functionality-enhancing sensor hardware. A good idea is a good idea, and I&#8217;d like everyone to have access to it.</p>
<p>Competition is good, but only as long as it&#8217;s <em>good competition</em>. A flood of second-rate imitations doesn&#8217;t help anyone; not the customer, and not even your bottom line. The better you compete, the more marketshare you&#8217;ll have and the more choice the consumer will have. I&#8217;m trying to take a long-term view of this burgeoning market, because it&#8217;s the responsible thing to do given that I care about empowering people in general, rather than enriching one specific company (whichever company that might be).</p>
<p>So, let me tell you about a few areas in which I think you might have got the wrong end of the stick about iPad, and what you need to do to compete with it most effectively.</p>
<h4>Tablets aren&#8217;t computers</h4>
<p>Several of you have announced you&#8217;re going to create products that you call <em>tablet computers</em>. I think we&#8217;re immediately heading off down the wrong path here, at least if your intention is to compete with iPad and grab a decent chunk of the market. A big part of the reason for all the excitement about the iPad is that, similar to the Nintendo Wii in the videogames industry, it appeals to segments of the market which have not traditionally been targeted. Segments which are nevertheless ready and willing, as with Wii, to buy devices in their hundreds of thousands.</p>
<p>It&#8217;s difficult to get our heads around the fact that these non-technologically-savvy users can suddenly constitute a <em>core market</em> for a device, yet that&#8217;s the case here. Nintendo saw it, and Apple sees it too. It&#8217;s an uncomfortable realisation since these people are so unfamiliar to people like you, as hardware manufacturers, and me as a software engineer. This discomfort leads to a kind of understandable blindness, and more importantly can make us leave money on the table. The relative sales and demand figures for Wii vs PlayStation 3 and Xbox 360 over the last several Christmases are indicative of that.</p>
<p>When competing with iPad, you have to realise that, to your new core market, <em>tablets are not computers</em>. There&#8217;s no such thing (to your customer) as a &#8220;tablet computer&#8221;; the very name reduces the likelihood they&#8217;ll buy it. The potential of the tablet is that it&#8217;s not even seen as a computing device. This is an incredible opportunity to expand into a new market, if you&#8217;ll only commit to that mindset.</p>
<p>If you&#8217;re thinking of a &#8220;tablet computer&#8221;, you&#8217;re only coming halfway, and you&#8217;re asking your customers to come further than they want to. My advice to you is: commit to the vision of a <em>tablet</em>, not a <em>tablet computer</em>, and you&#8217;ll have taken the first step towards claiming your share of the money which your new customers are ready and waiting to spend.</p>
<h4>The tablet market isn&#8217;t the netbook market</h4>
<p>During his iPad introduction keynote, Steve Jobs essentially said that netbooks compromise on everything. What he meant was that netbooks are essentially a laptop with a series of cost-cutting measures applied in order to hit a particular price-point, in the hope that high unit sales will result. The premise of netbooks has proven to be financially valid, and they&#8217;re selling well &#8211; I&#8217;m even typing this post on one.</p>
<p>From your customers&#8217; perspective, it&#8217;s almost the opposite situation: netbooks compromise on <em>nothing but price</em>. To the potential tablet market, and most of the netbook market, computers are hard. They&#8217;re idiosyncratic, needlessly complex things that impose a daily cost in exchange for offering up their functionality. That&#8217;s true of all computers, regardless of OS or hardware. To much of the netbook market (and pretty much all of the tablet market), the only gesture of diplomacy towards the user that netbooks make is that they&#8217;re cheap. That&#8217;s not a strong basis for a customer relationship or a buying decision.</p>
<p>For this reason, the tablet market isn&#8217;t the netbook market. It&#8217;s true that tablets may cannibalise netbook sales, at least to some extent. But there&#8217;s a fundamental benefit: the actual <em>value proposition</em> of a tablet to the vast untapped true-consumer market is vastly higher than that of a netbook. To your customer, a tablet is a &#8220;compromise machine&#8221; <em>in the best possible way</em>. A tablet is something that people intuitively understand better than the alien and abstract form of a laptop or some arbitrary desktop computer. It&#8217;s critically important to capitalise on this, which leads me to my next point.</p>
<h4>Tablets aren&#8217;t hardware</h4>
<p>Many of you have shown in your tablet pre-announcements that you believe tablets like the iPad are hardware devices, but you&#8217;re wrong. A tablet device is, in itself, simply a touch-controlled display containing a computer. It&#8217;s the top part of a laptop but with touch sensitivity on the screen. That&#8217;s not a tablet, by any definition your customers will implicitly use.</p>
<p><em>A tablet is a synthesis of hardware and software.</em></p>
<p>If you&#8217;re planning to supply the one without the other (probably the hardware without the software), you will fail commercially. You&#8217;re not even in the same market. I&#8217;d like you to be in the same market because there&#8217;s always room for a wonderful new offering and no single company should own any space. But you have to sweep away this dangerously incorrect assumption.</p>
<p>If you&#8217;re going to put a desktop operating system onto a tablet device, you&#8217;re going to immediately alienate the vast majority of your <em>potential</em> customers. Note the word &#8220;potential&#8221;. Paradoxically, you may temporarily placate most of your <em>existing</em> customers, but you&#8217;re not innovating and you&#8217;re certainly leaving a lot of money on the table.</p>
<p>Even if you&#8217;re planning to run a desktop operating system with a tablet/touch-suitable <em>veneer</em>, I think it&#8217;s a poor decision. The breadth of value of your device will then be the extent of that veneer and the functionality it makes available, and nothing more. What you may think of as the powerful bonus of a full desktop environment will prove to be a limiting factor, and a frustration to your user. You have to <em>commit</em> to the device if you&#8217;re going to be relevant in this potentially very lucrative segment.</p>
<p>The greatest success will go to those who fully commit to the software. Your hardware must be good enough, but your software must be nothing short of excellent. Using an OS designed for a screen and a mouse and a keyboard, with or without a launcher or overlay as a token nod towards touch-based interaction, doesn&#8217;t count as remotely excellent. Customers want the tablet experience because they can focus on doing the things they want to do, and be free from the tyranny of computers which force an unfamiliar and abstract input mechanism on them, and software which assumes everyone is an idiosyncratic expert in the task they want to accomplish. Tablets are about people and goals, not machines and tasks.</p>
<p>It&#8217;s not possible to meet that expectation without designing it into the software from the ground up. Don&#8217;t sabotage your own efforts right from the outset.</p>
<h4>Limitations aren&#8217;t portable</h4>
<p>There&#8217;s been a lot of press about the limitations of the iPad, and you&#8217;re probably both frightened and overjoyed by it. Frightened because you don&#8217;t want those complaints to be levelled at <em>your</em> product, and overjoyed because you feel that if you overcome those limitations then you&#8217;ll have a strong comparative marketing campaign and a shot at the market.</p>
<p>Be very careful. For the most part, those oft-mentioned &#8220;limitations&#8221; are <em>limitations for a computer</em>. Yes, a computer without multitasking and Flash support and expandable storage and a built-in camera would indeed be relatively undesirable, and vulnerable to competition. But you have to remember that limitations <em>aren&#8217;t portable</em> between product categories.</p>
<p>As I mentioned, a tablet isn&#8217;t actually a computer. What constitutes a limitation on a tablet may not be a limitation on a computer, and vice versa. The key to understanding which is which lies in user perception, and not at all in technical details. Let&#8217;s look at some things which are listed as limitations of the iPad, from the point of view of customer perception of a tablet device.</p>
<p><strong>No multitasking</strong>, in the sense of running multiple UI-presenting apps simultaneously. The user doesn&#8217;t care about this. The small existing market of technically-savvy people do, but the majority of users switch between tasks without any regard to applications. They&#8217;re entirely happy to jump between their email client and web browser and ebook reader software without caring whether they&#8217;re launching and quitting them. Indeed, to most people, switching between apps <em>is</em> launching and quitting them.</p>
<p>There are indeed cases where there&#8217;s a real advantage to keeping things running in the background, say to obtain notifications of new instant messages or twitter updates; the iPad can do those things via other means like push-notification systems. The OS itself is fully multitasking-capable, and indeed many system process are running simultaneously at all times, so it&#8217;s possible we&#8217;ll see third-party background applications in future. The complaint about &#8216;lack&#8217; of multitasking is a false limitation which is meaningless to the majority of your potential market. Conversely, the benefits of improved stability and extended battery life are <em>very real</em>.</p>
<p><strong>No expandable storage</strong>. Users don&#8217;t care. There&#8217;s a 64Gb model, and data can be selectively synchronised to the device. Our lives are increasingly stored in the cloud and accessed remotely, and local storage is dying a slow death. By all means throw in whatever storage you can, but it&#8217;s a fallacy to assume that the power and weight costs of a hard drive are in any way a wise trade-off against solid state media in a tablet device, no matter how much storage hard drives can provide. Your user doesn&#8217;t really care, and the question is fast becoming irrelevant.</p>
<p><strong>Closed system</strong>. This is the very opposite of what your customers care about. The percentage of your customer base who make a buying decision based on the openness of a system (in terms of system-level customisation options, use of open source software or otherwise) is vanishingly tiny. They&#8217;re very <em>vocal</em>, certainly, but commercially they&#8217;re irrelevant. Pandering to this segment will most certainly damage your penetration into the market. Be extremely wary about sacrificing large-scale appeal for the sake of a tiny but noisy technical minority. The tablet space is in no way designed for or aimed at such users.</p>
<p><strong>The App Store walled garden</strong>. Your customers care about ease of discovering, browsing, buying and installing new apps; they don&#8217;t care in the least about whether it&#8217;s an open system or not. They don&#8217;t care about freedoms of developers, and developers themselves care more about visibility and marketing and sales than they do about pure principles of software democracy. The constraints of the App Store provide a unique, easily discoverable channel which is right in front of every user, and it also establishes at least a basic level of quality control. Your customers want everything that the App Store provides, and practically none of what it doesn&#8217;t. It&#8217;s a bonus, not a limitation.</p>
<p>Equally, there are some iPad limitations which might well be genuine shortcomings. There are two obvious examples which have been widely commented upon.</p>
<p><strong>No support for Flash</strong>. No-one except Adobe actually cares about Flash, but a huge number of people care about the stuff that just happens to be <em>made</em> with Flash. Apple&#8217;s decision not to support Flash is not purely a technological one (Flash&#8217;s graphics performance, CPU utilisation and corresponding power consumption aren&#8217;t <em>that</em> awful, though they can indeed be sub-standard), and for the average person there will indeed be places on the web with blue &#8220;missing plugin&#8221; icons where they instead expect a familiar game or widget.</p>
<p>This constitutes a genuine opportunity for a comparative benefit in your product, albeit a very small one. Remember: people care about content and experiences, and do not care in the least about Flash itself per se. The relevance of Flash is likely to decrease in future, and it&#8217;s by no means a killer feature. Flash support on a tablet device amounts to a bullet point, but probably a valid one when competing with iPad.</p>
<p><strong>No camera</strong>. From the average user&#8217;s perspective, I do think this is a valid limitation. It&#8217;s clear to every reasonable person in the world that Apple will at some point introduce an iPad model with a camera, but for now it&#8217;s a potential gap. Fill it, and compete &#8211; but don&#8217;t assume that you can substitute a camera for a core part of the tablet experience.</p>
<h4>Don&#8217;t miss the point</h4>
<p>The core message here is that there&#8217;s an enormous market out there who want to buy something they&#8217;ve only just learned about: the tablet <em>experience</em>. It&#8217;s not hardware alone, but the inseparable union of hardware and tablet-specific software which creates a device other than what they regrettably know as a &#8220;computer&#8221;. Don&#8217;t miss the point by creating something that&#8217;s only a missing link between computers and tablets, no matter how strong the temptation. That&#8217;s a path to mediocrity at best, and failure at worst.</p>
<p>I offer these thoughts honestly and genuinely, because I care about this class of device and its enormous potential to empower and connect people. I don&#8217;t mind which logo is etched or printed on my tablet, but I will choose it according to the best principles of a meritocracy. I just want to make sure you don&#8217;t take a wrong turn before many of you have even started down the road.</p>
<p>Please compete, but don&#8217;t compete blindly. Don&#8217;t make the mistake of retrofitting conventional computer thinking to what is a fundamentally new class of device. Every moment of jarring re-orientation of how we view bringing computing devices to market will pay dividends if you&#8217;re willing to commit to the potential your customers see in a tablet. I truly believe that you&#8217;ll thank me later if you&#8217;re only brave and visionary enough to see this opportunity for what it is.</p>
<p>I hope you&#8217;ll take some of this advice to heart; I truly do. I look forward to seeing what you bring to market.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/2BotEVO1wxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/02/05/how-to-compete-with-ipad/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/02/05/how-to-compete-with-ipad</feedburner:origLink></item>
		<item>
		<title>NSConference 2010 Workshop</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/rmWVTNrQU0g/nsconference-2010-workshop</link>
		<comments>http://mattgemmell.com/2010/01/14/nsconference-2010-workshop#comments</comments>
		<pubDate>Thu, 14 Jan 2010 16:59:18 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[speaking]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[according]]></category>
		<category><![CDATA[gemmell]]></category>
		<category><![CDATA[nsconference]]></category>
		<category><![CDATA[uk]]></category>
		<category><![CDATA[usa]]></category>
		<category><![CDATA[watg]]></category>
		<category><![CDATA[workshop]]></category>
		<category><![CDATA[world]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1532</guid>
		<description><![CDATA[This post is aimed at those attending my World According to Gemmell workshops at NSConference 2010, in either the UK or the US. If you&#8217;re already a confirmed attendee, you may very well receive an email to similar effect shortly. I&#8217;m looking forward to seeing all of you at NSConference, and particularly at our workshop.
My [...]]]></description>
			<content:encoded><![CDATA[<p>This post is aimed at those attending my <em>World According to Gemmell</em> workshops at <a href="http://nsconference.com/">NSConference 2010</a>, in either the UK or the US. If you&#8217;re already a confirmed attendee, you may very well receive an email to similar effect shortly. I&#8217;m looking forward to seeing all of you at NSConference, and particularly at our workshop.</p>
<p>My thinking regarding the workshop is that the best format is to work through several different discrete topics, much like my <em>World According To Gemmell</em> segments in <a href="http://www.mac-developer-network.com/category/shows/podcasts/mdnshow/">the MDN Show podcast</a>, exploring each one using examples and finding some best practices along the way. My feeling is that this way we can maximise the breadth of material covered and thus the benefit to everyone, without getting stuck in a narrow single exhaustive case-study or such. This willingness to cover plenty of topics in a discussion format was the main thing that was quoted as valuable from last year&#8217;s workshops.</p>
<p><span id="more-1532"></span>My main focus here, as with the show, will be on issues relating to application design (in the sense of core features for the application&#8217;s purpose, not the actual engineering side of things), interaction design, user interface and usability. I don&#8217;t see this being a code-focused workshop at all, but rather a chance for us to really explore some issues we&#8217;ve all come up against when deciding what to include in an app, what the user&#8217;s workflow will be, and how to make our user interface the best it can be. I envision this being a discussion-driven situation, which I think everyone can get maximum benefit from.</p>
<p>The structure of the workshop will be loose and modular to accommodate the various things we may wish to talk about. I&#8217;ll keep us on-track and make sure we&#8217;re getting through plenty of interesting topics, and we&#8217;ll all be contributing our thoughts and ideas (I hope). Expect far more talking and sketching than compiling. I don&#8217;t see this as being an everyone-tied-to-a-computer workshop either; I think the atmosphere to aim for is a directed group discussion on user-focused and app-design-focused issues. By all means bring along your laptop, of course, but don&#8217;t feel you need one.</p>
<p>In keeping with the above, the main way that we can all derive value from the workshop is if we can talk about our own actual projects. To that end, I&#8217;d like you to submit some of your own content for us to discuss, if you wish to. Here&#8217;s an example of the sorts of things that I think will work well:</p>
<ol>
<li>A tricky decision you&#8217;re making regarding the functionality of your app.</li>
<li>A UI problem you&#8217;re having.</li>
<li>A question about the best way to integrate (from the user&#8217;s perspective) a new feature into your app, or whether you even should.</li>
</ol>
<p>This is by no means an exhaustive list; indeed, it&#8217;s just to give a flavour of the kind of thing that I think the workshop environment can help us all with. I&#8217;d like to invite you to submit any such possible topics regarding your own work to me via email, to be possibly brought up during the workshop. This applies even if you&#8217;ve already solved your issue but still feel it would be interesting to get a second opinion, or just a valuable topic to discuss. Indeed, even if the issue doesn&#8217;t pertain directly to your own projects but is just an interesting point for the group to discuss, that&#8217;s great too.</p>
<p>You can include anything you like, be it screenshots or such, but please do at least include a brief summary of the topic/issue/whatever, and a brief description of what you&#8217;d like to get from the discussion. If you&#8217;re talking about an actual app of yours, please bring a copy with you to the workshop too, so everyone can take a look at it.</p>
<p>Please send your submissions to me via email to <code>matt.gemmell</code> (at gmail) or to <code>matt</code> at this domain, using the subject &#8220;<strong>NSConference 2010 UK workshop</strong>&#8221; (or use &#8220;<strong>US</strong>&#8221; if you&#8217;re attending the US conference). Don&#8217;t be shy about submitting anything, and feel free to suitably anonymise your application if it&#8217;s still top secret! I&#8217;d rather you submitted something that you weren&#8217;t sure was appropriate, rather than holding back.</p>
<p>The point of any workshop is for everyone who attends to benefit from it, and by discussing issues that we&#8217;re all facing in our own work, we can maximise that benefit.  I look forward to seeing your submissions soon, and to seeing you in person in a few weeks!</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/rmWVTNrQU0g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/01/14/nsconference-2010-workshop/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/01/14/nsconference-2010-workshop</feedburner:origLink></item>
		<item>
		<title>Windows 7 64-bit via Boot Camp with Snow Leopard</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/aeQlxP08qn8/windows-7-64-bit-via-boot-camp-with-snow-leopard</link>
		<comments>http://mattgemmell.com/2010/01/10/windows-7-64-bit-via-boot-camp-with-snow-leopard#comments</comments>
		<pubDate>Sun, 10 Jan 2010 21:29:49 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[64 bit]]></category>
		<category><![CDATA[assistant]]></category>
		<category><![CDATA[boot camp]]></category>
		<category><![CDATA[BootCamp64]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[iDefrag]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Safe Mode]]></category>
		<category><![CDATA[snow leopard]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[x64]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1507</guid>
		<description><![CDATA[I&#8217;ve just successfully installed Windows 7 (64-bit) on my iMac via Boot Camp, and wanted to post a few notes in the hope they&#8217;ll help anyone else who struggles with the process. This post describes how to resolve both an issue with Boot Camp Assistant (the &#8220;files cannot be moved&#8221; error), and also a problem [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just successfully installed Windows 7 (64-bit) on my iMac via Boot Camp, and wanted to post a few notes in the hope they&#8217;ll help anyone else who struggles with the process. This post describes how to resolve both an issue with Boot Camp Assistant (the &#8220;files cannot be moved&#8221; error), and also a problem where the Boot Camp drivers installer on Windows can refuse to install 64-bit drivers due to an &#8220;unrecognized system&#8221;.</p>
<p>My machine here is an early 2009 24&#8243; iMac 3.06GHz Core 2 Duo (model &#8220;iMac9,1&#8243;), with 4Gb of DDR3 RAM, a 1Tb internal drive and an Nvidia GeForce GT 130 (512Mb) graphics card. The version of Windows 7 I wanted to install is the 64-bit version of Windows 7 Ultimate, and I&#8217;m currently running Snow Leopard 10.6.2. Necessary tools include a Snow Leopard installation DVD, and of course the Windows 7 installation DVD.</p>
<p><span id="more-1507"></span>Mac OS X includes a utility called Boot Camp which allows you to dual-boot your machine between OS X and Windows. Boot Camp is essentially two things: Boot Camp Assistant (in your Applications -> Utilities folder in OS X) which allows you to partition your drive (in-place, non-destructively) to create a suitable partition for Windows, and the Boot Camp drivers (which are present on your OS X installation DVD).</p>
<p>The first step, then, is to launch Boot Camp Assistant in OS X and choose what size of Windows partition you want. Since I was installing the 64-bit version of Windows 7 (recommended minimum drive size of 20Gb, and ideally 32Gb), and I also wanted to install some large games under Windows, I chose a partition size of 50Gb. You probably won&#8217;t be able to select precisely 50Gb (it&#8217;s a slider control), so I chose slightly over that. I clicked partition, and after a few minutes, <em>it failed</em>.</p>
<p>I got the dreaded &#8220;some files cannot be moved&#8221; error, which is notorious (try googling for it) when trying to use Boot Camp Assistant. I then spent the better part of an entire day researching and trying solutions. I&#8217;m distilling those findings into the following list of things you can try if you encounter that error.</p>
<p>Try these steps <strong>one at a time</strong> and <strong>in the following order</strong>. After you have tried <strong>each</strong> solution, give Boot Camp Assistant another try. Hopefully you won&#8217;t have to try very many before it works. Naturally, since we&#8217;re modifying your disk, you should <strong>make sure you have a full backup first</strong>. It&#8217;s well worth delaying by a day or two, even if you need to buy a new Time Machine drive and then let a full backup run overnight, just so you have a disaster-recovery strategy.</p>
<ol>
<li>Boot your Mac into Safe Mode. You can do this by holding down the Shift key as soon as you&#8217;ve heard the startup chime/bong, and keep it held until you see the login window. Once you&#8217;re booted into Safe Mode, try using Boot Camp Assistant. Please note that Safe Mode is a graphical Mac OS X environment; it&#8217;s not to be confused with Single User Mode, which is a command-line environment you can instead boot into by holding Command-S during boot. Safe Mode prevents third-party kernel extensions (amongst other things) from loading, some of which can interfere with Boot Camp Assistant&#8217;s partitioning process. I&#8217;ve been told that <a href="http://www.obdev.at/products/littlesnitch/index.html">Little Snitch</a> (which I use) may be one such example.</li>
<li>Boot from your OS X DVD and run Disk Utility (it&#8217;s in the Utilities menu on the menubar once you&#8217;ve chosen a language in the installer screen). Select your primary hard drive, and click Repair Disk. As long as it manages to repair any errors it finds, you can then reboot from your hard drive and try Boot Camp Assistant again. If the repair fails, however, you need to skip down to the final step below.</li>
<li>(This is the solution that worked for me, even after trying most of the solutions above <em>and</em> below!) Boot from your OS X DVD and run Disk Utility. With your primary hard drive selected, go into the Partition tab. Now, <strong>reduce the size</strong> of your main partition by the same amount you want to later devote to Windows; i.e. if you want a 50Gb Windows partition then reduce your primary partition by that amount. Then, once Disk Utility has done that, <strong>increase the partition back to its original size</strong>. I know that sounds odd, but trust me. Disk Utility will perform these actions non-destructively (as long as you have sufficient contiguous free space). You <em>may</em> have to do the reduction and/or increase in several smaller stages. I managed to do the whole 50Gb in one stage, but I&#8217;ve read that sometimes it&#8217;s necessary to do it in multiple steps. Then reboot, and try Boot Camp Assistant again.</li>
<li>You might not have sufficient <em>contiguous</em> (adjacent, all-in-one-chunk) free space on your drive to make the partition, even if you do have enough free space <em>in total</em>. Thus, what we need to do is move all the stuff on your drive to the start of the drive in one big continuous chunk; this is of course called <em>defragmenting</em>. OS X does not include a defragmenting utility (as a Unix-based OS it <em>does</em> perform on-the-fly defragmentation, but not for all sizes/types of files). The utility of choice for performing this defragment seems to be <a href="http://www.coriolis-systems.com/">iDefrag</a>. I had many recommendations of it for solving this specific Boot Camp issue, and I did indeed buy a copy and run it before I solved my issue with the previous strategy (so perhaps my solution was actually the combination of iDefrag and the previous point). You should use the &#8220;Compact&#8221; defragmentation algorithm in iDefrag, which will necessitate running iDefrag from a bootable volume &#8211; iDefrag includes a utility to create such a volume, and you&#8217;ll of course need a blank (single-layer) recordable DVD and an optical drive capable of burning it. The defragmentation may take several hours; on my drive which had 14% file fragmentation in about 300Gb used on a 1Tb drive, it took around 2 hours. Afterwards, reboot and try Boot Camp Assistant again.</li>
<li>If you&#8217;ve got this far then you&#8217;ve just tried defragmenting, without success. You should now go back and try strategy 3 above (the Disk Utility partition shrink-then-expand one) <strong>again</strong>. As I said, this might have been the combination of tactics which <em>actually fixed the problem for me</em>. It&#8217;ll only take you another 10 minutes, and if it works then it&#8217;s a lot better than the last resort below.</li>
<li>If all else fails, you can do as Boot Camp Assistant suggests and boot from your OS X DVD, reformat your primary drive (as a single HFS+/Extended Journaled volume), and restore your entire drive from your backup &#8211; having a full Time Machine backup makes this a painless though understandably time-consuming process. You must have a full backup of your data first, since the reformatting process will of course destroy all data on your drive. This strategy, whilst a complete pain, <em>will</em> resolve the issue. In the unlikely event that you still have problems, it may be time to obtain a replacement internal hard drive.</li>
</ol>
<p>Eventually, using one or more of the strategies above, you&#8217;ll find that Boot Camp Assistant will successfully partition your drive. At this point, you can insert your Windows 7 installation DVD and click the Start Installation button (in Boot Camp Assistant). Your Mac will reboot and the Windows installer will begin; be sure to specify that it&#8217;s not an Upgrade installation, which was the default when I installed mine. Your partition has no current version of Windows on it, so you&#8217;re not upgrading.</p>
<p>It&#8217;s all relatively straightforward at that point, with the sole note that you must select the &#8220;BOOTCAMP&#8221; partition as the place to install Windows. You must <em>not</em> use the Windows installer to otherwise modify any partitions. Simply select the BOOTCAMP partition, click &#8220;Drive Options&#8221;, then click &#8220;Format&#8221; &#8211; the partition will be formatted as NTFS, which Windows 7 requires. It will happen rapidly, with no confirmation, but everything is OK. Click Next and continue with the installation.</p>
<p>My installation took around half an hour, during which the machine rebooted several times. Once you finally reach the Windows desktop, you&#8217;ll be on your wi-fi network (you&#8217;ll have selected it previously, entering a password if required), and your <em>wired</em> (or USB RF wireless, if you have such a mouse) keyboard and mouse will be working. If you have a Bluetooth Apple keyboard, you&#8217;ll want to have a USB wired keyboard lying around just until we get everything set up. You will probably currently have only your primary screen working (if you have more than one), and it&#8217;ll be at a low resolution (so everything will be huge and blocky/blurry). That&#8217;s fine, and we&#8217;ll fix it in a moment.</p>
<p>Windows will soon ask if it can download its various updates; you should allow it to do so (if Windows doesn&#8217;t ask to do so after a couple of minutes, you can just launch Windows Update from the Start menu). You can do this even if you haven&#8217;t yet activated your copy of Windows, since you have a 30-day grace period before that&#8217;s necessary. In the meantime, get all of the required updates. I also explicitly enabled 4 other &#8220;recommended&#8221; ones, including a Broadcom wireless driver, Nvidia drivers, a Win 7 64bit update, and something else. Basically, all the recommend/optional updates except the foreign language packs (you&#8217;re of course free to also install whatever language packs you&#8217;ll find useful at this point). They all downloaded and installed, and I restarted Windows. After the restart, your screen resolution should be back to your monitor&#8217;s native resolution.</p>
<p>Now, we must obtain suitable Boot Camp drivers (drivers for your Mac&#8217;s unique hardware, including your iSight, trackpad, backlit keyboard, and a host of other things). Such drivers are present on the Snow Leopard installation DVD, but there&#8217;s a snag: at time of writing (10th January 2010), the Boot Camp drivers installer on the Snow Leopard 10.6.0 DVD did <em>not</em> allow me to install the 64-bit drivers. It complained that my system was unrecognised (I&#8217;m not sure if it meant the Windows 7 64-bit OS or my particular iMac). If you&#8217;re reading this at a later time, Boot Camp may have been updated to resolve this issue. Likewise, if you&#8217;re installing the 32-bit version of Windows 7 rather than the 64-bit version, you won&#8217;t have the issue. In the meantime, we can still solve the problem.</p>
<p>(<strong>Note:</strong> on January 19th 2010, Apple released Boot Camp 3.1 with official support for Windows 7, resolving this issue. I&#8217;m leaving the information here intact though, in case it comes in handy for someone regardless. If you need to download Boot Camp 3.1, you can get the <a href="http://support.apple.com/kb/DL996">x86 32-bit version here</a>, or the <a href="http://support.apple.com/kb/DL979">&#8216;x64&#8242; 64-bit version here</a>. Those are .exe files which you&#8217;ll want to run from within Windows.)</p>
<p>What we&#8217;ll do is launch the BootCamp64 drivers installer directly, instead of allowing Apple&#8217;s gateway installer (setup.exe) to block us. To do this, you have to start a Command Prompt in Windows using elevated/administrator privileges. You can do so easily by using the Start menu to get to the Command Prompt icon (it&#8217;s in Accessories or some such group), then <em>right-clicking</em> it and choosing to launch it as an administrator (or with admin privileges, or whatever the wording is &#8211; there&#8217;s an option for it there in the right-click menu near the top, likely with a shield icon beside it).</p>
<p>From that command prompt, execute the BootCamp64 installer directly. Working from memory, it&#8217;ll be here or similar:</p>
<p>D:\Boot Camp\Drivers\Apple\BootCamp64.msi</p>
<p>(Assuming your optical drive containing the Snow Leopard DVD is drive D, of course.) You can literally type that entire path into the command prompt (without any explicit command before it), and hit return to execute it. Be sure to use backslashes instead of forward-slashes, since this is Windows. If you&#8217;re using a Mac keyboard, you may find that the backslash character is typed by hitting an unusual key; in my case it was the plus-minus/section key near the top-left of my Apple Wireless keyboard.</p>
<p>The installer will run and allow you to install Apple Software Update. Apple Software Update will then download and install appropriate 64-bit drivers from the internet. It took a good 5 minutes or more on my machine, and when it&#8217;s done it asks you to reboot. It all worked just fine.</p>
<p>You&#8217;ll then have a Boot Camp icon in your taskbar (or rather in the overflow menu of the taskbar) &#8211; it looks like a black diamond. It gives access to a few Mac-hardware-specific settings, including Startup Disk, a Brightness slider (on my iMac, anyway), whether the Function keys behave as regular function keys without pressing the Fn key (on my wireless keyboard), etc.</p>
<p>The only further thing I had to do was use the Bluetooth control panel (in Windows) to make sure it recognised my Apple Wireless keyboard, which it did after a couple of pairing attempts. Upon reboot, it finds the keyboard and pairs with it seamlessly, as on OS X. When rebooting into OS X, OS X still also finds and pairs with the keyboard too.</p>
<p>That should be it. You&#8217;ll want to activate your copy of Windows at some point in the first month, if appropriate, and naturally you may wish to invest in anti-virus software. You might also want to check your Windows Experience Index score; you can do so by choosing Computer from the Start menu, then clicking System Properties in the toolbar. On my system as specified previously, my score is 5.9 (the same sub-score for disk access, graphics and &#8220;gaming graphics&#8221;, with 6.6 for both RAM and CPU). Aero&#8217;s visual effects are all enabled by default, and performance is excellent.</p>
<p>You can boot back and forth between Windows and Mac OS X by either explicitly choosing which OS to restart into (via the Boot Camp control panel in Windows, or the Startup Disk pane in System Preferences in OS X), or you can choose at boot time by holding down the option/alt key during boot.</p>
<p>If you find that you want to use your Windows 7 Boot Camp installation whilst staying in Mac OS X (without having to boot your whole machine into Windows), remember that you can do so via <a href="http://www.vmware.com/products/fusion/">VMware Fusion</a> (it won&#8217;t damage your ability to later fully boot into Windows). If you later want to make your Windows 7 installation become entirely virtual (running it only virtualised in OS X, and no longer being able to fully boot into it), getting rid of the need to have an actual partition for it, Fusion can do that for you too.</p>
<p>An entire day or more of my life has disappeared, but hopefully your experience will be considerably less taxing. And to think I did this just so I could use my beta key for <em>Star Trek Online</em>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/aeQlxP08qn8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/01/10/windows-7-64-bit-via-boot-camp-with-snow-leopard/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/01/10/windows-7-64-bit-via-boot-camp-with-snow-leopard</feedburner:origLink></item>
		<item>
		<title>Resolutions 2010</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/eie6INay_lw/resolutions-2010</link>
		<comments>http://mattgemmell.com/2010/01/03/resolutions-2010#comments</comments>
		<pubDate>Sun, 03 Jan 2010 14:14:52 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[resolution]]></category>
		<category><![CDATA[year]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1493</guid>
		<description><![CDATA[It&#8217;s a new year (and the first really futuristic-sounding one since 2001), and I just want to make a very brief note of my resolutions/goals for the coming months.

Fear less. Fear is a useful survival tool, but in contemporary life we&#8217;re rarely (if ever) in immediate mortal peril. Anxiety can be a strong motivator and [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a new year (and the first really futuristic-sounding one since 2001), and I just want to make a very brief note of my resolutions/goals for the coming months.</p>
<ol>
<li>Fear less. Fear is a useful survival tool, but in contemporary life we&#8217;re rarely (if ever) in immediate mortal peril. Anxiety can be a strong motivator and can lead to improved performance, but you very quickly reach a point of diminishing returns and counterproductive stress. My primary goal for this year is to <strong>be less afraid</strong>.</li>
<li>See my mother, father and brother more. They&#8217;re my closest family members, yet I see them only a handful of times each year. There&#8217;s no way of knowing for how long we&#8217;ll all be around, and I haven&#8217;t been making enough effort to spend time with them. I want to <strong>spend more time with my immediate family</strong> this year.</li>
<li>Write fewer words more often. We all enjoy producing things, and complexity is the enemy of completion. Shorter, simpler things are also often better by default. I resolve to <strong>produce more and in smaller quantities</strong>. This also extends to generally working on projects that are as small as possible.
</li>
<li>Ship a mac software product. Being a self-employed contractor is wonderful compared to being an employee, but being a software vendor has always been the goal. Three years from now I&#8217;d like to be self-sufficient with my own software, and the first step is to <strong>release a 1.0 product</strong>.</li>
</ol>
<p>We can of course implicitly append the standard resolutions about eating more healthily, exercising more, being less selfish, appreciating others, learning whatever musical instrument you mistakenly feel is better than the one you already know how to play, and taking lessons in some resum&eacute;-tastic sport/leisure activity like scuba diving, flying light aircraft, or propelling an object around an area designated for the purpose such as to amass points of some kind.</p>
<p>The numbered points above, however, are my main focus and are how I&#8217;ll hold myself accountable in a year&#8217;s time. In keeping with point 3, I&#8217;ll leave it there.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/eie6INay_lw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2010/01/03/resolutions-2010/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2010/01/03/resolutions-2010</feedburner:origLink></item>
		<item>
		<title>World According To Gemmell – Getting Started</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/2Z7L0gVf0Pw/world-according-to-gemmell-getting-started</link>
		<comments>http://mattgemmell.com/2009/12/07/world-according-to-gemmell-getting-started#comments</comments>
		<pubDate>Mon, 07 Dec 2009 14:45:18 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[gemmell]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mdn]]></category>
		<category><![CDATA[motivation]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[world according to gemmell]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1484</guid>
		<description><![CDATA[Just a quick note that the MDN Show podcast episode 14 is now available, including my eleventh World According To Gemmell segment. In this episode, I talk about getting started: planning your development process so you can stay motivated and make some progress on your app, even if you can only find short periods of [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note that the <a href="http://www.mac-developer-network.com/shows/podcasts/mdnshow/mdn014/">MDN Show podcast episode 14</a> is now available, including my eleventh World According To Gemmell segment. In this episode, I talk about getting started: planning your development process so you can stay motivated and make some progress on your app, even if you can only find short periods of time to work on it.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/2Z7L0gVf0Pw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2009/12/07/world-according-to-gemmell-getting-started/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2009/12/07/world-according-to-gemmell-getting-started</feedburner:origLink></item>
		<item>
		<title>Computing Science as a Service</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/xeZLiijO9VE/computing-science-as-a-service</link>
		<comments>http://mattgemmell.com/2009/11/25/computing-science-as-a-service#comments</comments>
		<pubDate>Wed, 25 Nov 2009 20:53:18 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[University]]></category>
		<category><![CDATA[academia]]></category>
		<category><![CDATA[college]]></category>
		<category><![CDATA[computing]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1444</guid>
		<description><![CDATA[Computing Science is undoubtedly a science, a genuine field of academic research and enquiry, and the foundation of many different challenging and rewarding careers. However, as with the other sciences, it can also be thought of as a service, providing needed knowledge and techniques to apply to the pursuit of other disciplines.
Indeed, Computing Science is [...]]]></description>
			<content:encoded><![CDATA[<p>Computing Science is undoubtedly <em>a science</em>, a genuine field of academic research and enquiry, and the foundation of many different challenging and rewarding careers. However, as with the other sciences, it can also be thought of as a <em>service</em>, providing needed knowledge and techniques to apply to the pursuit of other disciplines.</p>
<p>Indeed, Computing Science is perhaps even more of a service than most other fields, since it can be applied to almost any scientific or engineering task. All scientific enquiry involves the capture, searching and analysis of data, and the majority of projects will have some need for the construction of models or simulations; Computing Science (or at the very least, programming) have much to offer in that regard.</p>
<p>But here we encounter a problem. Computing Science, partly in an understandable push to establish itself as a legitimate academic field in its own right, and partly because of the fact that the timetable for any science degree is invariably full, is usually completely absent from the curricula of other sciences. This is almost tolerable for undergraduate degrees, where the physicists and mathematicians can get by with a MatLab tutorial and crib-sheet, and the electronic engineers can take a half-semester of C programming arranged within their own department, but it becomes far more serious when we consider postgraduate research and doctoral work.</p>
<p><span id="more-1444"></span>I think there&#8217;s a very strong case for selected Computing Science education to be made available to students of other scientific disciplines (indeed, why limit it to the sciences?) as a tool for pursuing their own work. There&#8217;s a vast gulf of need between a sub-secretarial so-called &#8220;IT competency&#8221; course and the actual software engineering needs of, say, Ph.D. candidates in physics or materials science.</p>
<p>An incomplete or naive understanding of programming can lead to months and months of needless toil when constructing models or other complex systems. Execution times can be inflated by orders of magnitude due to a lack of awareness of suitable algorithms, or an absence of any education regarding time complexity and optimisation. Entire approaches could be radically altered and improved by availability of courses in algorithmics, database systems, information retrieval, distributed systems and more &#8211; all tailored to an audience with certain common needs and problems to solve, and a desire to dip in when necessary and then get back to more important things.</p>
<p>Computing Science is a formidable tool to facilitate scientific research, yet students of other disciplines often occupy an educational ghetto in this area, which places artificial and unnecessary pressures and limitations on their work. This is a difficult problem to solve, because of course it usually isn&#8217;t feasible to ask a physicist to devote 50% of one semester to programming courses, and 50% of the next to the study of data structures and algorithms. She is, after all, a <em>physicist</em> and has a full schedule in that capacity.</p>
<p>I&#8217;m not sure what the solution is. Perhaps some combination of:</p>
<ol>
<li>Departments of Computing Science making certain &#8220;night school&#8221; or overflow classes available on fundamental topics, open to all and scheduled out of normal hours, as a service to the academic community. These classes would presumably include discrete, focused courses on the basics of programming, software architecture, and introductions to common algorithms and optimisations thereof.</li>
<li>Computing Science teaching staff offering some portion of their non-research timetable (perhaps 5%, on alternating semesters?) as drop-in office hours for students in departments <em>other</em> than their own.</li>
<li>Collaboration with the other sciences to make their students aware of both the availability and benefits of the above &#8211; particularly to new postgraduates, R.A.s and Ph.D. candidates.</li>
</ol>
<p>The efficacy of and need for established principles of software engineering and Computing Science in general is well established, and this is arguably truest of all in the realm of scientific research &#8211; indeed, advancement in any one science is often borne of the fruits of the others combined. However, there exists a shortfall of adequate provision of Computing Science education to non-CS students and faculty members, which can be damaging to their work.</p>
<p>It is the moral and social responsibility of the relevant faculties (and indeed, of we practitioners of Computing Science) to take steps to address this problem for the good of science as a whole.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/xeZLiijO9VE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2009/11/25/computing-science-as-a-service/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2009/11/25/computing-science-as-a-service</feedburner:origLink></item>
		<item>
		<title>World According To Gemmell – Stay Focused</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/URsT8NUQVKY/world-according-to-gemmell-stay-focused</link>
		<comments>http://mattgemmell.com/2009/11/23/world-according-to-gemmell-stay-focused#comments</comments>
		<pubDate>Mon, 23 Nov 2009 17:56:38 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[gemmell]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[mdn]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[world according to gemmell]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1453</guid>
		<description><![CDATA[Just a quick note that the MDN Show podcast episode 13 is now available, including my tenth World According To Gemmell segment. In this episode, I talk about staying focused on your app&#8217;s core nature, and why it can be handy to ensure you can describe it in one sentence.
]]></description>
			<content:encoded><![CDATA[<p>Just a quick note that the <a href="http://www.mac-developer-network.com/shows/podcasts/mdnshow/mdn013/">MDN Show podcast episode 13</a> is now available, including my tenth World According To Gemmell segment. In this episode, I talk about staying focused on your app&#8217;s core nature, and why it can be handy to ensure you can describe it in one sentence.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/URsT8NUQVKY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2009/11/23/world-according-to-gemmell-stay-focused/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2009/11/23/world-according-to-gemmell-stay-focused</feedburner:origLink></item>
		<item>
		<title>Linode</title>
		<link>http://feedproxy.google.com/~r/mattgemmell/rss2/~3/_A6dDVtSN5w/linode</link>
		<comments>http://mattgemmell.com/2009/11/15/linode#comments</comments>
		<pubDate>Sun, 15 Nov 2009 12:21:21 +0000</pubDate>
		<dc:creator>Matt Legend Gemmell</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[slicehost]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://mattgemmell.com/?p=1410</guid>
		<description><![CDATA[I&#8217;ve had various sites hosted with Dreamhost for a number of years now, but lately I&#8217;ve been becoming aware that my needs have outgrown what shared hosting can provide. I thus began shopping around for a VPS provider, and I settled on Linode. I&#8217;m going to talk a little bit about Linode and my experience [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had various sites hosted with <a href="http://dreamhost.com/">Dreamhost</a> for a number of years now, but lately I&#8217;ve been becoming aware that my needs have outgrown what shared hosting can provide. I thus began shopping around for a VPS provider, and I settled on <a href="http://www.linode.com/?r=e453158f782bced09ea8c27a023fe84eb032bd2b">Linode</a>. I&#8217;m going to talk a little bit about Linode and my experience with them so far. If you&#8217;re also looking for a VPS provider, I think you should consider <a href="http://www.linode.com/?r=e453158f782bced09ea8c27a023fe84eb032bd2b">signing up with Linode</a> (disclosure: that&#8217;s a referral link; I&#8217;ll get $20 towards my hosting if you sign up).</p>
<p><span id="more-1410"></span>Dreamhost have been pretty good to me over the past six years; their plans are generous, and their web panel is the best I&#8217;ve ever seen. However, shared hosting can only go so far, and you&#8217;re largely at the mercy of other users on the same machine, without any guaranteed share of resources. There are also obvious limitations in terms of what you can and cannot do (though to be fair, I can&#8217;t recall an occasion when I&#8217;ve been simply unable to get something setup or installed with Dreamhost &#8211; the issue has more often been lack of control in terms of configuration, and an inability to accurately diagnose issues on my own).</p>
<p>There are occasional flaps on the internet about Dreamhost outages, but I&#8217;ve generally been fairly happy. I was moved to a new server a month or two ago and there have been several brief periods of downtime since then, and that acted as the catalyst to finally find a VPS provider to move my higher-traffic sites to. My Dreamhost account remains active and hosting a few other sites, and they&#8217;re also my current registrar. If you think shared hosting would suit you just fine, then I can still recommend Dreamhost &#8211; feel free to mention &#8220;mattgemmell&#8221; when you sign up (he said shamelessly).</p>
<p>So, to VPS. Getting a VPS provider isn&#8217;t expensive these days; there are plenty where you can get a basic plan for around $20/month (I&#8217;m currently on such a plan). I considered several providers, going initially by word-of-mouth to make me aware of what was out there, then filtering by general reviews and taking cost etc into account. I finally narrowed the list down to <a href="http://www.rackspacecloud.com/">Rackspace Cloud</a>, <a href="http://www.mediatemple.net/webhosting/gs/">Media Temple Grid-Service</a>, <a href="http://slicehost.com/">Slicehost</a>, and Linode.</p>
<p>All are well-regarded services, and I&#8217;m sure you&#8217;d be happy with any of them, but the two names which kept cropping up in recommendations both on the web and from people I know personally were Linode and Slicehost. It was almost down to the flip of a coin at this point, but Linode won out in terms of offering a higher memory allocation per dollar, and having such universal rave reviews. I should point out that I know several people who are with Slicehost, and are very happy customers. Like all purchasing decisions, do your research at the time you&#8217;re interested in buying, and see what seems to be the best deal for your own situation. For me, that was Linode.</p>
<p>I thus signed up with Linode, taking advantage of the 10% discount available when you pay for a full year (there&#8217;s also a 15% discount if you pay for 2 years, and you can cancel at any time regardless, so it&#8217;s silly not to take advantage of those offers). You can also pay month to month if you wish. You can <a href="http://www.linode.com/avail.cfm">choose your Linode datacenter</a> (try <a href="http://www.linode.com/speedtest/">downloading the same large file from each location</a> to check which is best), and being in the UK, after doing some tests I decided on Newark, NJ (<strong>Update</strong>: as of 7th December 2009, Linode now also have <a href="http://blog.linode.com/2009/12/07/linode-expands-into-europe/">a data-center in London</a> &#8211; existing customers can of course transfer their Linodes between data-centers freely). It was a matter of moments to provision my Linode (&#8220;Linux node&#8221;, naturally) and make it ready for installing a Linux distribution of my choice. As with all VPS providers, you have free reign to install and configure anything you like, from the operating system up, with full root access.</p>
<p>You can read much more about what Linode offers you on their own site, but a few points I particularly like are listed below:</p>
<ul>
<li>It&#8217;s very easy to install pretty much any Linux distribution you like via <a href="https://www.linode.com/features.cfm">the Linode web interface</a>, and they keep their distros bang up to date. Not that you&#8217;re limited to the distributions listed there, of course.</li>
<li>You can upgrade or downgrade your plan at any time, or resize or clone your disk images, all via the web interface.</li>
<li>You can get multiple Linodes and they&#8217;ll automatically go onto different machines, and you can make use of very fast and unmetered private bandwidth between them. That could be very handy if you want/need to move your database server to another physical machine, or perhaps serve static content on port 80 from a more modest server and keep Apache separate on port 8080 to handle dynamic stuff.</li>
<li>There&#8217;s a handy web dashboard with some indicative graphs of CPU usage, network traffic and disk I/O over the last 24 hours (on a 5-minute average).</li>
<li>They provide out-of-band web-based shell access to your box, in the event that you can&#8217;t reach it via conventional ssh for whatever reason (perhaps you&#8217;ve locked yourself out, or disabled networking, or your site is being hammered or some such thing).</li>
<li>They have configurable custom email alerts for when you hit chosen averaged threshold values of CPU usage, disk I/O rate, incoming or outbound traffic, or transfer quota. There&#8217;s also a shutdown watchdog to reboot your machine, and <a href="http://www.linode.com/api/">an API</a> (over HTTP, returning JSON or WDDX) to boot, restart, and shutdown your machine, inspect and modify DNS settings, and so forth.</li>
<li>You can enable IP-whitelisting security (with automatic emailing to confirm new IPs) to access the web panel (which is always password protected too, naturally).</li>
<li>They do host DNS (with a nice web UI that makes it easy to clone existing zones, remotely import them or create new ones, configure TTLs, etc), but you&#8217;re of course free to run your own nameserver if you wish.</li>
<li>They provide a recovery distro (Finnix) which doesn&#8217;t occupy any disk space on your Linode account.</li>
</ul>
<p>The most major benefit for me, though, has been in terms of support. Whilst a VPS provider is naturally an unmanaged service, there&#8217;s a truly excellent <a href="http://linode.com/community">community of support</a> available for Linode users: everything from <a href="http://library.linode.com/">very well-written guides</a> to <a href="http://linode.com/forums">spam-free forums</a>, a <a href="http://linode.com/wiki">wiki</a>, a <a href="http://linode.com/irc">dedicated IRC channel</a> (on which I&#8217;ve always had immediate and helpful responses), and a support ticket system with replies often arriving within about 10 minutes. You can also <a href="http://twitter.com/linode">follow @Linode on Twitter</a>.</p>
<p>As someone for whom this is a first real foray into server setup and administration, it&#8217;s an enormous comfort to have these resources available. I&#8217;d make a buying decision on that point alone, based on my own experience over the past week.</p>
<p>Regarding my actual setup, I&#8217;m keeping it fairly simple for now. The server is running Ubuntu 9.10 (Karmic) and a standard LAMP stack for the blog, with just a few tweaks. I&#8217;m pointing the MX records to Google Apps for email (<a href="http://www.google.com/apps/intl/en/group/index.html">the Standard edition</a>, which is entirely free for up to 50 email accounts, though they do make you hunt to find it instead of the paid-for pro edition of Google Apps).</p>
<p>I&#8217;m using APC for PHP opcode caching, WP Super Cache for WordPress&#8217; rendered content, and another WP plugin (DB Cache Reloaded) for caching MySQL queries. I&#8217;ve lightly tweaked the configurations of Apache 2 (still with out-of-the-box prefork and mod-php) and MySQL, and I&#8217;ll continue to play with them as needed &#8211; after all, I have full root access and can configure and reconfigure as I choose. Everything is working brilliantly so far, and easily coping with this blog plus my business site at <a href="http://instinctivecode.com/">Instinctive Code</a>, and a few others besides.</p>
<p>My experience in moving over to Linode has been an extremely positive one, and at (less than, with the pro-rated discount) $20 per month, it seems to have been a very wise choice. If you&#8217;re in the market for a VPS provider, I can certainly highly recommend <a href="http://www.linode.com/?r=e453158f782bced09ea8c27a023fe84eb032bd2b">signing up with Linode</a>.</p>
<p><strong>Update:</strong> Two weeks after I wrote this post, Eivind Uggedal conducted a <a href="http://journal.uggedal.com/vps-performance-comparison">survey of VPS providers</a> including Linode, Slicehost, Prgmr, Rackspace and Amazon EC2. To quote from his post:</p>
<blockquote><p>
Summarizing the benchmarks gives us one clear winner: Linode. 32-bit gave the best results on the Unixbench runs while 64-bit was fastest on the Django and database tests. Since Linode also has the highest included bandwidth I have a hard time recommending any of the other providers if performance and price is most important for you.
</p></blockquote>
<p>I&#8217;d say that performance <em>and</em> price are indeed most important to me. It&#8217;s been about 3 weeks now, and I&#8217;m still very happy indeed with <a href="http://www.linode.com/?r=e453158f782bced09ea8c27a023fe84eb032bd2b">Linode</a>.</p>
<img src="http://feeds.feedburner.com/~r/mattgemmell/rss2/~4/_A6dDVtSN5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://mattgemmell.com/2009/11/15/linode/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://mattgemmell.com/2009/11/15/linode</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.267 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-09 05:33:57 --><!-- Compression = gzip -->
