<?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>xxcoder</title>
	<atom:link href="http://www.xxcoder.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xxcoder.net</link>
	<description>because girls can code too</description>
	<lastBuildDate>Sun, 01 Apr 2012 15:40:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Rhyme Harder: an alternative pair-programming provocation</title>
		<link>http://www.xxcoder.net/rhyme-harder-an-alternative-pair-programming-provocation</link>
		<comments>http://www.xxcoder.net/rhyme-harder-an-alternative-pair-programming-provocation#comments</comments>
		<pubDate>Sat, 31 Mar 2012 15:48:11 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[as3]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=1104</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<p>At March&#8217;s try{harder} Level Up conference, we did our usual day of <a title="Code Retreat" href="http://coderetreat.org/" target="_blank">code-retreat style</a> pair-programming.</p>
<p><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2012/03/Screen-shot-2012-03-31-at-16.56.043.png"><img class="alignleft size-medium wp-image-1118" title="The Pair-programming retreat cycle" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2012/03/Screen-shot-2012-03-31-at-16.56.043-292x300.png" alt="" width="292" height="300" /></a>The intent is to pair for around an hour at a time with a number of different partners. All code is thrown away at the end of each cycle, because the focus is on process and reflection, not progress. At the start of each cycle you begin again on the problem, as if the code you&#8217;ve written previously had never been written.</p>
<p>Whether or not you should keep the <em>understanding</em> you gained is a more complex question; it&#8217;s impossible to unlearn, but by cycle 6 you&#8217;re generally pretty certain that what you learned in cycle 1 was not that useful after all.</p>
<p>Pairs can vary language and approach &#8211; we used Ruby, Python and AS3 &#8211; but there&#8217;s an emphasis on some kind of test-driven process. Test-driving can happen through conventional TDD, BDD or &#8211; our favourite at try{harder} &#8211; &#8220;TDD as if you meant it&#8221;, in which all production code is written in the test case.</p>
<p>We like the <a title="TDD as if you meant it" href="http://cumulative-hypotheses.org/2011/08/30/tdd-as-if-you-meant-it/" target="_blank">&#8220;TDD as if you meant it&#8221;</a> approach because it forces you to defer committing to a definition of the solution in terms of classes, and we find that the code we write is often very different from the code we expected to write at the start of each session.</p>
<h4>Why change the exercise?</h4>
<p>In the past we&#8217;ve used <a title="Conway's Game of Life - wikipedia entry" href="http://en.wikipedia.org/wiki/Conway's_Game_of_Life" target="_blank">Conway&#8217;s Game of Life</a> as the provocation. It works well, but in some ways it feels too meaty (especially in AS3) &#8211; offering so much scope that it&#8217;s easy to vary sessions simply by shifting between the domains of the problem (the rules, the display, rendering, cycle controls and so on).</p>
<p>For the purposes of reflecting on tdd-fundamentals, clean code, method and variable naming, and so on, the provocation-problem chosen is almost irrelevant (provided it can be understood and held in mind without taking up too many attention slots). We were all set to use <em>Conway&#8217;s Game of Life</em> as usual, when, during a seminar about &#8216;hard to test&#8217; code, we stumbled upon a smaller problem that led to the opportunity to reflect in more detail on the &#8220;assumptions and understanding&#8221; axis of test-driven programming. We&#8217;ve nick-named the problem <strong>&#8220;Rhyme Harder&#8221;</strong> and it goes a little something like this:<span id="more-1104"></span></p>
<h3>Rhyme Harder</h3>
<ol>
<li>You are building a game to teach children (or second language students) about the alphabet letter names, in relation to simple phonics (sounds of letter combinations).</li>
<li>The player is offered a display which shows each of the 26 letters of the alphabet.</li>
<li>The player &#8220;wins&#8221; by clicking a sequence of letters which starts with A, ends with Z, and includes each of the 26 letters once and only once.</li>
<li>The sequence may not include any pairs of consecutive letters with names <em>belonging to the same phonic group.</em></li>
</ol>
<h4>Phonic groups</h4>
<p>Phonic groups pull together letters which have names which contain the same vowel sound &#8211; for example &#8220;A and K&#8221;, &#8220;B and C&#8221;, &#8220;M and N&#8221;. Phonic groups can potentially vary depending on country and region &#8211; &#8220;Zee and B&#8221; or &#8220;Zed and F&#8221;. In Scotland some accents would say &#8220;J and I&#8221; (so that the J rhymes with I) rather than &#8220;J and K&#8221;.</p>
<h4>Opportunities for variation</h4>
<p>In the first couple of cycles, most pairs were satisfied with exploring different ways of representing and checking &#8220;the rules&#8221;. Successive cycles revealed that the problem has plenty of scope for reflection and exploration &#8211; for example:</p>
<ul>
<li>Rules can be checked on a turn-by-turn basis, or only when the 26th item in the sequence is submitted</li>
<li>Checking the move can return a &#8220;yes&#8221; or &#8220;no&#8221; result, or a result which contains all the next valid moves (which could be useful for hinting)</li>
<li>It can be useful to explore how to open the way for sophisticated scoring options such as rewarding words spelled along the route</li>
</ul>
<p>What I find most interesting about exploring these alternatives is that frequently we pass through an <em>increase</em> in complexity, while we unpick our assumptions, and come out the other side with a <em>simpler</em> solution. <a title="Working with your complexity-dar" href="http://www.xxcoder.net/working-with-your-complexity-dar#CombinationGameExample" target="_blank">(Something I&#8217;ve also scribbled about before).</a> The experienced reminded me that questioning my assumptions explicitly can lead me to more elegant, less unwieldy solutions.</p>
<h3>Remembering to look down</h3>
<p>I&#8217;ve talked before about <a href="http://www.xxcoder.net/tdd-the-starwars-answer-vs-the-macgyver-principle">&#8220;The MacGuyver Principle&#8221;</a> in programming &#8211; in which the most important trait is the ability to just not look down. At the time I was thinking this way with regard to programming without tests, but pairing has led me to understand that <em>even when I&#8217;m testing, I still spend a great deal of energy just trying not to look down</em>. I&#8217;m wilfully blind to the assumptions that my tests make.</p>
<div class="note">Pairing forces you to make explicit the thought processes that we habitually keep implicit.</p>
<p>If you don&#8217;t find that process a little bit frightening, you&#8217;re probably doing it wrong.</p></div>
<p>Robin Wilding, aka <a title="Robin Wilding on Twitter" href="http://twitter.com/redannick" target="_blank">@redannick</a> , gave a great presentation at try{harder} about the benefits of striving for <strong>less</strong>, not more, flow.</p>
<p>Flow - <em>&#8216;wow, did 3 hours really just go past? I was totally in the zone, ah, wow, I really need to pee&#8230; &#8216;</em> &#8211; is how we get stuff done, but too much flow can allow us to stay suspended in wrong assumptions, Wile E Coyote style, only experiencing the crash to the floor when we finally, usually accidentally, look down.</p>
<div class="wp-caption alignnone" style="width: 360px"><img class=" " title="Wile E Coyote" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2012/04/Wile_E_Coyote.jpg" alt="" width="350" height="264" />
<p class="wp-caption-text">Just&#8230; don&#39;t&#8230; look&#8230; down&#8230;</p>
</div>
<p>Pairing forces you to look down far more frequently. Which hurts. On the up side, often it allows you to notice that you&#8217;re about to run off a cliff, before it happens. The more conceptually complex the problem (or provocation), the more value there is in pairing, in my experience.</p>
<h4>Suck it and see</h4>
<p>If you&#8217;re heading to <a title="Beyond Tellerand - Play" href="http://play12.beyondtellerrand.com/">Beyond Tellerand &#8211; Play in Cologne in April </a>(the conference that used to be FFK), come along to the <a title="Building Intelligent Applications Workshop" href="http://play12.beyondtellerrand.com/workshops.php#stray">post-conference pair-programming workshop on &#8220;Building intelligent applications&#8221;</a> that I&#8217;ll be running on the 27th April.</p>
<p>It&#8217;s 250 euros for the full-day workshop (the price is not entirely clear on the workshops page, but if you click through to bookings you should see the correct price there).  I&#8217;ll be writing more about what you can expect from that workshop in the coming days &#8211; feel free to get in touch via twitter if you have any questions about it right now. I can&#8217;t wait to see you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/rhyme-harder-an-alternative-pair-programming-provocation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>try{harder} Level Up: sponsored by JetBrains</title>
		<link>http://www.xxcoder.net/tryharder-level-up-sponsored-by-jetbrains</link>
		<comments>http://www.xxcoder.net/tryharder-level-up-sponsored-by-jetbrains#comments</comments>
		<pubDate>Mon, 12 Mar 2012 10:28:57 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=1091</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<p>Great news! I&#8217;m dead chuffed to be able to announce that <a href="http://www.jetbrains.com" target="_blank">JetBrains</a> are sponsoring <a href="http://www.tryharder.org.uk/level-up-2012/" target="_blank">try{harder} Level Up</a>. </p>
<p>Thanks to <a href="http://www.jetbrains.com" target="_blank">JetBrains</a>, all participants will get a full Personal License for <a href="http://www.jetbrains.com/idea/" target="_blank">IntelliJ IDEA 11</a>, which would normally set you back £155.</p>
<p><a href="http://www.jetbrains.com/idea/features/javascript.html" style="display:block; background:#fff url(http://www.jetbrains.com/idea/opensource/img/all/banners/idea468x60_white.gif) no-repeat 10px 50%; border:solid 1px #0d3a9e; margin:0;padding:0;text-decoration:none;text-indent:0;letter-spacing:-0.001em; width:466px; height:58px" alt="Java IDE with advanced HTML/CSS/JavaScript editor for hardcore web-developers" title="Java IDE with advanced HTML/CSS/JavaScript editor for hardcore web-developers"><span style="margin: 5px 0 0 51px;padding: 0;float: left;font-size: 12px;cursor:pointer;  background-image:none;border:0;color: #0d3a9e; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Can&#8217;t code without</span><span style="margin:0 0 0 205px;padding:18px 0 2px 0; line-height:13px;font-size:11px;cursor:pointer;  background-image:none;border:0;display:block; width:255px; color:#0d3a9e; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Java IDE with advanced HTML/CSS/JavaScript <br/>editor for hardcore web-developers</span></a></p>
<p><a href="http://www.tryharder.org.uk/level-up-2012/" target="_blank">try{harder} Level Up</a> is a collaborative-learning conference aimed at mid-to-senior developers with a <em>background</em> in ActionScript. It&#8217;s taking place next week &#8211; 19th to 23rd of March, in Nottingham, UK. </p>
<p>try{harder} Level Up is a residential course &#8211; you&#8217;ll be sharing a luxury lodge with other participants, and the freelance-discount price of £699 (reduced from £1300) includes accommodation and some food, so your only other costs will be transport, beer money and dinner. </p>
<p>Numbers are limited to 16 &#8211; 8 try{harder} Mentors, including the people who brought you Robotlegs and Swiftsuspenders, and 8 new participants (one of them could be you!).</p>
<p>We only have a handful of spots left, so get in fast!<br />
<span id="more-1091"></span></p>
<h3>Why IntelliJ IDEA?</h3>
<p>Many of the Mentors are IntelliJ addicts, and can run participants through the set up process, so that you&#8217;re up and running straight away. </p>
<p>We&#8217;ll favour using IntelliJ IDEA for our pair programming sessions because the high powered refactorings are particularly suited to &#8220;TDD as if you meant it&#8221;, in which <strong>new code is always written in the test case</strong> and only makes its way to production classes using <strong>refactoring tools</strong>.</p>
<p><a href="http://www.jetbrains.com/idea/" target="_blank">IntelliJ IDEA 11</a> is an ideal IDE if you&#8217;re working in multiple languages &#8211; with support for languages from CoffeeScript to Ruby (and of course AS3). In addition to all the built-in features, you can bolt on workflow-specific power-ups such as <a href="https://github.com/johnlindquist/open-source-plugins" target="_blank">John Lindquist&#8217;s Robotlegs and Signals plugins</a>.</p>
<p>We&#8217;re thrilled that JetBrains have taken the time to consider and support what we&#8217;re doing with try{harder} &#8211; if you want to attend next week&#8217;s Level Up, you can <a href="http://www.tryharder.org.uk/level-up-2012/" target="_blank">get all the info here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/tryharder-level-up-sponsored-by-jetbrains/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freelancers: try{harder} Level Up, £600 off!</title>
		<link>http://www.xxcoder.net/freelancers-tryharder-level-up-600-off</link>
		<comments>http://www.xxcoder.net/freelancers-tryharder-level-up-600-off#comments</comments>
		<pubDate>Sat, 10 Mar 2012 13:00:48 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=1086</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Newsflash: The price for freelance attendees of <a href="http://www.tryharder.org.uk/level-up-2012/" target="_blank">try{harder} &#8211; Level Up</a> will now be <strong>£699</strong>.</p></blockquote>
<p>How? The mentors originally agreed to do the conference for a nominal sum to cover expenses plus one day of pay, but in the interests of making try{harder} &#8211; Level Up accessible to more freelancers, we&#8217;re now running the conference on an expenses-only basis.</p>
<p>Although there&#8217;s only a week and a bit to go, we expect that at this price those last places will go fast &#8211; so, if you have an opening for the week of the 19th March and you don&#8217;t want to miss out, <a href="mailto:dailystraying@gmail.com" title="email Stray for more info">get in touch now</a>. (Hell, <em>make</em> an opening for the week of the 19th!)</p>
<p>The winter try{harder} 2012 will be the first week of October, but at present there are no slots at that conference available &#8211; all of the original group from 2011 have said they&#8217;d like to keep their place in 2012. So this is the only opportunity for newcomers to experience try{harder} in 2012.</p>
<h4>Should I really invest in flash-based learning, now?</h4>
<p>If you&#8217;re thinking of shifting away from AS3 as your primary platform, Level Up couldn&#8217;t be more suitable: </p>
<p>Till Schneidereit (Swiftsuspenders) has been working in JavaScript for some time, and as he&#8217;s also now helping Mozilla to develop FireFox, he can blow your mind with the latest live-debugging / rapid-prototyping tools available for JS.</p>
<p>Plus, most of the mentor sessions are platform neutral, and many are geared towards our current development climate:</p>
<p><strong><a title="Till Schneidereit" href="http://www.tryharder.org.uk/till-schneidereit/">Till Schneidereit:</a></strong> <strong>Project Forensics</strong><br />
How to detect the clues that allow you to make changes in someone else&#8217;s codebase, fast.</p>
<p><strong><a title="Shaun Smith" href="http://www.tryharder.org.uk/shaun-smith/">Shaun Smith:</a></strong> <strong>Robotlegs 2</strong><br />
Architecting for extension.</p>
<p><strong><a title="Stray (Lindsey Fallow)" href="http://www.tryharder.org.uk/stray-lindsey-fallow/">Stray:</a></strong> <strong>Fluent code</strong><br />
Creating DSLs, fluent APIs, helpful builders and meta code, with examples in AS3, php, Ruby and JavaScript.</p>
<p><strong><a title="David Arno" href="http://www.tryharder.org.uk/david-arno/">David Arno:</a></strong> <strong>You can be a polyglot too</strong><br />
How to efficiently analyse and adopt new programming languages.</p>
<p><strong><a title="Michal Wroblewski" href="http://www.tryharder.org.uk/michal-wroblewski/">Michal Wroblewski:</a></strong> <strong>Maximizing performance in mobile games</strong><br />
You&#8217;ll learn that optimizing performance on desktop and mobile require different strategies. Covering rendering options including the latest AIR SDK 3.2 possibilities and also which gaming frameworks will help you achieve this. Prepare for a &#8216;tricks&amp;tips&#8217; intensive presentation.</p>
<p><strong><a title="Robin Wilding" href="http://www.tryharder.org.uk/robin-wilding/">Robin Wilding:</a></strong> <strong>Maximising developer flow</strong></p>
<p><strong><a title="Angela Relle" href="http://www.tryharder.org.uk/angela-relle/">Angela Relle:</a></strong> <strong>How useful are your user stories?</strong></p>
<h3>Bonus offer: Come to try{harder} &#8211; Level Up and get a free ticket to btplay</h3>
<p>We&#8217;ve got one <a href="http://play12.beyondtellerrand.com/" title="Beyond Tellerand - Play" target="_blank">btplay conference</a> ticket to give away to the next person to sign up for Level Up who wants to attend both.</p>
<p>The btplay conference: <a href="http://play12.beyondtellerrand.com/" title="Beyond Tellerand, Play" target="_blank">Play, Beyond Tellerand, is 25th &#8211; 26th April, 2012, in Cologne, Germany</a>.</p>
<p>I&#8217;m speaking at the conference and also running an AI workshop on <a href="http://play12.beyondtellerrand.com/workshops.php#stray" title="Stray's workshop" target="_blank">Building Intelligent Applications</a> (Workshops are not included in the standard ticket we&#8217;re giving away). </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/freelancers-tryharder-level-up-600-off/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After flash: who are &#8216;we&#8217; now?</title>
		<link>http://www.xxcoder.net/after-flash-who-are-we-now</link>
		<comments>http://www.xxcoder.net/after-flash-who-are-we-now#comments</comments>
		<pubDate>Fri, 09 Mar 2012 13:24:49 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=1074</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<p>First up &#8211; the most exciting news: we&#8217;ve managed to secure some sponsorship for <a href="http://www.tryharder.org.uk/level-up-2012/timetable/" target="_blank">try{harder} Level Up</a>, that will reduce the price for freelancers (including those already signed up). If the cost is what was holding you back, <a href="mailto:info@tryharder.org.uk">get in touch</a> &#8211; there&#8217;s only 10 days to go! More info coming very shortly &#8211; we&#8217;re just finalising details, but I&#8217;m taking names who are interested.</p>
<p>But that also brings me right to the point: describing try{harder} has become much more difficult since the Adobe &#8216;incident&#8217; in November.</p>
<p>The original strap-line, <em>&#8220;collaborative learning for flash-platform developers&#8221;</em>, now feels like it weighs us down. That flash-platform is being eroded daily &#8211; we&#8217;re stuck in our very own 2D adventure game, and the ground is breaking up around us. Perhaps it&#8217;s on fire in some places&#8230; with particle effects and everything! <em>Can&#8217;t do that in HTML5 can you? Oh&#8230; but&#8230; anyway&#8230;</em></p>
<h3>We will always be flash developers</h3>
<p>Regardless of what tech we&#8217;re building our projects in tomorrow, if you and I have both spent three, or five, or even ten years building projects that were anchored by whatever incarnation the flash player was in at the time, that experience changed us. Our brains have been <em>physically moulded</em> by that process. We can&#8217;t un-make those connections.<span id="more-1074"></span></p>
<p>Not to say that we&#8217;re identical, but the nature of the brain-wiring that the process creates gives us a good chance of being able to have <strong>efficient, high quality communication</strong> about a problem. I often have great conversations with developers who work in other technologies, but the most concentrated goodness comes from sharing with other advanced AS3 devs, and the buzz I&#8217;ve experienced at FOTB tells me that I&#8217;m not alone. (Not that AS3 devs are better, but that my brain can dig their brain more effectively).</p>
<p>Crucially, the label<strong> &#8220;flash developer&#8221;</strong> gives us a way to identify each other &#8211; to recognise each other as potential sources of support. We&#8217;re a tribe, and the &#8220;flash developer&#8221; label serves the same purpose as the Christian cross, or the rainbow &#8211; it allows us to find each other in the crowd (or on Twitter), even if we&#8217;ve never met before.</p>
<p>And now, without much warning, the buffalo have gone away and our tribe is breaking apart.</p>
<h3>The pain you feel is not about technology</h3>
<p>I&#8217;ve felt anxious on and off since that horrible week in November &#8211; how about you? And I know that my anxiety is not about the requirement to learn something new &#8211; I love learning new things, and I know that much of my understanding of development is language and platform independent. <em>But I still feel anxious.</em></p>
<p>I suspect that the source of the anxiety is the breaking up of our tribe. It feels similar to the early-adulthood exodus. My friends who stayed behind in the town we&#8217;d grown up in <em>feel</em> that those who left thought they were stupid for staying behind. Those of us who left <em>feel</em> that we&#8217;re no longer welcome in the places most familiar to us.</p>
<div class="note">Everything changed and it feels uncertain, and human beings are allergic to uncertainty, because small, fleshy beings with pathetic teeth and claws can&#8217;t afford to be undecided about whether the rustle in the bushes was the wind or a tiger.</div>
<p>The flash-platform community is going through the same process as a million tribes before it. After a period of prosperity and stability, something shifts. The population outgrows the resources, or those resources are randomly disrupted, or there are rumours of dragons in the forests or gold in the river beyond the mountain. And some people up and leave straight away, and others follow them soon after &#8211; perhaps unsure which trail to take, but figuring that <em><strong>any</strong></em> path out is better than staying behind, and some folk can&#8217;t leave, or choose to stay behind.</p>
<h3>Sharing without judging</h3>
<p>In these circumstances, it&#8217;s hard to share our new experiences in technology without sometimes feeling like we&#8217;re being judged. <em>&#8220;Hey, check out this awesome js framework!&#8221;</em> has an echo of <em>&#8220;Quit hanging around where there are no buffalo, stupid!&#8221;</em> for those of us who are still shivering at the thought of actually writing JavaScript as a day job. (Hold any feedback on whether writing JS is actually fun or not, that&#8217;s not the point!)</p>
<p>And those of us who are left behind are, no doubt, increasingly defensive in our responses. It&#8217;s not that we don&#8217;t value your advice that we should be moving on, it&#8217;s just that really, we don&#8217;t want to hear it &#8211; because it suggests that we&#8217;re just <strong><em>uninformed</em></strong>, and in need of persuasion for our own good. So we don&#8217;t even respond with our usual respectful curiosity, we either bat it away or make references to the emperor&#8217;s new clothes. We RT the people who agree with us and gradually unfollow those who don&#8217;t.</p>
<p>So communication in these situations becomes increasingly hard, but it&#8217;s necessary. If we want to continue to benefit from the larger tribe&#8217;s shared pool of knowledge and wisdom and technology, and not all be sitting in our little caves reinventing the wheel (or asynchronous process token) from scratch, we have to push through this phase. We have to try to keep the communication going between those who stayed behind in the village and those who are forging new trails, <strong><em>without judging each other for being in either position.</em></strong></p>
<h3>try{harder} is a tool for keeping our tribe together</h3>
<p>I&#8217;m lucky to have found myself some amazing individuals who also happen to be flash platform developers &#8211; some of them now panning for js gold, some of them still in the flash village. <a href="http://www.tryharder.org.uk">try{harder}</a> is an opportunity to share with each other in a style that is intentionally de-polarising. We aim for a balance between the concrete and the abstract in our seminars &#8211; it&#8217;s not just &#8216;inspiration&#8217;, but neither is it so technically specific that it&#8217;s only relevant to a subsection of the group.</p>
<p>We&#8217;re a small enough crowd that it&#8217;s inevitable that before the week is out, <em>everybody will have asked at least one <strong>naive question</strong></em>, so we encourage and respond positively to naive questions as well as expertise. And our shared fluency in AS3 gives us a solid basis for <strong><em>communicating complex ideas</em></strong>, and collaborating in AS3 or other technologies.</p>
<p>But <em>&#8220;collaborative training for advanced developers-who-have-a-shared-basis-for-understanding-as-a-result-of-having-spent-significant-time-working-with-flash&#8221;</em> doesn&#8217;t really trip off the tongue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/after-flash-who-are-we-now/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>&#8220;Building Intelligent Applications&#8221; workshop: to pair or not to pair?</title>
		<link>http://www.xxcoder.net/building-intelligent-applications-workshop-to-pair-or-not-to-pair</link>
		<comments>http://www.xxcoder.net/building-intelligent-applications-workshop-to-pair-or-not-to-pair#comments</comments>
		<pubDate>Wed, 07 Mar 2012 12:51:45 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=1052</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really excited to be <a title="Stray's session: Robotlegs 2 and code fluency" href="http://play12.beyondtellerrand.com/speakers.php#session_stray">speaking</a> and giving a <a title="Stray's Workshop" href="http://play12.beyondtellerrand.com/workshops.php#stray">workshop</a> at the <a title="Play, Beyond Tellerand" href="http://play12.beyondtellerrand.com">Play / Beyond Tellerand conference</a> in Cologne, April 24th &#8211; 27th. This conference used to be FFK, and I&#8217;m gob smacked to be among such a <a title="Speakers at Play" href="http://play12.beyondtellerrand.com/speakers.php">stellar list of speakers</a>, and will no doubt be far too shy to speak to any of them (except Seb, who is equal parts digital-genius and teddy-bear).</p>
<p>My workshop is a deep exploration of the process of building smart systems that can solve complex problems. I like to think of the subject area as &#8220;Stop telling your software what to do!&#8221;<span id="more-1052"></span></p>
<h4>We&#8217;ll be building</h4>
<ul>
<li>recommendation engines</li>
<li>insight-extraction systems</li>
<li>really good optimisation strategies</li>
<li>neural networks that can learn to solve problems</li>
<li>and throwing in some game theory too</li>
</ul>
<p>The workshop is going to be held in <strong>Python</strong>, <em>but you don&#8217;t need any experience with Python to attend.</em> As long as you&#8217;re an <strong>experienced</strong> programmer, whether your primary language is ActionScript, JavaScript, Ruby, PHP, Obj-C, Java&#8230; you&#8217;ll find Python easy to read and quick to pick up.</p>
<div class="note">The choice of Python is not accidental: it&#8217;s the language in which much of this kind of work is done, but just as importantly it creates a level playing field between experienced programmers who typically work in other languages, so we can focus on concepts and not AS3/js syntax.</div>
<p>The workshop numbers will be at least six, and not more than twenty, participants. As this is an <em><strong>advanced</strong></em> programming workshop, I&#8217;m expecting we&#8217;ll be on the smaller side.</p>
<h3>To pair or not to pair?</h3>
<p>My intention is to run the workshop as a <em><strong>pair-programming </strong></em>day. We will be shifting between teaching, group discussion and pair-programming or paper-solving the next step in the problem. You can expect to work hard!</p>
<p>Pairs will rotate through the day, so you will pair with at least four other people. Whether you want to truly pair (work on a single machine passing the keyboard between you) or shadow-pair (each type on your own machines, but produce the same code through discussion), will be up to each pair to decide.</p>
<p>I&#8217;ve had great experiences of pairing, and even group coding, with other programmers &#8211; <em>especially programmers I&#8217;ve only just met</em>. We do a full day of pair-programming at <a title="try harder" href="http://www.tryharder.org.uk">try{harder}</a> and for many participants it&#8217;s one of the highlights.</p>
<p>But there&#8217;s no doubt that some folk don&#8217;t enjoy pairing quite as much. In fact, when I mentioned pairing in my workshop to some other, more experienced, workshop-leaders, they were surprised that I&#8217;d even consider it. So &#8211; here&#8217;s my attempt to explain why pairing up on problem solving is a winner. I&#8217;d value your comments, especially if you&#8217;re thinking of attending the workshop.</p>
<h3>Pairing leads to deeper understanding</h3>
<p>In solving the problem, you encounter not only your own responses to the problem, but also your partner&#8217;s responses, plus their responses to your responses, plus your responses to their responses. In my experience the value of each consecutive layer of response doesn&#8217;t diminish, but has a shape more like this:</p>
<div id="attachment_1053" class="wp-caption alignleft" style="width: 568px"><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2012/03/Screen-shot-2012-03-07-at-11.46.33.png"><img class=" wp-image-1053  " title="Pairing-insights" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2012/03/Screen-shot-2012-03-07-at-11.46.33.png" alt="Pairing leads to deeper insights" width="558" height="279" /></a>
<p class="wp-caption-text">Pairing leads to consecutive deeper insights</p>
</div>
<h3>Pairing works best when there&#8217;s no &#8216;code ownership&#8217;</h3>
<p>At <a title="try harder" href="http://www.tryharder.org.uk" target="_blank">try{harder}</a>, our pair programming takes the form of a <a title="Code Retreat" href="http://coderetreat.org/about">code retreat</a> &#8211; the most important rule is that <strong>at the end of each cycle, all the code is deleted</strong>.</p>
<p>In the workshop, you&#8217;d keep the code for reference later, but you don&#8217;t need to take it any further. You&#8217;re not going to be tied to this code on a project &#8211; in fact, unless you work in Python, the code itself is of no value &#8211; so the real long-lasting outcome is understanding.</p>
<p>So if your partner suggests something that sits outside your normal programming protocols, you&#8217;re free to experiment. Either you&#8217;ll learn something new that you may use again, or you&#8217;ll learn something about <strong>why</strong> you don&#8217;t ever want to use it again.</p>
<div class="note">Pairing is an opportunity to focus on alternatives, not just consensus. You can think of it as <a title="A/B Testing" href="http://en.wikipedia.org/wiki/A/B_testing">A/B testing</a> for your brain: the more paths you consider, the greater the quality of the solution and the depth of your understanding.</div>
<h3>I need your feedback</h3>
<p>I understand that pair-programming can be uncomfortable for some people. I&#8217;m an aspie myself, so I experience the shy factor, but I&#8217;ve found pair-programing / problem-solving to be one of the least uncomfortable social experiences, because the rules are well defined.</p>
<p>But &#8211; I could be smoking crack here. Are you sold on the benefits of pairing for this kind of workshop? Would you see it as an added benefit or a real drawback? Is there anything that would tip the balance for you?</p>
<p>Please vote in this poll, and feel free to leave comments too. If you want more information about my workshop at Play / Beyond Tellerand, just ask.</p>
<p>Thanks for your input!</p>
<p>&nbsp;</p>
<p><script type="text/javascript" src="http://twtpoll.com/js/ibadge.js"></script><br />
<iframe id="twpw_if" name="twpw_if" src="http://twtpoll.com/badge/if/?twt=o8hxu4&amp;b=1&amp;bt=1" frameborder="0" scrolling="no" width="100%" height="600"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/building-intelligent-applications-workshop-to-pair-or-not-to-pair/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>try{harder} Level Up</title>
		<link>http://www.xxcoder.net/tryharder-level-up</link>
		<comments>http://www.xxcoder.net/tryharder-level-up#comments</comments>
		<pubDate>Mon, 20 Feb 2012 20:57:40 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=997</guid>
		<description><![CDATA[March 19th-23rd: try{harder} Level Up is a conference with a difference:

5 days, 4 nights.
8 try{harder} mentors who took part in the original try{harder} and want to share it with…
8 new try{harder} participants who want to level-up.
Everybody teaches, everybody learns.]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.tryharder.org.uk/level-up-2012/"><img title="level-up ad" src="http://www.tryharder.org.uk/wordpress/wp-content/uploads/2011/10/Screen-shot-2012-02-16-at-13.48.59.png" alt="try harder level-up, March 19th - 23rd" width="500" height="358" /></a>
<p class="wp-caption-text">Are you ready to Level-Up?</p>
</div>
<p><strong>March 19th-23rd: try{harder} Level Up is a conference with a difference:</strong></p>
<ol>
<li><span style="color: #993300;"><strong>5 days, 4 nights.</strong></span></li>
<li><span style="color: #993300;"><strong>8 try{harder} mentors who took part in the original try{harder} and want to share it with…</strong></span></li>
<li><span style="color: #993300;"><strong>8 new try{harder} participants who want to level-up.</strong></span></li>
<li><span style="color: #993300;"><strong>Everybody teaches, everybody learns.</strong></span></li>
</ol>
<div class="note">try{harder} is a unique collaborative learning experience: everybody teaches one session, everybody learns in the other sessions. We also pair-programme, live, eat and create alongside our inspirational peers.</div>
<p>You can read more about <a href="http://www.xxcoder.net/try-harder-a-collaborative-flash-dev-conf">how try{harder} came about here</a>, or skip straight to the <a href="http://www.tryharder.org.uk/level-up-2012/">Level Up conference details</a>.</p>
<h2>Why this, and why now?</h2>
<p>We actually decided to run try{harder} Level Up almost as soon as we&#8217;d returned from the original event in October. All <a href="http://www.tryharder.org.uk/how-try-harder-works/tryharder-2011/">16 members of the original meeting</a> wanted to commit to a repeat event in 2012, and we felt that it would be ideal to run it as a &#8216;closed&#8217; group &#8211; we&#8217;d been changed by an incredibly rich experience and wanted to pick up from the same place next time.</p>
<p>But the experience also felt too valuable not to share. try{harder} was the best conference we&#8217;d been to. <em><strong>We&#8217;d learned more in those 4 days than at every other conference we&#8217;d ever attended, put together.</strong></em><span id="more-997"></span></p>
<p>So, it was suggested that perhaps the people who would benefit most of all would be those who are right on the cusp of becoming &#8216;advanced&#8217; developers. People who will be the fresh faces on the conference circuit in a year or two, given the right mentoring and an opportunity to learn not just about their discipline, but also about learning itself.</p>
<h2>And then Adobe murdered our baby</h2>
<p>I&#8217;d intended to launch the Level Up conference in November. And then there came the week of the <em><strong>Adobepocalyse</strong></em>, and it felt like there were more urgent conversations for our community to be having.</p>
<p>In the weeks following, what emerged was a feeling not that the conference was irrelevant, but that it was <strong>more relevant than ever before:</strong> we need to be ready to deliver projects in different ways, with stronger meta-skills and a broader understanding of the problem space we operate in than ever.</p>
<p>We don&#8217;t know what we&#8217;ll be doing 2 years from now, except that <em>it won&#8217;t be what we&#8217;re doing today.</em> In that context, a conference that covers a <a href="http://www.tryharder.org.uk/how-try-harder-works/tryharder-2011/">wide range of advanced development subjects</a> as seminars, where you also benefit from the insight emerging in the questions of fifteen of your peers from different backgrounds, feels like an excellent fit.</p>
<h2>Do you want to try{harder}?</h2>
<p>Pound (or dollar or euro) for pound and hour for hour, try{harder} will surpass any other learning experience available. You&#8217;ll also work with a try{harder} mentor to create your own seminar. So if you&#8217;ve ever wanted to speak at one of the major industry conferences, this is a chance to get the kind of experience that can make that possible.</p>
<p>We expect that you&#8217;ll become a member of the try{harder} family &#8211; with ongoing access to mentoring and advice from a diverse range of experts.</p>
<p>You&#8217;ll build relationships with other inspirational developers, and if you&#8217;re lucky then it can also lead to future work. Dominic (<a href="http://twitter.com/devboy_org" target="_blank">@devboy_org</a>) recently moved to San Francisco to work with Alec (alecmce), as a direct result of the time they spent coding together at try{harder}.</p>
<p>One of the things that emerged out of try{harder} in October was that many of us feel driven to work on meaningful projects, and this is something we hope to be able to collaborate on in future.</p>
<h3>But don&#8217;t just take my word for it &#8211; read for yourself:</h3>
<p><script src="http://storify.com/tryharder_as3/try-harder-2011.js?header=false&#038;sharing=false&#038;border=false"></script><noscript><a href="http://storify.com/tryharder_as3/try-harder-2011.html" target="_blank">View the story &#8220;try{harder} 2011&#8243; on Storify</a></noscript></p>
<h2>What to tell your boss</h2>
<p>If you&#8217;re selling this idea to your boss, they probably don&#8217;t want you dreaming about running away to join the try{harder} circus… but we do use each other for confidential consultation on technical problems; having a network of advanced developers who willingly lend their experience when you encounter something new or unexpected is invaluable.</p>
<p>Because of the size of the group, in every session you can ask the questions that make it relevant to the challenges you&#8217;re facing at work right now.</p>
<p>If you&#8217;re a mid-to-senior level developer you should leave try{harder} Level Up ready to lead projects. If you&#8217;re already a senior developer you&#8217;ll go back to work more effective, more efficient and more flexible than ever.</p>
<p>In his article <a href="http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html" target="_blank">&#8220;No Silver Bullet: Essence and Accidents of Software Engineering&#8221;</a>, Frederick P. Brooks analyses the key factors in creating great Software Designers &#8211; the people who don&#8217;t just write code, but creatively determine what code should be written (we probably refer to them as architects or technical leads). It&#8217;s worth reading the whole article but the part you need your boss to read is this final summary:</p>
<blockquote><p>How to grow great designers? Space does not permit a lengthy discussion, but some steps are obvious:<br />
1. Systematically identify top designers as early as possible. The best are often not the most experienced.<br />
2. Assign a career mentor to be responsible for the development of the prospect, and carefully keep a career file.<br />
3. Devise and maintain a career development plan for each prospect, including carefully selected apprenticeships with top designers, episodes of advanced formal education, and short courses, all interspersed with solo-design and technical leadership assignments.<br />
4. <strong>Provide opportunities for growing designers to interact with and stimulate each other.</strong></p></blockquote>
<p>try{harder} is a high quality, concentrated dose of point (4), picking up point (3) and creating opportunities for (2) along the way. All you need now is for your boss to identify you as advised in (1)!</p>
<p>[The article was written in 1987, but is cited in Peter Norvig's (head of research at Google) piece <a href="http://norvig.com/21-days.html" target="_blank">"Teach Yourself Programming in Ten Years"</a> which is also worth a read.]</p>
<h2>We understand that it&#8217;s a lot of money if you&#8217;re freelance</h2>
<div class="wp-caption alignleft" style="width: 310px"><img src="http://www.doubleedgerazor.net/wp-content/uploads/2011/08/Victor-300x235-he-liked-it-so-much.jpg" alt="Shaves as close as a blade or your money back." width="300" height="235" />
<p class="wp-caption-text">Shaves as close as a blade or your money back.</p>
</div>
<p>We&#8217;re self-employed too! We can see that although, on paper, it&#8217;s good value for 4 days of small-group learning (even before you consider the fact that it includes accommodation and some food), £1300 still feels like a <em>big</em> chunk of money. So here&#8217;s a deal: if you don&#8217;t feel that the conference has paid for itself within the six months after it, I&#8217;ll give you 2 days of my time, free, as a refund, working remotely on any AS3 project you choose.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/tryharder-level-up/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code as game design: fun++; frustration- -;</title>
		<link>http://www.xxcoder.net/code-as-game-design-fun-frustration</link>
		<comments>http://www.xxcoder.net/code-as-game-design-fun-frustration#comments</comments>
		<pubDate>Sun, 23 Oct 2011 17:02:48 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>
		<category><![CDATA[robotlegs]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=984</guid>
		<description><![CDATA[When you build an application or utility you are shaping a challenge for all the developers who ever interact with this code. For the rest of your team, for the future developers who maintain and extend the codebase, and for yourself - today, tomorrow, two years from now when you have no recollection of the code.

The challenge is akin to playing a game - and many of the rules of good game design apply just as well to your code base as the product of your compiled application.

A golden rule: 'Guess what I'm thinking' is not a fun game

But it is! I can hear some of you shouting. What about 20 Questions! What about ISpy! Yes, ok, they can be fun, given certain conditions: ISpy requires a small enough possibility space. It's more fun in a car than a supermarket. 20 Questions (a beautiful binary search of the whole universe!) relies upon having an agent that can accurately tell you which pile of hay your needle resides in.

Without those constraints, 'Guess what I'm thinking' is just frustrating.]]></description>
			<content:encoded><![CDATA[<p>When you build an application or utility you are shaping a challenge for all the developers who ever interact with this code. For the rest of your team, for the future developers who maintain and extend the codebase, and for yourself &#8211; today, tomorrow, two years from now when you have no recollection of the code.</p>
<blockquote><p>The challenge is akin to playing a game &#8211; and many of the rules of good game design apply just as well to your code base as the product of your compiled application.</p></blockquote>
<h3>A golden rule: &#8216;Guess what I&#8217;m thinking&#8217; is not a fun game</h3>
<p>But it is! I can hear some of you shouting. What about 20 Questions! What about ISpy! Yes, ok, they can be fun, given certain conditions: ISpy requires a small enough possibility space. It&#8217;s more fun in a car than a supermarket. 20 Questions (a beautiful binary search of the whole universe!) relies upon having an agent that can accurately tell you which pile of hay your needle resides in.</p>
<p>Without those constraints, &#8216;Guess what I&#8217;m thinking&#8217; is just frustrating.<span id="more-984"></span></p>
<p>Let&#8217;s try it:</p>
<blockquote><p><em>Guess what I&#8217;m thinking of right now</em>. I&#8217;ll give you a clue, it&#8217;s an actual concrete thing.</p>
<p>No, it&#8217;s not that.</p>
<p>No, it&#8217;s not that either.</p></blockquote>
<p>A comparison search of the whole probability space of &#8216;things&#8217; is going to take a pretty long time.</p>
<p>This is, in itself, the main reason why I have never shifted myself over the pain barrier to learn Flex. There are just too many moments in which I find myself being asked to guess what Adobe were thinking, without the mechanism to make that game much fun at all.</p>
<p>Instead I&#8217;ve chosen to play other games: learning ruby, python, particular domains of problem solving and so on. Games in which I regularly get to intuit an answer that I&#8217;ve never been explicitly told in order to solve the puzzle in front of me.</p>
<h3>Intuiting new solutions is fun (and the opposite of guessing)</h3>
<p>Game designers work hard on providing the minimum amount of information, just-in-time, for the player to progress in a game.</p>
<p>If you take something as simple as a Facebook &#8216;blitz&#8217; time-waster game, there are often layers of complexity which are invisible to the novice player, yet the player who is unaware of the hidden complexities isn&#8217;t penalised for their incomplete understanding.</p>
<p>As the player builds their experience, they eventually get sufficient exposure to the game&#8217;s patterns that usually they can intuit the additional layers without being spoon fed them. We may build in &#8216;hints and tips&#8217;, but for the majority of players these are timed so that they confirm what the player had already intuited for themselves.</p>
<div class="note">Intuiting new solutions is fun. It produces a dopamine hit that simply being told an answer does not. It results in excellent retention, motivation and the ability to teach (not tell) someone else the solution.</div>
<p>If we&#8217;re simply handed an answer that makes sense, or it is presented in a way that reveals a hole in our thinking, it can sometimes be satisfying, but usually the chemical impact of &#8216;given&#8217; information is minimal. So we don&#8217;t retain it. So we end up having to look it up all over again next time. We also only understand it as a specific solution to a specific problem, making it more difficult to teach someone else, who might have questions that expose the shallowness of our understanding.</p>
<h3>Robotlegs makes your codebase into a great game</h3>
<p>I experimented with Robotlegs and found that it brought fun to my codebase, and many other developers make the same claim. Of course it&#8217;s not perfect, but once I&#8217;d grasped a few key principles it felt as if I could intuit new solutions, and they often turned out to be correct.</p>
<p>Robotlegs felt like the original Tombraider games. I got a kick out of solving new puzzles for myself. I quickly felt confident taking on &#8216;boss&#8217; problems, and it didn&#8217;t feel like I was just mashing buttons until I happened upon the right combination.</p>
<p>Other frameworks and utilities have often felt more like the early Harry Potter games &#8211; you do a lot of wandering around and from time to time you have to resort to a cheat site to get any further because the solution to the puzzle is so unintuitive. Not fun.</p>
<h1>If our codebase is a game, how else can we maximise the fun?</h1>
<p>There are two major pieces of work on the question &#8220;What *is* fun?&#8221; that I&#8217;m aware of &#8211; <a title="14 Forms of Fun" href="http://accad.osu.edu/~pgarrett/730/gamasutra/Gamasutra-Fourteen-Forms-of-Fun.html" target="_blank">Pierre Garneau&#8217;s 14 Forms of Fun</a>, and <a title="8 Kinds of Fun" href="http://www.8kindsoffun.com/" target="_blank">Marc Le Blanc&#8217;s 8 Kinds of Fun.</a></p>
<p>I prefer Marc Le Blanc&#8217;s model, partly just because the list feels more applicable to a wide range of problems. I&#8217;ve worked with consultants on applying this list to job design &#8211; profiling people&#8217;s &#8216;fun preferences&#8217; against roles, and it maps well to teaching and writing as well.</p>
<h3>The 8 Kinds of Fun</h3>
<ul>
<li><strong>Sensation</strong> &#8211; Game as sense-pleasure</li>
<li><strong>Fantasy</strong> &#8211; Game as make-believe</li>
<li><strong>Narrative</strong> &#8211; Game as unfolding story</li>
<li><strong>Challenge</strong> &#8211; Game as obstacle course</li>
<li><strong>Fellowship</strong> &#8211; Game as social framework</li>
<li><strong>Discovery</strong> &#8211; Game as uncharted territory</li>
<li><strong>Expression</strong> &#8211; Game as soap box</li>
<li><strong>Submission</strong> &#8211; Game as mindless pastime</li>
</ul>
<p>If we substitute the word <em><strong>Code</strong></em> for the word <em><strong>Game</strong></em>, I see that <em>Code as mindless pastime</em> is a little tangential &#8211; though I don&#8217;t doubt that there are times when we want to bury ourselves in code so as to escape the world around us. I think the <em><strong>Fantasy</strong></em> and <strong><em>Discovery</em></strong> elements largely collapse into one concept for coders &#8211; exploring new territory / possibilities, often without a specific goal in mind.</p>
<h3>My 7 Kinds of Code Fun</h3>
<ul>
<li><strong>Sensation</strong> &#8211; Code as sense-pleasure</li>
<li><strong>Discovery</strong> &#8211; Code as experimentation</li>
<li><strong>Narrative</strong> &#8211; Code as unfolding story</li>
<li><strong>Challenge</strong> &#8211; Code as obstacle course</li>
<li><strong>Fellowship</strong> &#8211; Code as collaboration</li>
<li><strong>Expression</strong> &#8211; Code as soap box</li>
<li><strong>Submission</strong> &#8211; Code as distraction from the world</li>
</ul>
<h4>Sensation &#8211; Code as sense-pleasure</h4>
<p>Aesthetically, nicely laid out, clean code can be beautiful. It&#8217;s worth knowing that in brain-chemistry terms, &#8220;Truth&#8221; and &#8220;Beauty&#8221; are largely the same. The most attractive solutions combine both, something that <a title="Euler identity" href="http://en.wikipedia.org/wiki/Euler's_identity" target="_blank">mathematicians have always known intuitively</a>.</p>
<h4>Discovery &#8211; Code as experimentation</h4>
<p>Whether your terrain of choice is generative art, byte weaving or just the kind of &#8216;what if?&#8217; that lead Robert Penner to come up with AS3 Signals, there is something immensely satisfying about experimenting.</p>
<p>One of the reasons I advocate TDD is that a really comprehensive test suite allows coders (including you) to &#8216;play&#8217; in your production codebase safely.</p>
<h4>Narrative &#8211; Code as unfolding story</h4>
<p>The reason I trained as an engineer and not a pure scientist or mathematician is that I get a kick out of making *things* that enter the world as physical or virtual objects, and change people&#8217;s lives in small ways.</p>
<p>I don&#8217;t think it&#8217;s a coincidence that at try { harder } the group featured people who&#8217;d had prior careers as choreographers and in theatre. Many developers are in love with the process of bringing a story to life.</p>
<p>Agile processes with great test coverage allow us to add new &#8216;episodes&#8217; to the narrative of our product regularly.</p>
<h4>Challenge &#8211; Code as obstacle course</h4>
<p>This is the area programmers are most likely to be drawn to and aware of. Fixing bugs and delivering features feeds our ego and our families, and also keeps us from eating, sleeping and spending time with the people we love!</p>
<p>We want any obstacles designed in to our codebase to be the kind that can be overcome using the tools and patterns that novice users of the code can quickly pick up. And we want to avoid priming the player (developer) with red-herring solutions.</p>
<h4>Fellowship &#8211; Code as collaboration</h4>
<p>We can &#8216;collaborate&#8217; with other programmers in real time using pair or group programming, or in near-real-time, passing iterations back and forth between us. Probably just as frequently, we wind up &#8216;co-creating&#8217; work without ever having an interaction with the coder who comes before or after us.</p>
<p>Sometimes picking up someone else&#8217;s code is just a joy, and other times it&#8217;s a nightmare. My belief is that avoiding &#8220;Guess what I&#8217;m thinking&#8221; games in our codebase is the primary difference between the two. And no, comments, and even documentation, don&#8217;t get around this, because if there isn&#8217;t a coherent pattern that the game player can use to intuit novel solutions then it&#8217;s still no fun to have to reference the &#8220;cheats&#8221; constantly in order to make progress.</p>
<h4>Expression &#8211; Code as soap box</h4>
<p>Our code expresses what we believe about code. Have you ever met a developer who wasn&#8217;t passionate about their particular coding style?</p>
<div class="warning">As much fun as expression through our code is, we should probably try to ensure that we don&#8217;t sacrifice the other kinds of fun in the process.</div>
<h4>Submission &#8211; Code as distraction from the world</h4>
<p>Euro crisis? Shh&#8230; I&#8217;ve nearly got this code figured out&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/code-as-game-design-fun-frustration/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash on the Beach 2011</title>
		<link>http://www.xxcoder.net/flash-on-the-beach-2011</link>
		<comments>http://www.xxcoder.net/flash-on-the-beach-2011#comments</comments>
		<pubDate>Mon, 19 Sep 2011 10:44:57 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[processes]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=967</guid>
		<description><![CDATA[This was my first ever industry conference - what a shame I waited so long!

I only stayed a day and a half - partly logistics and partly that, being autistic, I find these situations very demanding and I wasn't sure how much I could absorb before my brain started playing up. I think I found just the right balance for a first-time, but would definitely stay for the whole conference in future.

My only regret is that I was too shy to interact with many of the other speakers. Conrad Winchester is a god send! And Seb Lee-Delisle is a really, really, really sweet person who I instantly felt relaxed with. But I should have pushed myself to talk more with some folk - though partly I was just valuing the interactions I was having with smart people around Robotlegs and so on.]]></description>
			<content:encoded><![CDATA[<p>This was my first ever industry conference &#8211; what a shame I waited so long!</p>
<p>I only stayed a day and a half &#8211; partly logistics and partly that, being autistic, I find these situations very demanding and I wasn&#8217;t sure how much I could absorb before my brain started playing up. I think I found just the right balance for a first-time, but would definitely stay for the whole conference in future.</p>
<p>My only regret is that I was too shy to interact with many of the other speakers. Conrad Winchester is a god send! And Seb Lee-Delisle is a really, really, really sweet person who I instantly felt relaxed with. But I should have pushed myself to talk more with some folk &#8211; though partly I was just valuing the interactions I was having with smart people around Robotlegs and so on.</p>
<p>I had the opportunity to talk with Jon Howard, who had the session that clashed with mine, at the speakers dinner. If I wasn&#8217;t already doing exciting things I&#8217;d have been hitting him up for a job for sure &#8211; I&#8217;d love to work on his team!</p>
<p>It&#8217;s an incredibly well organised conference. I was a little nervous about logistics as nobody had officially said to me &#8220;Your session will be in the pavilion, you need to get there x minutes beforehand&#8221; &#8211; but the number of people who&#8217;ve got knowledge of how it all works from previous experience means that my peers were able to gently steer me in the right direction and it was all very smooth and felt like a very collegiate way to do logistics.</p>
<p>Respect to John, and all those who worked hard to deliver Flash on the Beach. A new name is in the pipeline but I won&#8217;t hesitate to go back, whatever they call it, as a speaker or as an attendee. It&#8217;d be great to see more techy women there in future, but the blissfully empty women&#8217;s toilets were a pleasant novelty!</p>
<p>Here&#8217;s my take on the sessions I got to attend&#8230;<br />
<span id="more-967"></span></p>
<h2><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1233">DEVELOPER CONSOLE FOR FUN AND PROFIT</a> - ANDREAS RØNNING</h2>
<p>This was a really interesting presentation thwarted only by the fact that it needed to be at least twice as long &#8211; every feature Andreas Demonstrated just filled me with questions.</p>
<p>To be honest I had a slightly negative bias against the console as a debugger before Andreas began &#8211; I&#8217;d seen how technically impressive it was in the video of his 2010 Elevator Pitch, but I&#8217;m an ardent TDDer and only fire up the debugger a handful of times each year, preferring to write assertions to explore odd behaviours. As it turns out, the console is much more than just a debugger.</p>
<p>In essence, the Doomsday Console gives you a ton of levers for tweaking your application at runtime. This is the bit that feels exciting!</p>
<p>I totally agree with Andreas&#8217;s assertion that text is the best format for this (usually), and the power to do anything from shifting object positions to spawning new processes and objects opens up great possibilities.</p>
<p>I was eager to see examples of actual, non-visual bugs that the Doomsday Console gives you the power to squish, although dozens pop in to my mind already, but this would have taken a second session &#8211; so I&#8217;ll watch the project for examples over the coming months.</p>
<p>That said, Andreas&#8217;s presentation was running in flash, and a problem with the screen setup led him to use the console to hack the position of his content nearer into the middle of his screen. I once did a 3-screen projected animation for the &#8216;Gothic Nightmares&#8217; exhibition at the Tate gallery, and the capacity to do these tweaks without having to recompile between changes would have made the very painful alignment process a breeze.</p>
<p>I expect that most attendees are, like me, still having regular &#8216;oh, and I could do *that*!&#8217; moments fairly frequently.</p>
<p>Andreas is also a very lovely guy who generously lent me his Mac-&gt;VGA adapter for my session. Phew!</p>
<h4><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1180">FLASH 11: GET READY FOR GAMETIME</a> &#8211; ROB BATEMAN</h4>
<h4><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1232">NATURAL FEATURES TRACKING AND IMAGE PATTERN DETECTION / RECOGNITION</a> &#8211; EUGENE ZATEPYAKIN</h4>
<p>Sadly I didn&#8217;t manage to get in to either of these sessions &#8211; both of which had to turn away huge crowds. On the plus side, I got to have some interesting conversations with various folk about very geeky things. There were various &#8216;not good enough&#8217; murmurings, but it&#8217;s hard to know how John could better organise it &#8211; and as a speaker I did appreciate that people weren&#8217;t coming in after my session started.</p>
<h2><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1175">SCALING &amp; ORGANISATION: MASSIVE FLASH-PROJECTS &#8211; HOW TO BUILD A TOP 10 GAME ON FACEBOOK?</a> &#8211; WOOGA</h2>
<p>I *loved* this session. I just absolutely *loved* it.</p>
<p>Wooga are pushing out great Facebook games and expanding at the rate of adding a couple of team members each week. How do they do it? Well, basically they run it like an open source project (though they didn&#8217;t describe it using those actual words).</p>
<p>There are no project managers &#8211; everybody is a maker and the team collaborate to make collective decisions.</p>
<p>They use a broadly Agile process &#8211; frequent releases, short meetings, constantly moving goals reflecting what they learn from the process and product feedback after each release. They&#8217;re using the Agile manifesto &#8211; the spirit of Agile, not a rigid set of instructions.</p>
<p>There are no &#8216;rules&#8217; about project processes &#8211; except that they are using TDD, version control (even for artists), and continuous integration to keep the gremlins away.</p>
<p>I won&#8217;t lie, for me the best thing was that it called BS on the idea that game development is somehow special and different and that practices such as TDD, mocking, CI and so on don&#8217;t apply to games.</p>
<p>I grew up around jazz musicians and still do work with NYJO, the National Youth Jazz Orchestra where crazy talented people get their first taste of life as a professional musician. They get to improvise and shine and do all kinds of mind-blowing stuff, and they also spend a ton of time practicing scales and arpeggios. Good practices set you free &#8211; they don&#8217;t constrain (unless you&#8217;re doing them wrong).</p>
<p>I heard a few discontented murmurings &#8211; people felt they had been misled about the session content. But the title says it all. The audience might have hoped it would be about something cool and awesome and magical that they&#8217;d never seen before, a silver bullet or rainbow-crapping-unicorns. But it&#8217;s not. It&#8217;s about mocking your service layer, giving your teams respect and autonomy but also responsibility to follow practices that avoid software-lock, and not cutting corners.</p>
<p>Wooga &#8211; I love you.</p>
<h2><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1184">THE TALE OF A TRAVELLING SALESMAN AND HIS FOUR COLOURS.</a> &#8211; JOA EBERT</h2>
<p>You may or may not already know this, but I used to be one of those people on TV. As a result I have shared space, done interviews and generally hung about with a lot of properly famous people. I generally don&#8217;t get star struck.</p>
<p>I am star struck by Joa. I was even standing next to him while I was talking to John (FOTB organiser), and I was too shy to thank him for his work on Signals, or even say hello.</p>
<p>Anyway &#8211; Joa is part math genius and part comedian. &#8220;Every morning the same disaster, how should I put on my clothes?&#8221; &#8211; followed up with one of the most brilliantly clear illustrations of a practical application of graph theory.</p>
<p>His session was just pure joy for me &#8211; no doubt partly because he feels joy himself when he implements beautiful solutions. It reminded me of the recent neuroscience data that has shown that &#8216;truth&#8217; and &#8216;beauty&#8217; feel very similar to our brains.</p>
<p>I came away wanting to graph the world. And specifically it gave me insight into a couple of Robotlegs 2 problems we&#8217;re tackling, and how these might translate into a graph problem that has probably had papers written about it in other fields.</p>
<p>I&#8217;m a math geek so in terms of pure mathematical theory there was little I hadn&#8217;t met before, but there was something in the way Joa conceptualised and illustrated it that felt very fresh.</p>
<p>Here&#8217;s to whatever FOTB reappears as in 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/flash-on-the-beach-2011/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My FOTB presentation on &#8220;Robotlegs 2 and your brain&#8221;</title>
		<link>http://www.xxcoder.net/my-fotb-presentation-on-robotlegs-2-and-your-brain</link>
		<comments>http://www.xxcoder.net/my-fotb-presentation-on-robotlegs-2-and-your-brain#comments</comments>
		<pubDate>Thu, 15 Sep 2011 22:11:47 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=949</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>146</b><br />
<br />
<b>Warning</b>:  implode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>149</b><br />
<br />
<b>Warning</b>:  strpos() [<a href='function.strpos'>function.strpos</a>]: Offset not contained in string in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>230</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
<br />
<b>Warning</b>:  in_array() expects parameter 2 to be array, boolean given in <b>/home/xxcoder/public_html/wordpress/wp-content/plugins/advanced-excerpt/advanced-excerpt.php</b> on line <b>239</b><br />
]]></description>
			<content:encoded><![CDATA[<p>Wow. What a blast presenting a session at Flash on the Beach was!</p>
<p>I was lucky to get it out of the way early &#8211; and to have plenty of friendly faces in the audience.</p>
<p>It&#8217;s somewhat difficult to recreate the session purely as a set of slides, as the interaction (which the attendees were very generous about) was key to the experience, but I&#8217;ve produced an extended version of my slide deck which includes the main points that I covered verbally and the instructions for the exercises. Do give them a go.</p>
<p>If you&#8217;re brand new to Robotlegs then the slides won&#8217;t sufficiently explain the architecture &#8211; you&#8217;ll need to pick up a copy of our <a href="http://shop.oreilly.com/product/0636920021216.do" target="_blank">ActionScript Developer&#8217;s Guide to Robotlegs</a> for that!</p>
<p>I&#8217;m also pondering doing a VO / screencast version, but it would run at over an hour and I&#8217;m not sure you&#8217;ll want to sit through it.</p>
<p>So &#8211; for now, here&#8217;s the Slide Share embed, and don&#8217;t forget to pick up your &#8220;man brain&#8221; file <a href="http://www.xxcoder.net/man-brain" target="_blank">from this post</a>.</p>
<div style="width:590px" id="__ss_9272383"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/stray_and_ruby/robotlegs-2-and-your-brain" title="Robotlegs 2 and your brain" target="_blank">Robotlegs 2 and your brain</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/9272383" width="590" height="370" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/stray_and_ruby" target="_blank">stray_and_ruby</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/my-fotb-presentation-on-robotlegs-2-and-your-brain/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>&gt; man brain</title>
		<link>http://www.xxcoder.net/man-brain</link>
		<comments>http://www.xxcoder.net/man-brain#comments</comments>
		<pubDate>Wed, 14 Sep 2011 20:36:13 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>
		<category><![CDATA[robotlegs]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=917</guid>
		<description><![CDATA[I was totally blown away by Flash on the Beach. What a lot of smart, interesting people!

My full slides will follow tomorrow. I'm going to release a flick-through version that includes extra text, and a screen-cast version with voice. Thanks to everybody who made my first FOTB experience so rewarding - I'm very glad that I got out of my comfort zone and did it.

For now - a little something for the lovely people who attended my presentation on "Robotlegs 2 and your brain" - that vital missing 'man brain' entry file.]]></description>
			<content:encoded><![CDATA[<div id="attachment_921" class="wp-caption aligncenter" style="width: 505px"><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/Screen-shot-2011-09-14-at-20.44.39.png"><img class="size-full wp-image-921   " title="Screen shot 2011-09-14 at 20.44.39" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/Screen-shot-2011-09-14-at-20.44.39.png" alt="man brain entry" width="495" height="225" /></a>
<p class="wp-caption-text">man brain</p>
</div>
<p>I was totally blown away by Flash on the Beach. What a lot of smart, interesting people!</p>
<p>My full slides will follow tomorrow. I&#8217;m going to release a flick-through version that includes extra text, and a screen-cast version with voice. Thanks to everybody who made my first FOTB experience so rewarding &#8211; I&#8217;m very glad that I got out of my comfort zone and did it.</p>
<p>For now &#8211; a little something for the lovely people who attended my presentation on &#8220;Robotlegs 2 and your brain&#8221; &#8211; that vital missing &#8216;man brain&#8217; entry file.</p>
<p><span id="more-917"></span></p>
<p>Tested on Mac OS X but it should work for Linux too.</p>
<p>Download brain.1.gz: <a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/brain.1.gz">brain.1.gz</a></p>
<p>Don&#8217;t unzip it.</p>
<p>Then open your terminal and type:</p>
<pre class="brush: bash;">manpath</pre>
<p>It&#8217;ll return something like</p>
<pre class="brush: bash;">/usr/local/share/man:/usr/share/man:/usr/local/git/share/man:/usr/X11/man</pre>
<p>Pick one of those paths (I use <span style="color: #339966; font-family: courier new,courier;">/usr/local/share/man</span>), and check there is a <span style="color: #339966; font-family: courier new,courier;">man1</span> subdirectory.</p>
<p>Then type:</p>
<pre class="brush: bash; ruler: false;">cp /path/to/download/brain.1.gz /usr/path/you/chose/man1/brain.1.gz
man brain</pre>
<p>Ahhh&#8230;</p>
<p>(If you get a permission denied error, you may need to add &#8216;sudo&#8217; to the front of the &#8216;cp /path/&#8230;&#8217; line &#8211; it depends on the directory you choose to use.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/man-brain/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

