{"id":100,"date":"2008-01-28T16:01:58","date_gmt":"2008-01-29T00:01:58","guid":{"rendered":"http:\/\/zuill.us\/WoodyZuill\/2008\/01\/28\/socal-code-camp-excellent-weekend\/"},"modified":"2008-01-28T16:19:14","modified_gmt":"2008-01-29T00:19:14","slug":"socal-code-camp-excellent-weekend","status":"publish","type":"post","link":"https:\/\/zuill.us\/WoodyZuill\/2008\/01\/28\/socal-code-camp-excellent-weekend\/","title":{"rendered":"SoCal Code Camp &#8211; Excellent Weekend"},"content":{"rendered":"<p>The Fullerton Code Camp was a big success, as far as I could tell.\u00a0 I attended at least 4 or 5 presentations (besides the ones that I as presenting myself) and was impressed with the quality of both the speakers and the content.\u00a0 Unfortunately I could only attend a few of the dozen or so I wanted to see.\u00a0 Here are a few short reviews of sessions I was able to see:<!--more--><\/p>\n<p><strong>&#8220;Actionscript Game Framework&#8221; &#8211; Bob Mitchell<\/strong><\/p>\n<p>I&#8217;ve been messing around lately with Flash CS3 and ActionScript 3 (for fun and profit&#8230; but mostly for fun) so I wanted to see Bob Mitchell&#8217;s presentation about an &#8220;Actionscript Game Framework&#8221; which he has developed over the last month or so.\u00a0 The purpose of the framework is to provide a simplified API for a number of\u00a0services needed by games\u00a0 &#8211; such as turn management, high score, keyboard events,\u00a0game state storage, sounds, events, users, game level, interacting with a game server, and so on.\u00a0\u00a0\u00a0\u00a0Besides providing reusable functionality that any game can use, a big advantage of this approach\u00a0is that game designers\u00a0that\u00a0might be only marginally\u00a0skilled in programming can easily\u00a0use ActionScript to\u00a0wire up\u00a0their games with functionality.<\/p>\n<p>Bob works for Sony Online Entertainment where they have a number of projects that use Flash for single and multi-user games.\u00a0 He showed a few examples of code snippets, and talked about multi-user game servers such as SmartFox.\u00a0 I&#8217;d like to see a longer presentation on his framework and hope he gets a chance to present again sometime soon with a little more time.\u00a0 Overall, it was very useful to me to see his approach.\u00a0 Recently I have been helping a friend of mine with some Flash games, and I have been feeling that we were starting to see enough duplication in the games to start writing a mini-framework.\u00a0 I think Bob&#8217;s presentation provided plenty of\u00a0insight into the sort of things that we&#8217;ll be able to move along with it quickly.\u00a0<\/p>\n<p>\u00a0A bonus for me was that Bob mentioned that he recently became a Scrum-Master, and that at least some of the development being done at SOE follows an Agile methodology.\u00a0 Very cool.<\/p>\n<p><strong>&#8220;A\u00a0TDD Demonstration&#8221; &#8211; Carl Manaster<\/strong><\/p>\n<p>I met Carl at last year&#8217;s Fullerton Code Camp, and have been fortunate to be able to see him present on several occasions since then.\u00a0\u00a0 I missed his TDD presentation at the UCSD Code Camp last summer, and I wanted to make sure and catch this one.\u00a0 I wasn&#8217;t disappointed.\u00a0<\/p>\n<p>Carl demonstrated Test Driven Development by coding up a &#8220;Natural Sorting&#8221; algorithm using a bottom-up approach.\u00a0\u00a0The exact example, of course, is\u00a0not the important thing\u00a0&#8211; what was important (and really exciting\u00a0and\u00a0fun) was\u00a0to see how quickly Carl\u00a0moved from start to finish in extremely tiny steps, showing how\u00a0the process of TDD\u00a0steers the\u00a0effort.\u00a0<\/p>\n<p>He started with a &#8220;Lighthouse&#8221; test that would eventually prove that the finished code (once written) could take an unsorted list\u00a0and sort it.\u00a0 This is essentially what I think of as\u00a0a\u00a0&#8220;Story Test&#8221;.\u00a0 That is, a test that proves to the &#8220;customer&#8221; that the feature\u00a0being\u00a0developed works as expected.\u00a0\u00a0 After that was written and\u00a0proven to fail he went straight to the most elemental part of the algorithm &#8211; a &#8220;Chunk&#8221;, and and wrote a test to prove that the string of a Chunk can be properly set.\u00a0\u00a0 Each step of the way Carl emphasized the Red\/Green\/Refactor pattern:\u00a0 Write a failing test, make the test pass, remove duplication.\u00a0\u00a0\u00a0<\/p>\n<p>Carls sprinkled the entire presentation with short,\u00a0poignant and very useful maxims.\u00a0\u00a0For example (and I am paraphrasing here):\u00a0<\/p>\n<blockquote><p>After writing a test or modifying your code to pass a test, &#8220;Say&#8221; what you expect before you run the test.\u00a0 &#8220;I expect this to fail&#8221;, or &#8220;I expect this to pass&#8221;.\u00a0\u00a0 This helps you to keep your code and your tests to the point.\u00a0\u00a0 This confirms to yourself that\u00a0you understand what you expect that line of code to do.<\/p><\/blockquote>\n<p>In case you get a chance to see Carl&#8217;s presentation I don&#8217;t want to ruin the story for you, so I won&#8217;t tell you how it ends.\u00a0\u00a0 However, this was a heart-warming presentation you can bring the\u00a0whole family to,\u00a0even your grandmother.\u00a0\u00a0 One of the attendees commented at the end that this was the clearest and most effective demonstation of TDD that he had ever seen. I think that sums it up nicely.<\/p>\n<p><strong>Other\u00a0Presentations:<\/strong><\/p>\n<p>I also was able to attend a couple of talks by Llewellyn Falco, and I&#8217;ll give a short review of them next chance I get.\u00a0\u00a0These were the Cruise Control and Testing Kata\u00a0presentations.\u00a0 Every time I talk with Llewellyn, or\u00a0attend one of his sessions,\u00a0I learn something and I wasn&#8217;t disappointed this time.<\/p>\n<p>Other than that, I was able to catch a few minutes each of several other talks, and regret I didn&#8217;t have more time.\u00a0 In addition to seeing\u00a0the presentations it was great to get together with old friends I&#8217;ve met at previous code camps and around at the various developer group meetings.\u00a0 I&#8217;m already looking forward to the next Code Camp in San Diego, and encourage you to try to make it to one of these events in your area\u00a0if you get the chance.\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Fullerton Code Camp was a big success, as far as I could tell.\u00a0 I attended at least 4 or 5 presentations (besides the ones that I as presenting myself) and was impressed with the quality of both the speakers and the content.\u00a0 Unfortunately I could only attend a few of the dozen or so [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-general-stuff"],"_links":{"self":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":0,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"wp:attachment":[{"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zuill.us\/WoodyZuill\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}