<?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>Mon, 20 Feb 2012 20:58:35 +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>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>
		<item>
		<title>Why I&#8217;m giving away Robotlegs Pomodoro Timers at my Flash on the Beach session</title>
		<link>http://www.xxcoder.net/why-im-giving-away-robotlegs-pomodoro-timers-at-my-flash-on-the-beach-session</link>
		<comments>http://www.xxcoder.net/why-im-giving-away-robotlegs-pomodoro-timers-at-my-flash-on-the-beach-session#comments</comments>
		<pubDate>Sat, 03 Sep 2011 13:55:36 +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[robotlegs]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=902</guid>
		<description><![CDATA[I've been using the Pomodoro Technique for a good few months now.

The pattern I use is:

25 minutes uninterrupted task-focussed activity (no IM, no twitter, no email, no internet) - this is called a Pomodoro
5 minute break for checking emails
rinse and repeat
I love it. And here's why:]]></description>
			<content:encoded><![CDATA[<div id="attachment_903" class="wp-caption aligncenter" style="width: 541px"><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/IMG_3599.jpg"><img class="size-large wp-image-903    " title="Robotlegs Pomodoro Timer" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/IMG_3599-1024x682.jpg" alt="Robotlegs Pomodoro Timer" width="531" height="354" /></a>
<p class="wp-caption-text">Robotlegs Pomodoro Timers &#8211; even better than a Kinder Surprise Egg!</p>
</div>
<p>I&#8217;ve been using the <a title="The Pomodoro Technique" href="http://en.wikipedia.org/wiki/Pomodoro_Technique" target="_blank">Pomodoro Technique</a> for a good few months now.</p>
<p>The pattern I use is:</p>
<ol>
<li>25 minutes uninterrupted task-focussed activity (no IM, no twitter, no email, no internet) &#8211; this is called a Pomodoro</li>
<li>5 minute break for checking emails</li>
<li>rinse and repeat</li>
</ol>
<p>I love it. And here&#8217;s why:</p>
<h3><span id="more-902"></span></h3>
<h3>Focus, without neglecting your responsibilities to other people</h3>
<p>The intention behind the technique is primarily to improve time management by reducing distractions. I have maintenance contracts with some of my clients, and knowing that they&#8217;re unlikely to wait more than 25 minutes for a response allows me to turn my email off while I get on with coding or writing.</p>
<h3>Tweet, read the news or hang out on facebook guilt free</h3>
<p>During my breaks, any activity except for my task is valid. No more self-loathing. Sometimes I answer a quick question on the Robotlegs forum, sometimes I deal with emails, sometimes I just read the news &#8211; knowing that I&#8217;m gaining, not losing, from switching my foreground attention to something else, and that when my end-of-break timer goes off I&#8217;ll be back on the main task.</p>
<h3>Movement is good</h3>
<p>My back and my bladder are both appreciating the fact that I don&#8217;t spend six hours sitting in one position without moving. I try to leave my desk in every break, even if it&#8217;s just for a moment. I&#8217;ve got a floor-desk and we share a standing desk in our home-office. I&#8217;m trying to make sure that certain kinds of regular task are always carried out at the standing desk.</p>
<h3>Less barrier to doing the sucky tasks</h3>
<p>My schedule includes a Pomodoro of housework and a Pomodoro of admin every day. I group them together, followed by a Pomodoro of dog walking and then lunch &#8211; and I&#8217;m feeling great about making sure these happen every single day. I really suck at admin &#8211; I tend to end up with huge piles of unopened post, generating an ever increasing barrier to dealing with it. Doing a single Pomodoro of admin is keeping the pile down without feeling like if I start to dig in to it I may never come out. The housework Pomodoro is going down extremely well with my wife!</p>
<h3>Better estimation</h3>
<p>I&#8217;m starting to get a feel for how big a task is in terms of Pomodori. When my client asks for a change I&#8217;m able to outline classes, think about how many Pomodori might be required to get each class done, and come up with increasingly accurate estimates.</p>
<h3>Micro-sprints improve productivity</h3>
<p>I find that setting myself a goal can spur me into sprinting for most of the 25 minutes, getting something done within a Pomodoro that otherwise I might have stretched over a couple of hours. And this is why I think Robotlegs and the Pomodoro Technique are so well suited.</p>
<h1>Robotlegs and the Pomodoro Technique: a perfect match</h1>
<p>One of the things I love about Robotlegs is that it really encourages you to create many small classes, and yet this seems to be one of the aspects that causes a sad-panda face in many programmers. I&#8217;m going to talk more about the neuroscience behind this in my Flash on the Beach session, but in a nutshell I believe the antipathy towards many-small-classes flows out of three issues:</p>
<ul>
<li>Naming classes is harder than naming functions</li>
<li>Developers tend to think in terms of half-day coding problems</li>
<li>Refactoring relies on comprehensive tests, which most AS3 code bases don&#8217;t have</li>
</ul>
<p>Shifting from thinking in terms of 4 or 6 hour coding sessions has made a surprisingly positive difference to how I program. I group my coding Pomodori together into 2-hour blocks, because I do think they&#8217;re more useful that way than scattered between admin and writing tasks, but the combination of Robotlegs, TDD and the Pomodoro Technique allows me to get meaningful coding-work done even in a single 25 minute session.</p>
<h3>The many-small-classes approach suits the Pomodoro Technique</h3>
<p>Micro-sprints require your brain to accept the possibility that your goal can be reached within the 25 minutes. The many-small-classes approach, which Robotlegs encourages, provides multiple opportunities for meaningful goals that can be attacked within a Pomodoro. Sometimes you can really push it and pick up two or three whole classes, with tests, within a Pomodoro.</p>
<p>If your class was written (nicely) in a Pomodoro, then it&#8217;s likely that the future-coder (maybe you in six months time) can grok it quickly too. It *must* have few responsibilities. Of course, not all classes can be written in a Pomodoro, just like not all classes can be kept below 60 lines, but if you have it on your radar, your chances of leveraging the simplicity where functionality can be broken down cleanly are much higher.</p>
<h3>A refactoring Pomodoro is a great brain-drain</h3>
<p>A few times a week I&#8217;ll notice that I&#8217;m still slightly fuzzy about the functionality I&#8217;m about to tackle, so instead I&#8217;ll devote a Pomodoro purely to refactoring code around it. Robotlegs supports refactoring by encouraging flexible, testable code. (If you don&#8217;t have test coverage you&#8217;re not refactoring &#8211; you&#8217;re just moving shit around).</p>
<h1>So &#8211; come on, how do I win a Robotlegs Pomodoro Timer?</h1>
<div id="attachment_904" class="wp-caption aligncenter" style="width: 522px"><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/IMG_3607.jpg"><img class="size-large wp-image-904 " title="Robotlegs Pomodoro Timer" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/09/IMG_3607-1024x682.jpg" alt="Robotlegs Pomodoro Timer" width="512" height="341" /></a>
<p class="wp-caption-text">Mmm&#8230; engraving</p>
</div>
<p><span style="font-size: small;">I had 50 custom Robotlegs Pomodoro timers made &#8211; they&#8217;re nice, twist-to-set, old-skool timers, with the Robotlegs logo engraved in to the metal.</span></p>
<p><span style="font-size: small;">If you&#8217;re one of the Robotlegs core team, or one of the people who reviewed our Robotlegs book, there&#8217;s already a timer set aside for you. I&#8217;ve also set them aside for Ondina, Camille Reynders, Paul Robertson, krasimir and Michał W who&#8217;ve been giving a lot of time to the forum these past few months. We want to hold some back for people who contribute to Robotlegs 2. The only other way to get your hands on one of these babies is to come to <a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1235" target="_blank">my Flash on the Beach session</a> &#8211; <strong>Monday at 12pm.</strong></span></p>
<p><span style="font-size: small;">The session will require you to engage your brain (and a pencil and paper) to tackle various exercises &#8211; and some of these exercises will give you the opportunity to <strong>win</strong> a Robotlegs Pomodoro Timer for your own desk. Bribery? For sure!</span></p>
<p>ps. This blog post, including photos, took exactly 3 Pomodoros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/why-im-giving-away-robotlegs-pomodoro-timers-at-my-flash-on-the-beach-session/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>ActionScript Developer&#8217;s Guide to Robotlegs &#8211; done!</title>
		<link>http://www.xxcoder.net/actionscript-developers-guide-to-robotlegs-done</link>
		<comments>http://www.xxcoder.net/actionscript-developers-guide-to-robotlegs-done#comments</comments>
		<pubDate>Sat, 16 Jul 2011 16:44:59 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[robotlegs]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=870</guid>
		<description><![CDATA[The Robotlegs book I've been collaborating with Joel Hooks on is finished! Here's how it looks from afar:]]></description>
			<content:encoded><![CDATA[<p>The Robotlegs book I&#8217;ve been collaborating with Joel Hooks on is finished! Here&#8217;s how it looks from afar:</p>
<div id="attachment_894" class="wp-caption alignnone" style="width: 563px"><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/robotlegs_book_glance.png"><img class="size-large wp-image-894  " title="robotlegs_book_glance" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/robotlegs_book_glance-1024x819.png" alt="Thumbnails of the book pages" width="553" height="442" /></a>
<p class="wp-caption-text">The Robotlegs Book pages from afar</p>
</div>
<p>You can <a title="Pre-order the Robotlegs book" href="http://oreilly.com/catalog/0636920021216" target="_blank">pre-order the print version here</a>, and the e-book should be released very soon &#8211; they&#8217;re estimating August 9th but I&#8217;m hoping it&#8217;ll be sooner as we tamed the <a title="DocBook" href="http://www.docbook.org/" target="_blank">DocBook</a> beast ourselves and pushed it to production in great shape. There will be a print + ebook deal from O&#8217;Reilly shortly.</p>
<p>I just received a message from Yennick Trevels via Twitter, and he asks an important question about the book:</p>
<div class="quote">@stray_and_ruby is the book about the basics of Robotlegs, or is it mostly about advanced topics (cookbook style)?</p>
<p><a href="http://twitter.com/slevinbe">@SlevinBE</a> Jul 16 12:05 PM</div>
<p>So, what kind of book *is* this Robotlegs book? Well, it&#8217;s not a cookbook, it&#8217;s not an API reference, and it&#8217;s not really about the basics of Robotlegs either (though it&#8217;s ideal for getting started with Robotlegs).</p>
<p>This book is about architectural decision making in your projects, as expressed through Robotlegs. It has a lot of code samples, plenty of diagrams, thorough coverage of the core Robotlegs API and also deep discussion of why you would take a specific approach, and what the advantages and risks of other approaches might be.<span id="more-870"></span></p>
<h2>The chapter list</h2>
<p>I will post the whole Table of Contents as soon as we&#8217;re through production. This is a list of the chapters in the book:</p>
<ol>
<li>Robotlegs is a lightweight framework for ActionScript</li>
<li>The Robotlegs dream</li>
<li>Anatomy of a Robotlegs application</li>
<li>Automated Dependency Injection</li>
<li>The Robotlegs context in action</li>
<li>The CommandMap in action</li>
<li>Models and Services &#8211; how are they different?</li>
<li>Connecting views with Mediators</li>
<li>Working with Robotlegs: Rich Examples</li>
<li>Testing your Robotlegs application</li>
<li>Power-ups</li>
<li>Appendix A: Troubleshooting tips</li>
<li>Appendix B: Swiftsuspenders &#8211; the power behind the Robotlegs injector</li>
</ol>
<p>O&#8217;Reilly were keen to keep the book to 120 pages &#8211; part of a new strategy they&#8217;re following to bring smaller, more focussed books on niche subjects. This led us to make two important decisions:</p>
<ul>
<li>we built two real applications (not <em>HelloTwitter</em>, proper, interesting apps), one Flex app and one AS3 app, and used these for many of the code samples as well as providing a complete downloadable source, with tests, for each app</li>
<li>coverage of extended topics, for example modular Robotlegs, is limited to a brief overview, so that we could explore the core in greater depth</li>
</ul>
<p>However, don&#8217;t read the lack of coverage of non-core features to mean that this is only a book for beginner Robotlegs users; we set out to produce something that would also be of value to experienced Robotlegs users. At times I wondered if we&#8217;d set ourselves an unrealistic goal &#8211; can you really write a getting-started guide that is also a challenge to experienced developers? When we received the feedback from our tech reviewers I &#8211; literally &#8211; jumped up and down with excitement to see that we&#8217;d managed it.</p>
<p>Our nine tech reviewers covered the full spectrum of experience with Robotlegs. Some are working on their first Robotlegs project, others are Robotlegs utility builders with intimate knowledge of the Robotlegs API. <em>Nobody</em> felt that the book wasn&#8217;t for them (and no, not all of them were our friends!)</p>
<p>While I know it&#8217;s much more fashionable to be modest and somewhat cool when people say you&#8217;ve done something great, I feel like the trumpet blowing you&#8217;re about to read is justified.</p>
<p>Firstly, there could be no great book about Robotlegs if Robotlegs wasn&#8217;t, in itself, brilliant. Of the core Robotlegs team members, I&#8217;m the most able to voice this without feeling awkward. Robotlegs was pretty much complete before I got involved. I chose Robotlegs because it was <em>already</em> awesome. I take no credit for that awesomeness &#8211; all I&#8217;ve done is help other people to find it too.</p>
<p>So, while I hope you&#8217;ll appreciate the work that Joel and I have put in to communicating it, the real star of this book is the framework, not the authors.</p>
<p>Secondly, I feel like I owe O&#8217;Reilly extra credit for this book because of the superb training they gave me at Head First boot camp a few years back. Although this book isn&#8217;t a Head First book, it was written with everything I&#8217;ve learned as a Head First author in mind.</p>
<p>Thirdly, you&#8217;re allowed to shout about things when you&#8217;re part of a team, right? Between Joel, myself and our reviewers, this book is a real collaboration.</p>
<h2>What our reviewers said about the book</h2>
<p>Our tech reviewers added a great deal to the clarity of the book with their input, but what I really want to share with you is a handful of the lovely things they said when submitting their feedback. (So &#8211; here&#8217;s the part where I show off, look away now if that&#8217;s not OK with you)</p>
<blockquote><p><a href="http://twitter.com/neilmanuell"><img class="alignleft size-full wp-image-875" title="neil manuell" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/neilmanuell.png" alt="neil manuell" width="50" height="50" /></a><br />
<strong>Neil Manuell:</strong><br />
The definitive Robotlegs introduction. Every dev team should have a copy both as a reminder of good practice and a primer to any new member</p></blockquote>
<blockquote><p><a href="http://twitter.com/dougrdotnet"><img class="alignleft size-full wp-image-875" title="douglas reynolds" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/doug.png" alt="douglas reynolds" width="50" height="50" /></a><br />
<strong>Douglas Reynolds:</strong><br />
I&#8217;ve already used the pre-release copy twice as reference this week&#8230; something that is an indicator to me of a book that continues to be useful after 1st read&#8230; those are my favorite books.</p></blockquote>
<blockquote><p><a href="http://twitter.com/seantheflexguy"><img class="alignleft size-full wp-image-875" title="sean moore" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/sean.png" alt="sean moore" width="50" height="50" /></a><br />
<strong>Sean Moore:</strong><br />
A TON of really great info. I&#8217;m learning so much it&#8217;s insane. This book is going to help a lot of people very, very much. It&#8217;s answering a lot of questions I&#8217;ve had and also helping to remedy a lot of stuff I&#8217;m doing wrong.</p></blockquote>
<blockquote><p><a href="http://twitter.com/mikeysee"><img class="alignleft size-full wp-image-875" title="mike cann" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/mike.png" alt="mike cann" width="50" height="50" /></a><br />
<strong>Mike Cann:</strong><br />
Just taking one glance at the table of contents leaves me itching to dive into each chapter.</p>
<p>Complex yet simple, in depth yet concise, challenging yet fun. And that&#8217;s just the table of contents.</p>
<p>The long awaited book on RobotLegs and it does not disappoint.</p></blockquote>
<blockquote><p><a href="http://twitter.com/wagsters"><img class="alignleft size-full wp-image-875" title="James Wagstaff" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/wagsters.png" alt="James Wagstaff" width="50" height="50" /></a><br />
<strong>James Wagstaff:</strong><br />
You appear to have written this book just for me, or at least exactly at my technical level (mid-weight developer, in too deep to not have an MVC framework)</p>
<p>Dependency chain problems.  Been banging my head against that one for a while.  It&#8217;s really good you put as much into explaining the problem as the solution.</p>
<p>[This book] read like some of the best tech books I&#8217;ve read.  Plain English, well explained and a good grasp of what it&#8217;s like to meet Robotlegs for the first time.</p></blockquote>
<blockquote><p><a href="http://twitter.com/angerelle"><img class="alignleft size-full wp-image-875" title="Angela Relle" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/angerelle.png" alt="Angela Relle" width="50" height="50" /></a><br />
<strong>Angela Relle:</strong><br />
I enjoyed the writing style, I like the feeling that the book has been written collaboratively.  Having read the book, I think I have a deeper understanding of the principles I&#8217;ve been picking up from your tweets and in the RL forum and I have a whole list of things I will be either improving in my current project or doing in my next one</p>
<p>Really like that you have a &#8220;Power Ups&#8221; and a testing section (I&#8217;ve got tests in place for my commands, but not so much for mediators, so this will come in handy).</p></blockquote>
<blockquote><p><a href="http://twitter.com/newtriks"><img class="alignleft size-full wp-image-875" title="Simon Bailey" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/newtriks.png" alt="Simon Bailey" width="50" height="50" /></a><br />
<strong>Simon Bailey:</strong></p>
<p>As I skimmed the Test chapter I was hoping you would offer examples for all MVCS, [and we did] brilliant!</p></blockquote>
<blockquote><p><a href="http://twitter.com/sprog_ch"><img class="alignleft size-full wp-image-875" title="Weyert de Boer" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/weyert.png" alt="Weyert de Boer" width="50" height="50" /></a><br />
<strong>Weyert de Boer:</strong><br />
Every Frog robot needs quality legs to do its job. The Robotlegs book is the best way to learn the Robotlegs walk.</p></blockquote>
<blockquote><p><img class="alignleft size-full wp-image-875" title="David Hunter" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/07/david.png" alt="David Hunter" width="50" height="50" /><br />
<strong>David Hunter:</strong><br />
Good luck with the book, I have really enjoyed reading it, should be<br />
perfect for newbies *and* more experienced Robotlegs developers.</p></blockquote>
<h3>This book is about Robotlegs 1.x</h3>
<p>For those of you who already have half-an-eye on Robotlegs 2, here&#8217;s the crucial info: while some parts of the API may be different in RL2, almost all of the content of this book will still be directly relevant. If O&#8217;Reilly commission a Robotlegs 2 book it will have to be a longer book to cover the extra features, but we&#8217;ll make sure that owners of the Robotlegs 1 book have a mechanism for getting a discount.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/actionscript-developers-guide-to-robotlegs-done/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>20 things I learned at the Robotlegs 2 Summit</title>
		<link>http://www.xxcoder.net/20-things-i-learned-at-the-robotlegs-2-summit</link>
		<comments>http://www.xxcoder.net/20-things-i-learned-at-the-robotlegs-2-summit#comments</comments>
		<pubDate>Wed, 29 Jun 2011 19:30:17 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>
		<category><![CDATA[robotlegs]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=840</guid>
		<description><![CDATA[I'm returning from having spent 5 days in Spain with Shaun Smith, Till Schneidereit and Robert Penner - intensively and collaboratively developing a plan for a plan for Robotlegs 2. Sadly Joel Hooks couldn't make it, but that has an upside in having to re-confirm our direction with someone who hasn't drunk the same koolaid. (Actually it was coffee and mohitos).

Sensible information about the plans for Robotlegs 2 will emerge as soon as we've had a chance to consult with Joel. Until then, I can only say that right now I feel like the luckiest AS3 dev on the planet, and here are 20 things I have learned:]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m returning from having spent 5 days in Spain with <a href="http://shaun.boyblack.co.za/blog/" target="_self">Shaun Smith</a>, <a href="http://www.tillschneidereit.de/" target="_self">Till Schneidereit</a> and <a href="http://flashblog.robertpenner.com/" target="_self">Robert Penner</a> &#8211; intensively and collaboratively developing a plan for a plan for Robotlegs 2. Sadly <a href="http://joelhooks.com/" target="_self">Joel Hooks</a> couldn&#8217;t make it, but that has an upside in having to re-confirm our direction with someone who hasn&#8217;t drunk the same koolaid. (Actually it was coffee and mohitos).</p>
<p>Sensible information about the plans for Robotlegs 2 will emerge as soon as we&#8217;ve had a chance to consult with Joel. Until then, I can only say that right now I feel like the luckiest AS3 dev on the planet, and here are 20 things I have learned:</p>
<div><span id="more-840"></span></div>
<div>
<ol>
<li>There isn&#8217;t a more effective process than TDD (Tapas Driven Development).</li>
<li>Having the collective IQ of a small town is no protection against sunburn.</li>
<li>Simplicity and complexity frequently masquerade as each other.</li>
<li>It is possible to feel sad about having to choose between gold and platinum.</li>
<li>Spoken language is better than pointing and grunting, but still mostly inadequate in fully describing complex problems.</li>
<li>Visionaries like Shaun Smith are hampered by their ability to see the flaws and weaknesses in any vision &#8211; including their own.</li>
<li>There are no valid excuses for verbing your nouns.</li>
<li>Robert Penner is a bona-fide genius with excessive skills in math, salsa making and designing games to be played in the pool.</li>
<li>Everybody spends most of their time thinking the <em>other</em> people are the real grownups.</li>
<li>They put something philosophical in the water in Germany, and Till Schneidereit has drunk a <em>lot</em> of it.</li>
<li>If you are wondering whether it&#8217;s time to write some code, it probably isn&#8217;t yet.</li>
<li>Every programmer should be introduced to the German word &#8216;Doch&#8217;.</li>
<li>In contemplating the implications of immutability it is necessary for all participants to remain mentally mutable.</li>
<li>Quad programming using &#8216;TDD as if you meant it&#8217; leads to 20 lines of production code per 6 programmer hours. But it&#8217;s <em>really good</em> code.</li>
<li>It is not possible to imagine a universe in which our own mathematical axioms don&#8217;t hold true, or even to imagine imagining one.</li>
<li>There are few experiences more rewarding than being challenged without feeling inadequate; try { harder } is going to be <em>amazing</em>.</li>
<li>31C is the perfect pool temperature for liquid-cooling your brain while debating asynchronous dependency injection.</li>
<li>You can get back out of any rabbit hole by adding a bowl of pistachio nuts.</li>
<li>Arguments can be invalidated by kittens, pool noodles and water balloons.</li>
<li>At RL 2.0 summits, WTF/min = tan(minutes % 90);</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/20-things-i-learned-at-the-robotlegs-2-summit/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Order of operations, default behaviours and your brain</title>
		<link>http://www.xxcoder.net/order-of-operations-default-behaviours-and-your-brain</link>
		<comments>http://www.xxcoder.net/order-of-operations-default-behaviours-and-your-brain#comments</comments>
		<pubDate>Mon, 30 May 2011 14:54:54 +0000</pubDate>
		<dc:creator>Stray</dc:creator>
				<category><![CDATA[processes]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=833</guid>
		<description><![CDATA[I'm a creature of habit. I form strong habits very quickly. My wife and step-son joke that if I do something 3 days in a row I may well wind up doing it daily for the rest of my life.

This has pros and cons.

The cons are the obvious ones: some habits are not so good to have. I have had most of them!

The pro is that making good habits is useful.

In programming, habits are my default behaviours - my normal-for-me practices. We all have them - and, just like lifestyle habits, there are good ones and not-so-good ones. Ones we adopt mindfully and ones we just kinda slipped into. And we don't really like it when people point out our bitten nails.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a creature of habit. I form strong habits very quickly. My wife and step-son joke that if I do something 3 days in a row I may well wind up doing it daily for the rest of my life.</p>
<p>This has pros and cons.</p>
<p>The cons are the obvious ones: some habits are not so good to have. I have had most of them!</p>
<p>The pro is that making good habits is useful.</p>
<p>In programming, habits are my default behaviours &#8211; my normal-for-me practices. We all have them &#8211; and, just like lifestyle habits, there are good ones and not-so-good ones. Ones we adopt mindfully and ones we just kinda slipped into. And we don&#8217;t really like it when people point out our bitten nails.<span id="more-833"></span></p>
<h2>Stray: you&#8217;re doing it wrong!</h2>
<p>I can admit that there&#8217;s a part of me that feels pretty satisfied with my TDD practice. I get great coverage, I do end-to-end and integration tests as well as unit tests. I write very little production code that isn&#8217;t absolutely required. I refactor with confidence. And, importantly, my test code doesn&#8217;t look like I used my 5-years-ago self to write it&#8230; and yet last week I had one of my core testing habits challenged: Joel Hooks and Sean the Flex Guy cited the (new to me) concept of &#8220;one assert per test&#8221;.</p>
<div class="quote">@stray_and_ruby I think they are just lazy way to avoid creating multiple tests to proof effect of a behavior. Not the good lazy <img src='http://www.xxcoder.net/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<a title="Joel Hooks" href="http://twitter.com/#!/jhooks">jhooks</a>
</div>
<p>Lazy? Wow, I&#8217;ve not recently thought of myself as a (bad) lazy coder. Hrm&#8230;</p>
<p>Now, Joel and Sean are both smart people with plenty of experience, so my starting position is to be curious about what they mean by &#8216;One assert per test&#8217;. I know that I don&#8217;t stick to this &#8211; and it didn&#8217;t make immediate sense to me. I jumped on github to check the test-suite for Robotlegs, found that there were many situations where there was more than one assert per test, so I asked Joel and Sean a few questions &#8211; just checking out what &#8216;one assert per test&#8217; really means.</p>
<p>On closer examination, some of the Robotlegs tests &#8211; for example in the MediatorMap &#8211; have redundant code, because they assert that a value isn&#8217;t null (for example) prior to asserting that it equals X. The &#8216;assertEquals&#8217; will always cause an error anyway, and I know I do this in my own code simply because I prefer a fail message to an error message.</p>
<p>In the discussion on twitter, some people voiced the concern that this &#8216;rule&#8217; was overkill. And I agree that if it was to be applied rigidly then it probably would be, but that&#8217;s not how these &#8216;rules&#8217; about good practice are intended to be applied. We are not circuit boards &#8211; we&#8217;re human beings.  Rules such as &#8216;one assert per test&#8217; are useful when adopted as the default behaviours that we drop into when we don&#8217;t <em>mindfully</em> choose to break them.</p>
<h2>Refactoring your default methods and parameters</h2>
<p>In my mind, refactoring our default behaviours is the key to levelling up &#8211; whether we&#8217;re trying to change our body weight or improve our code. The important thing is not to make changes to how you behave when you&#8217;re trying your hardest, but to tweak the habitual processes that we fall in to when we&#8217;re not paying attention &#8211; because this is how we spend nearly all of our time.</p>
<p>The problem is that we human beings have evolved to be capable of change but reluctant to do so. We&#8217;re not abstract creatures, we live in a concrete world, and the ultimate problem we&#8217;re engaged in &#8211; staying alive &#8211; is a concrete problem. As a result, most of our decision making faculties rely on ways of interpreting the world where previous concrete experience is valued highly. Or &#8211; as neuroscientists summarise it:</p>
<blockquote><p>What fires together wires together.</p></blockquote>
<p>This brings us to paradox: it makes survival sense to value previous concrete experiences over theoretical abstract experiences, and yet we can never improve our situation, and create new habits, without experimenting with abstract ideas in the concrete world.</p>
<p>Nature seems to have a few strategies for dealing with this &#8211; first of all, we&#8217;re not all equally averse to experimenting. Somebody somewhere was prepared to be the first person to eat a mushroom. (I suspect we actually subjugated people and used them as guinea pigs for most of this process, but anyway&#8230;). Secondly, we have an awesome feat of biology called &#8216;Mirror neurons&#8217;. These mirror neurons allow me to watch you doing something and have the same neural pathways activate in my brain as if I was doing that activity myself.</p>
<p>The third tool in our arsenal is the ability to reflect on our own processes. Human beings are prone to many different flavours of <a title="cognitive bias" href="http://en.wikipedia.org/wiki/List_of_cognitive_biases" target="_blank">bias</a>, but we also possess the ability to understand what bias is and begin to recognise it in our own decision making. If we can identify a specific bias &#8211; for example that we only have concrete experiences of A and abstract understanding of B &#8211; we can choose to take steps to dilute the bias (by getting some concrete experiences of B too).</p>
<h2>Swallow with a glass of water vs Suck it and see</h2>
<p>The extent to which we can evaluate an abstract solution is &#8211; again, with survival sense &#8211; correlated with how much pain the problem it addresses is causing us, and how much awareness we have of the link between the pain and the problem. Analgesic solutions are an easy sell &#8211; you just have to wait for the pain to motivate the patient.</p>
<p>A pattern such as using mocks and support objects to avoid ever having to do new Thing() in a test case (other than testing Thing) sounds a bit high level until you need to add one parameter to a much-used config VO in your code base and find that you need to edit 37 test cases. Pass me that glass of water, I&#8217;m gonna take 1000mg of mockolate!</p>
<p>But &#8216;stopping the pain&#8217; can only take you so far &#8211; there are options and alternatives that can bring joy to your code, not just analgesia, and these are the ones that our safety-first survival brain will attempt to subvert. After all &#8211; nothing hurts right now, why risk changing the process?</p>
<p>From an abstract perspective you will never choose to make these changes &#8211; you have to shift into the concrete, give them a go (a proper go) and see whether it turns out to *feel* better than the old way.</p>
<p>So, all weekend I programmed using one-assert-per-test, and it was a surprisingly long lever to pull on. I&#8217;d figured it wouldn&#8217;t really make much difference in the coding process, only to the reader, but actually it was not just &#8216;not bad&#8217;, it was actually enjoyable. It seemed to create a nicer rhythm in switching between the test and the code, with faster red/green cycles.</p>
<p>After just 2 days, one-assert-per-test is my new default behaviour. There will be times when I mindfully break that rule, but the win is that when I&#8217;m not paying attention my process will be a little better than it was last week.</p>
<p>It might seem like a tiny thing, it&#8217;s certainly not in the pareto 20% that solves 80% of my problems (I don&#8217;t feel that I have many problems). But it doesn&#8217;t cost me anything, and these little tweaks are the details that save me a couple of headaches a year, or allow me to write a couple more quick replies to questions on the robotlegs forums without missing a deadline. It <em>all</em> matters.</p>
<h2>Your brain is part of your tool chain</h2>
<p>The human brain is amazing. And largely mysterious, at least in terms of how it works. But we have increasing volumes of detailed observation of what our brain does and doesn&#8217;t do, what it does well and what it does badly. We also know that while there are some changes in how it behaves in different contexts, it&#8217;s more influenced by hormonal and chemical changes &#8211; doing *anything* under stress is different from doing *anything* while relaxed, and so on.</p>
<p>So &#8211; it seems sensible to me to pay attention to how my brain works most of the time and assume that the same general rules hold true when I&#8217;m &#8216;being a coder&#8217;.</p>
<p>For example, my brain is great at holding on to information until it&#8217;s no longer needed. Addresses, phone numbers, flight numbers and departure times &#8211; pop them in short-term memory; drop them as soon as they&#8217;re dealt with.</p>
<p>My brain is also pretty good, though less reliable, at reminding me of something important regularly enough that I am prompted to deal with it eventually, until it&#8217;s no longer important. For example, if we&#8217;ve run out of peanut butter then my brain will regularly throw &#8220;buy peanut butter!&#8221; into my conscious thoughts &#8211; not always at a useful moment &#8211; until the peanut butter has been bought. And once it has been bought, I may go several weeks without ever thinking about buying peanut butter.</p>
<p>And this is why I obsessively develop using test-first.</p>
<div class="note">There is no other area in my life in which I retain all the required information to do a job *after* the job has been done. Execution of a task is a sign to my brain that the information required to do the task can be garbage collected. Some important learning may be retained, but it&#8217;s a fraction of the detail that was present up until it was released for GC.</div>
<p>If you *are* using test-after, you&#8217;re fighting your brain&#8217;s natural garbage collection process. Personally I don&#8217;t have the cognitive energy surplus to do that &#8211; either I&#8217;d miss a chunk of the information or I&#8217;d be exhausted.</p>
<p>It seems to me that my brain has evolved to be more suitable for test-first development, which I consider to be a process for:</p>
<ol>
<li>maintaining constant mindful engagement with the purpose of the code about to be written</li>
<li>capturing the details of the complexity around that purpose as they emerge rather than retrospectively</li>
<li>using automation to ensure that we never unknowingly regress, and new code only moves us forward</li>
</ol>
<p>I don&#8217;t go to the supermarket and then come home and write a retrospective list of what I should have bought. Do you?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/order-of-operations-default-behaviours-and-your-brain/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>try { harder } &#8211; a collaborative flash-dev conf.</title>
		<link>http://www.xxcoder.net/try-harder-a-collaborative-flash-dev-conf</link>
		<comments>http://www.xxcoder.net/try-harder-a-collaborative-flash-dev-conf#comments</comments>
		<pubDate>Fri, 20 May 2011 14:13:08 +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[tdd]]></category>
		<category><![CDATA[try { harder }]]></category>

		<guid isPermaLink="false">http://www.xxcoder.net/?p=817</guid>
		<description><![CDATA[What? Another flash-platform conference?

Yup - but this is different kind of conference, a collaborative conference.

To skip my ramblings about why we're setting it up the way we are, just jump straight to the try { harder } site: http://www.tryharder.org.uk]]></description>
			<content:encoded><![CDATA[<h3>What? <em>Another</em> flash-platform conference?</h3>
<p>Yup &#8211; but this is different kind of conference, a <em>collaborative</em> conference.</p>
<p>To skip my ramblings about why we&#8217;re setting it up the way we are, just jump straight to the try { harder } site:</p>
<p><a href="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/05/i_will_try_harder.jpg"><img class="alignnone size-full wp-image-818" title="i_will_try_harder" src="http://www.xxcoder.net/wordpress/wp-content/uploads/2011/05/i_will_try_harder.jpg" alt="try harder beta-conf, 3rd - 6th October, 2011, Notts UK" width="250" height="300" /></a></p>
<p><span id="more-817"></span></p>
<h3>Why do we need try { harder } ?</h3>
<p>The insightful <a title="David Arno on twitter" href="http://www.twitter.com/davidarno" target="_blank">@davidarno</a> pointed out last week that there was a lack of training/events around advanced, non-visual development.</p>
<div class="quote">It has just dawned on me that we desperately need a 2-3 day flex, air &amp; AS3 conference in the UK. Anyone fancy organising it?<br />
<a title="David Arno on twitter" href="http://www.twitter.com/davidarno" target="_blank">@davidarno</a></div>
<div class="quote">@stray_and_ruby I&#8217;m thinking TDD, Git, Ant, ASDoc, Flex skinning, mocking, AVM, mobile flex, FP11 experiments etc. Real flash geek stuff! And no generative art whatsoever <img src='http://www.xxcoder.net/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<p>Of course the first thing I did was tease him that it&#8217;s not possible to <em>desperately</em> need a solution to such a high-level problem &#8211; but I also believe he is right.</p>
<p>Code generated art has its place; <a title="Flash Math Creativity book" href="http://www.amazon.co.uk/Flash-Math-Creativity-Manny-Tan/dp/1903450500/ref=sr_1_2?ie=UTF8&amp;s=books&amp;qid=1305876248&amp;sr=8-2" target="_blank">Flash Math Creativity</a>, and Mr Penner&#8217;s tweening equations, were a critical part of my falling-in-love-with-flash phase… but these days it&#8217;s deployment automation and test patterns (and of course Mr Penner&#8217;s as3 signals) that get me really excited.</p>
<h3>So &#8211; where do we start?</h3>
<p>A geeky flash-dev conference, that covers the less sexy looking side of things. Now, there&#8217;s a clue in that, isn&#8217;t there?</p>
<p>I suspect a big-room presentation on, for example, <em>branching strategies in git</em>, is going to have its limits. For starters, there&#8217;s not a lot to see. And there aren&#8217;t a lot of stories to tell.</p>
<p>This is a tough gig to deliver for the speaker, because the main purpose visuals and narrative in a presentation is to take the audience on a ride together, with the speaker leading them. A compelling story around git branching strategies is a hard thing to find. And so the audience aren&#8217;t captured by *your* (weak) story. They&#8217;re already thinking about how they could use this in their own work &#8211; which in many ways is a win &#8211; but in the context of a formal presentation, you&#8217;ve lost them and pretty soon you&#8217;re going to be staring out into tumbleweed.</p>
<p>So &#8211; we should have some sympathy for the selections made by big conferences, and the content the speakers choose to deliver. They do it for a reason, and that&#8217;s why an advanced development conference for our community needs to be totally different.</p>
<p>Fortunately the quality of that difference also addresses the aspect of conference presentations that I find hardest (as a speaker) to deal with&#8230;</p>
<h3>The expert-learner paradox</h3>
<p>In my experience, teaching beginners is technically significantly more difficult than teaching other experts. And yet psychologically the reverse is true &#8211; when the knowledge-gap between myself and someone I&#8217;m teaching is obvious, I can feel confident that I&#8217;m imparting something useful, even though this is a false confidence because it&#8217;s very easy to leave a beginner more confused than they started out. When I&#8217;m teaching a group of my peers I spend a lot of time worrying about whether they think I&#8217;m a twat for putting the &#8216;expert&#8217; hat on.</p>
<p>A peculiarity of learning is that there comes a moment after which the more you know the more you know you don&#8217;t know. And so there seems to be a fairly early peak in your confidence of your knowledge, after which there is only a greater and greater sense of how little you understand in comparison with the (impossible) state of fully-knowing your subject.</p>
<p>A few people have been kind enough to share their experience of presenting at Flash on the Beach, and they seem to have a similar feeling &#8211; it&#8217;s uncomfortable to put yourself on the stage when you have people in the room who you know are at least as expert as you are (even when those people are genuinely supportive of you in that situation).</p>
<h3>Peer-to-peer networks beat broadcasting</h3>
<p>Recently I&#8217;ve helped out a couple of people with Robotlegs, project sprouts and some integration/end-to-end testing. And in return I&#8217;ve received some fantastic help from them around my own questions and weaker spots.</p>
<p>I&#8217;ve also learned an enormous amount from answering questions on the Robotlegs tender forum. Sometimes you don&#8217;t really know what you think until you&#8217;re asked to form an answer to a question.</p>
<p>I suspect this is the real reason why so many of us in the tech community put time into blog posts and screencasts. We might claim that it&#8217;s because it&#8217;s good for our career (and it is), good for building contacts and so on &#8211; but many of us are essentially introvert, so I&#8217;d speculate that the real thrill is in exploring our own thoughts, and consolidating our own learning.</p>
<p>Still, there is, for me, a greater thrill in learning-together. For someone with autism I do a passable impression of a sociable person, but the truth is that while I have a strong moral framework that means I genuinely care about most human beings, what really interests me about you is how your mind works and how your mind can help my mind to understand and build something greater than I can on my own.</p>
<h3>If we were musicians, I&#8217;d want to jam with you</h3>
<p>We can talk about code &#8211; that&#8217;s great. But really I want to <em>write</em> code with you. I want to set up the programming equivalent of a 12-bar-blues and then see where we go. Which is why I&#8217;ve loved the idea of the code retreat format since I first heard about it (from Joel Hooks).</p>
<p>And so I started to play with the idea of combining all of these things &#8211; peer-to-peer learning in a group small enough to have conversations as well as presentation. A set up where everybody teaches as well as everybody learning, where there&#8217;s less (artificial) hierarchy to feel weird about. The opportunity to &#8216;jam&#8217; with other programmers as well as taking master-classes. Plenty of space in-between to digest and regenerate, and &#8211; crucial for me &#8211; the chance to somehow include my wife because not only does she keep me sane but she&#8217;d probably prefer to have my enthusiastic ramblings drip fed through a few days than have the whole lot drop on her when I return!</p>
<h3>So, are we doing this or what?</h3>
<p>I shoved up a twitter survey that many of you were kind enough to respond to, and responses were positive and we generated a really diverse list of content that could be presented. People were enthusiastic, flexible and split clean down the middle on questions like &#8220;weekend or mid-week?&#8221; and which locations would work. Two thirds of people wanted to bring their partner or family, which also influenced the choice of venue: Center Parcs.</p>
<p>And so, I should confess, my decision to create another flash-platform conference is almost entirely selfish, but also shaped by your feedback and by input from the lovely <a title="Neil Manuell - blog" href="http://statemachine.org" target="_self">Neil Manuell</a> who is going to be my co-facilitator / organiser.</p>
<p>And we bring you:  <a title="try harder" href="http://www.tryharder.org.uk" target="_self">try { harder } beta-conf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xxcoder.net/try-harder-a-collaborative-flash-dev-conf/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

