<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4049514804017905472</id><updated>2008-03-25T17:47:15.950-04:00</updated><title type='text'>geek.mitchallen.com</title><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml'/><author><name>Mitch Allen</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-16205231462712154</id><published>2008-03-25T17:46:00.003-04:00</published><updated>2008-03-25T17:47:16.068-04:00</updated><title type='text'>My Other Video Store</title><content type='html'>&lt;em&gt;Since this is geek-oriented - I moved this from my main blog.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In my perpetual experiments with low-budget e-commerce, I've setup a store on &lt;a href="http://www.zlio.com/signup?r=260186"&gt;&lt;strong&gt;zlio&lt;/strong&gt;&lt;/a&gt;.  Note that it is spelled Z-L-I-O, not "zilo".  It took me two minutes.  This is a lot like the Amazon aStore that I created.  Which means that I don't actually ship anything.  (I'll talk about my other experiments where I actually do ship things in another post.)&lt;br /&gt;&lt;br /&gt;There is one difference: zlio will display items from several vendors.  Apparently it was enough to cause Amazon to ban them from listing their products.  I listed &lt;strong&gt;Rebel Without a Crew&lt;/strong&gt; on my store.  Through the link you can get if from &lt;strong&gt;Barnes and Nobles&lt;/strong&gt;.  Though of course as you may expect - Amazon had a much better price.&lt;br /&gt;&lt;br /&gt;I actually like the look better then the aStore, because the page by itself is a full page.  My aStore by itself needs some window dressing.  You can compare them here:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://budgetvideo.zlio.net"&gt;http://budgetvideo.zlio.net&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://astore.amazon.com/mitchallen-20"&gt;http://astore.amazon.com/mitchallen-20&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Besides the product price issue, another drawback is that I couldn't find all the items that I have listed on my Amazon store - like my &lt;strong&gt;Sanyo Xacti VCP-E1&lt;/strong&gt; or &lt;strong&gt;Sony HVR-A1U&lt;/strong&gt;.  But I did find other Xacti cameras that I'd recommend.&lt;br /&gt;&lt;br /&gt;If you think you'd like to try creating a store yourself, here's my referral link: &lt;a href="http://www.zlio.com/signup?r=260186"&gt;http://www.zlio.com/signup?r=260186&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You may also find this article interesting:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.reuters.com/article/technologyNews/idUSN1933943520080320"&gt;Start a Web business in an extra few minutes (reuters.com)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Like with anything online, how much money you make depends on how much traffic you can generate to your store and peoples willingness to buy.  Later I'll write about another way to make money online that will require a bit more work.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/03/my-other-video-store.html' title='My Other Video Store'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=16205231462712154' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/16205231462712154'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/16205231462712154'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-3505559000841741225</id><published>2008-02-29T11:27:00.001-05:00</published><updated>2008-02-29T11:29:15.110-05:00</updated><title type='text'>Gamasutra - Sponsored Feature: Democratizing Game Distribution: The Next Step</title><content type='html'>&lt;a href="http://www.gamasutra.com/view/feature/3545/sponsored_feature_democratizing_.php"&gt;Gamasutra - Sponsored Feature: Democratizing Game Distribution: The Next Step&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;When we released XNA Game Studio Express 1.0 in December 2006, we had a feeling it would be an important development. After all, we were solving a set of common problems faced by all game developers. By offering a managed code framework and by empowering community members to run code safely on their Xbox 360 consoles, we made it easier for creators to write games. &lt;br /&gt;&lt;br /&gt;With the release of XNA Game Studio 2.0, we added multiplayer support over Xbox LIVE and made several other improvements. We enhanced our tools with a steady stream of samples, articles, mini-games, and other types of content that are posted at &lt;a href="http://creators.xna.com"&gt;http://creators.xna.com&lt;/a&gt; throughout the year. As the community embraced XNA Game Studio, we saw that we were redefining who could be a game developer. &lt;br /&gt;&lt;br /&gt;The response of the creator community to XNA Game Studio has been overwhelmingly positive. At the time of this writing, we have seen over 800,000 downloads of our tools. Over 400 academic institutions incorporated XNA Game Studio and C# into their computer science curriculums.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;I've always wanted to produce video games.  But the barrier to entry for consoles has always been high.  The good news is that that is no longer the case.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/02/gamasutra-sponsored-feature.html' title='Gamasutra - Sponsored Feature: Democratizing Game Distribution: The Next Step'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=3505559000841741225' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/3505559000841741225'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/3505559000841741225'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-8838796732800780655</id><published>2008-02-12T08:56:00.001-05:00</published><updated>2008-02-12T10:36:42.064-05:00</updated><title type='text'>I'm going to let the computer figure it out</title><content type='html'>The problem with code written 16 years ago is that sometimes you can't figure it out - even when you're the one who wrote it.  On top of that, most programmers will look at code they wrote so many years ago and gag at how bad it is.  I'm having that problem with my &lt;a href="http://www.mitchallen.com/geek/2008/02/formula-trees.html"&gt;Formula Tree&lt;/a&gt; code.&lt;br /&gt;&lt;br /&gt;I'm sure if I wanted to bother I could reverse engineer my own code and figure out where I was going with it.  But I decided that I'm going to take a different approach.  I'm going to use Genetic Programming to finish the code.  Yes, I'm going to let the computer figure it out.&lt;br /&gt;&lt;br /&gt;There are several reasons:&lt;br /&gt;&lt;br /&gt;* I'm more interested in working on GP than finishing the Formula Tree code - this way I can combine the two.&lt;br /&gt;* Every thought I've had for resolving the parentheses problem doesn't seem very elegant.&lt;br /&gt;* The application is perfect for Genetic Programming.  &lt;br /&gt;&lt;br /&gt;Think about it.  What does the program need to do?  Simple:  take a formula as an input along with a variable to solve.  Then produce another formula as an output.  It's a simple transformation problem where the input and expected output can be listed along side each other in a table.  &lt;br /&gt;&lt;br /&gt;I will grant that the solution won't be very simple.  It will probably require some tree manipulation.  But I could help the process along by giving each Genetic Program access to a special library for manipulating trees.  I could even make it so that the input to the program is a tree, as well as the expected output.  That way the GP can operate at a more abstract level.  I don't have to wait for it to evolve tree manipulation primitives to get started.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/02/im-going-to-let-computer-figure-it-out.html' title='I&apos;m going to let the computer figure it out'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=8838796732800780655' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/8838796732800780655'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/8838796732800780655'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-105953325585628163</id><published>2008-02-11T09:38:00.000-05:00</published><updated>2008-02-11T09:55:28.533-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='genetic programming'/><title type='text'>Advances in Genetic Programming</title><content type='html'>&lt;img src="http://images.amazon.com/images/P/0262111888.01._SCMZZZZZZZ_.jpg" align="left" style="border-width: 1px; border: solid blue; margin-right: 10px;" /&gt;If you are interested in learning about Genetic Programming, a good place to start is the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0262111888/ref=nosim/mitchallen-20" target="_blank"&gt;&lt;strong&gt;Advances in Genetic Programming&lt;/strong&gt;&lt;/a&gt; edited by Kenneth E. Kinnear.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.amazon.com/images/P/0262111705.01._SCMZZZZZZZ_.jpg" align="right" style="border-width: 1px; border: solid blue; margin-right: 10px;" /&gt;&lt;br /&gt;The book contains a compilation of chapters written by several authors.  The most prominent is John R. Koza, who provides a very good introduction to GP.  Mr. Koza is the author of the definitive book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0262111705/ref=nosim/mitchallen-20" target="_blank"&gt;&lt;strong&gt;Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems)&lt;/strong&gt;&lt;/a&gt;.  But before you start with his 800 page explanation, the Kinnear book is a less overwhelming introduction.&lt;br /&gt;&lt;br /&gt;You can find more information and the Table of Contents at the &lt;a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=8251"&gt;MIT Press Web site&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;While looking up the Kinnear book on Amazon, I discovered that there were two follow-ups written.  I just ordered copies and will review them at a later date.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/02/advances-in-genetic-programming.html' title='Advances in Genetic Programming'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=105953325585628163' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/105953325585628163'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/105953325585628163'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-5650447196683843898</id><published>2008-02-08T09:08:00.001-05:00</published><updated>2008-02-08T09:35:04.123-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='formula trees'/><category scheme='http://www.blogger.com/atom/ns#' term='calc engines'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic programming'/><title type='text'>Formula Trees</title><content type='html'>&lt;a href="http://www.mitchallen.com/geek/uploaded_images/formulaTree1-752105.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://www.mitchallen.com/geek/uploaded_images/formulaTree1-752102.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I dug out some old code that I originally wrote back in 1992 for solving equations.  At the time it was command line based (remember command lines?) and I would dump the output to a text file.  The text output would represent the original formula as a tree like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Node # 1|     0 : [ D ] &lt;-  [ = ]  -&gt; 3 : [ - ]&lt;br /&gt;Node # 3|     2 : [ A ] &lt;-  [ - ]  -&gt; 5 : [ / ]&lt;br /&gt;Node # 5|     4 : [ B ] &lt;-  [ / ]  -&gt; 6 : [ C ]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;I'd then have to grab a pen and sketch things out to visualize it.  I've always wanted to combine such programs with Flash and ActionScript.  The screenshot is of my very first rudimentary attempt.&lt;br /&gt;&lt;br /&gt;The code lets me select a variable from the formula and solve it.  The way I do that is by manipulating the tree.  Here's the output from the trace window:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;solveFormulaFor( C )&lt;br /&gt;moveFormulaTree()&lt;br /&gt;... moving: -&lt;br /&gt;Node # 1|     2 : [ A ] &lt;-  [ = ]  -&gt; 3 : [ + ]&lt;br /&gt;Node # 3|     0 : [ D ] &lt;-  [ + ]  -&gt; 5 : [ / ]&lt;br /&gt;Node # 5|     4 : [ B ] &lt;-  [ / ]  -&gt; 6 : [ C ]&lt;br /&gt;moveFormulaTree()&lt;br /&gt;... moving: +&lt;br /&gt;Node # 1|     5 : [ / ] &lt;-  [ = ]  -&gt; 3 : [ - ]&lt;br /&gt;Node # 3|     2 : [ A ] &lt;-  [ - ]  -&gt; 0 : [ D ]&lt;br /&gt;Node # 5|     4 : [ B ] &lt;-  [ / ]  -&gt; 6 : [ C ]&lt;br /&gt;moveFormulaTree()&lt;br /&gt;... moving: /&lt;br /&gt;Node # 1|     4 : [ B ] &lt;-  [ = ]  -&gt; 5 : [ * ]&lt;br /&gt;Node # 3|     2 : [ A ] &lt;-  [ - ]  -&gt; 0 : [ D ]&lt;br /&gt;Node # 5|     3 : [ - ] &lt;-  [ * ]  -&gt; 6 : [ C ]&lt;br /&gt;moveFormulaTree()&lt;br /&gt;... moving: *&lt;br /&gt;Node # 1|     6 : [ C ] &lt;-  [ = ]  -&gt; 5 : [ / ]&lt;br /&gt;Node # 3|     2 : [ A ] &lt;-  [ - ]  -&gt; 0 : [ D ]&lt;br /&gt;Node # 5|     4 : [ B ] &lt;-  [ / ]  -&gt; 3 : [ - ]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The last set of nodes represents the solution that you can see in the lower part of the screen shot.&lt;br /&gt;&lt;br /&gt;I still have a few kinks to work out of the code.  It doesn't handle solving formulas with parentheses too well.  I didn't realize there was a problem until I started visualizing it through Flash.  Whenever I get around to fixing that and have a much cleaner prototype I'll post an interactive version.&lt;br /&gt;&lt;br /&gt;I know quite a lot about calc engines.  I used to work for Lotus testing 1-2-3 as well as another company testing their calc engine. Before that as a consultant I wrote code to parse and pull out data from spreadsheet files.  I've also written calc engines based on an old simulation language called Dynamo.  One day, if I can ever find the time, I may write an e-book on spreadsheet mechanics, or just my experiments with formula trees.&lt;br /&gt;&lt;br /&gt;This is just the tip of the iceberg. I'm interested in manipulating and visualizing formula trees because the techniques can also be applied to one of my favorite topics - Genetic Programming.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/02/formula-trees.html' title='Formula Trees'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=5650447196683843898' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/5650447196683843898'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/5650447196683843898'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-2005462511289943247</id><published>2008-02-01T09:00:00.000-05:00</published><updated>2008-02-01T11:12:50.209-05:00</updated><title type='text'>Interactive L-Systems Flash App</title><content type='html'>&lt;p&gt;&lt;object id="testLSystem" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="600" width="550" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"&gt;&lt;param name="_cx" value="14552"&gt;&lt;param name="_cy" value="15875"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.mitchallen.com/files/flash/lsystem/testLSystem.swf"&gt;&lt;param name="Src" value="http://www.mitchallen.com/files/flash/lsystem/testLSystem.swf"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="sameDomain"&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="00CCFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.mitchallen.com/files/flash/lsystem/testLSystem.swf" quality="high" bgcolor="#00ccff" width="550" height="600" name="test_mcaLSystem" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.amazon.com/images/P/0262561271.01._SCMZZZZZZZ_.jpg" align="right" style="border-width: 1px; border: solid blue; margin-left: 10px;" /&gt;I have several books that discuss Turtle Graphics and L-Systems. The book that I used to produce the app above was &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0262561271/ref=nosim/scriptablecom" target="_blank"&gt;&lt;strong&gt;The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation&lt;/strong&gt;&lt;/a&gt; by Gary William Flake (see the review in my &lt;a href="http://www.mitchallen.com/geek/2008/01/computational-beauty-of-nature-computer.html"&gt;previous post&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;The book doesn't contain source code (though some pseudo code). But it included a very good explanation of what an L-System parser needs to do. I combined what I learned from the book with a Turtle Graphics library that I wrote in ActionScript. The models used in the app were described in the book. &lt;/p&gt;&lt;p&gt;Be patient. When you click on a button, it may take a few seconds for an image to generate.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/02/i-have-several-books-that-discuss.html' title='Interactive L-Systems Flash App'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=2005462511289943247' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/2005462511289943247'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/2005462511289943247'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-4792395607010091924</id><published>2008-01-31T07:20:00.000-05:00</published><updated>2008-01-31T07:29:14.157-05:00</updated><title type='text'>The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation</title><content type='html'>&lt;img src="http://images.amazon.com/images/P/0262561271.01._SCMZZZZZZZ_.jpg" align="left" style="border-width: 1px; border: solid blue; margin-right: 10px;" /&gt;While reading &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0262561271/ref=nosim/mitchallen-20" target="_blank"&gt;&lt;strong&gt;The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation&lt;/strong&gt;&lt;/a&gt; by Gary William Flake, I was most interested in the chapters covering Fractals, Complex Systems (cellular automata, ...) and Adaptation (genetic algorithms, neural networks, ...). I've never been that interested in Chaos, so I skimmed over that part. I would've like to have seen more then just a mere mention of my favorite topic, Genetic Programming. But the book has so much info there probably wasn't enough room for it!&lt;br /&gt;&lt;br /&gt;I had never been that interested in Fractals. But the book made it clear to me as to why they are more then just some way to create digital art. For some reason I had never made the connection before between Fractal's and L-Systems. But now it all makes sense. The connection is that both areas cover building large structures from a small set of repeating instructions. For some reason I never got that point when reading about Fractal's before. Such sciences could be applied to anything from architecture to computer programming to biology.&lt;br /&gt;&lt;br /&gt;Under Complex Systems I found a healthy review of Cellular Automata, Autonomous Agents, Self-Organization, Competition and Cooperation. Just as I found something new regarding L-Systems, I found something new referring to flocking behavior. Years ago I traded a few e-mails with Craig Reynolds. I was trying to decipher the mechanics of his Boids simulation (a simulation of a flock of birds). This book once again provided enough info so that I could probably put together my own simulation. If you'd like to look into it yourself, or just see a simulation, see this link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.red3d.com/cwr/boids/" target="_blank"&gt;&lt;strong&gt;http://www.red3d.com/cwr/boids/&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Genetic Algorithms and especially Genetic Programming are two of my favorite topics of Computer Science. I did learn a few new things from reading the related chapter on Classifiers. The chapter on Neural Networks was familiar territory. If you are new to the subject, it covers all the basics. Personally, I think all NN's should be trained through GA. But still learning about BackProp can be useful.&lt;br /&gt;&lt;br /&gt;Over all, a good solid book. If you are new to the science of Complexity, don't try to read the whole thing straight through. Skip around, like I did, and find the areas that interest you. If your Matrix Math or Calculus is a little rusty, just jump over the formulas. You'll still find a lot of interesting science to play with.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/computational-beauty-of-nature-computer.html' title='The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=4792395607010091924' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/4792395607010091924'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/4792395607010091924'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-6260064447484602695</id><published>2008-01-30T08:28:00.001-05:00</published><updated>2008-01-30T08:34:40.786-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='turtle graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='Lindenmayer systems'/><category scheme='http://www.blogger.com/atom/ns#' term='L-systems'/><title type='text'>The Algorithmic Beauty of Plants</title><content type='html'>&lt;strong&gt;&lt;a href="http://algorithmicbotany.org/papers/#abop" target="_blank"&gt;The Algorithmic Beauty of Plants&lt;/a&gt;&lt;/strong&gt; by P. Prusinkiewicz and A. Lindenmayer:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Lindenmayer systems — or L-systems for short — were conceived as a mathematical theory of plant development [82]. Originally, they did not include enough detail to allow for comprehensive modeling of higher plants. The emphasis was on plant topology, that is, the neighborhood relations between cells or larger plant modules. Their geometric aspects were beyond the scope of the theory. Subsequently, several geometric interpretations of L-systems were proposed with a view to turning them into a versatile tool for plant modeling. Throughout this book, an interpretation based on turtle geometry is used [109]. Basic notions related to L-system theory and their turtle interpretation are presented below."&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Visit the link to download a free PDF version of the book.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/algorithmic-beauty-of-plants.html' title='The Algorithmic Beauty of Plants'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=6260064447484602695' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/6260064447484602695'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/6260064447484602695'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-7593023615685576088</id><published>2008-01-29T07:53:00.000-05:00</published><updated>2008-01-29T08:00:46.110-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mandelbrot'/><category scheme='http://www.blogger.com/atom/ns#' term='artificial life'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='fractals'/><category scheme='http://www.blogger.com/atom/ns#' term='cellular automata'/><title type='text'>The Armchair Universe: An Exploration of Computer Worlds</title><content type='html'>One of my favorite resources for exploring cellular automata is &lt;strong&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0716719398/ref=nosim/scriptablecom" target="_blank"&gt;The Armchair Universe: An Exploration of Computer Worlds&lt;/a&gt;&lt;/strong&gt; by A.K. Dewdney. The chapter "&lt;em&gt;Three-Dimensional Life&lt;/em&gt;" is worth the price of the book (which you can get used for less then $2 on Amazon). It gives several examples of stable and cyclic forms that can emerge in a 3D version of the Game of Life. I also used the info to create an interesting Glider Gun display.&lt;br /&gt;&lt;br /&gt;Instead of sections, the book is broken up into "worlds" to explore. The worlds are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Infinite Graphics&lt;/strong&gt; - exploring Mandelbrots (fractals), Wallpaper for the Mind.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mathemagadgets&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Artificial Intelligence and Artificial Insanity&lt;/strong&gt; - with a great introduction to game theory and the minimax algorithm using a game of checkers.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Life in Automata&lt;/strong&gt; - from One-Dimensional Computers to Three-Dimensional Life&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Puzzles and Worldplay&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Stimulation through Simulation&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Core Wars&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;While visiting Amazon, you may also want to pick up a copy of his other book: &lt;strong&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0716724898/ref=nosim/scriptablecom"&gt;The Tinkertoy Computer and other Machinations: Computer Recreations from the pages of &lt;em&gt;Scientific American&lt;/em&gt; and &lt;em&gt;Algorithm&lt;/em&gt;&lt;/a&gt;&lt;/strong&gt;. In that book you'll find more interesting chapters playing with fractals, automata, etc.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/armchair-universe-exploration-of.html' title='The Armchair Universe: An Exploration of Computer Worlds'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=7593023615685576088' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/7593023615685576088'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/7593023615685576088'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-826119553742628418</id><published>2008-01-28T07:09:00.000-05:00</published><updated>2008-01-29T08:01:35.141-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software quality assurance'/><category scheme='http://www.blogger.com/atom/ns#' term='sqa'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='code generation'/><title type='text'>Code Generation and Testing</title><content type='html'>For my day job I specialize in writing automated API tests for an SDK (Software Development Kit).  The SDK consists of ActiveX components.  That means our customers can write application using either C++, C#, JavaScript or even Java.  To test that in all supported languages - even a single language - I need to generate a lot of code.  It can be a maintenance nightmare.  To make my life easier I turned to code generation.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://images.amazon.com/images/P/1930110979.01._SCMZZZZZZZ_.jpg" align="left" style="margin-right: 10px;" /&gt;Code generation is too complicated to explain in a blog posting.  So I may write an eBook on the subject as it relates to testing at some point.  Until then a great place to start is the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1930110979/ref=nosim/mitchallen-20"&gt;Code Generation in Action&lt;/a&gt; by Jack Herrington.&lt;br /&gt;&lt;br /&gt;There is no set way on how to implement code generation.  It's a matter of personal preference.  You can write your own template language and parser.  What I decided to do was encode my test cases in XML using a pseudo language customized for the SDK.  Then I use XSLT to transform the XML into source files (*.js, *.cs, etc.).  &lt;br /&gt;&lt;br /&gt;I write all of my test cases in Eclipse using Ant to drive the transformation.  It's worked out quite well (except for Ant throwing Java heap errors now and then).  In the old days I had to cut and paste test case functions into huge source files that were quite easy to mangle and get lost in.  Now I don't write one line of code in a traditional software language.  I write one test case per XML file and let the computer generate the source code for me.</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/code-generation-and-testing.html' title='Code Generation and Testing'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=826119553742628418' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/826119553742628418'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/826119553742628418'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-6618062329565868386</id><published>2008-01-25T09:18:00.000-05:00</published><updated>2008-01-29T08:02:01.537-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robotics'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><title type='text'>Latest buzz words in science: Robot swarms (usatoday.com)</title><content type='html'>Going back over the archives from an old site of mine, I found this interesting geek-related article from 2005:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usatoday.com/tech/news/robotics/2005-05-19-robot-swarm-research_x.htm" target="_blank"&gt;&lt;strong&gt;Latest buzz words in science: Robot swarms (usatoday.com)&lt;/strong&gt;&lt;/a&gt;: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Robotmakers find inspiration for their programs in nature: the behavior of bee, ant, and wasp colonies, as well as of flocks of birds and schools of fish. Ants, for example, communicate by leaving pheromone trails that other ants can follow to food. Ants also work as teams to distribute their workload, such as finding the most efficient paths for foraging or deciding who will haul bits of leaves back to the nest, without needing any directions from a leader."&lt;/em&gt;</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/latest-buzz-words-in-science-robot.html' title='Latest buzz words in science: Robot swarms (usatoday.com)'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=6618062329565868386' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/6618062329565868386'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/6618062329565868386'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-1451258386424455153</id><published>2008-01-24T09:40:00.000-05:00</published><updated>2008-01-29T08:02:25.738-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='artificial life'/><category scheme='http://www.blogger.com/atom/ns#' term='complexity'/><category scheme='http://www.blogger.com/atom/ns#' term='cellular automata'/><title type='text'>Complexity: The Emerging Science at the Edge of Order and Chaos</title><content type='html'>&lt;img src="http://images.amazon.com/images/P/0671872346.01._SCMZZZZZZZ_.jpg" align="left" style="margin-right: 10px;" /&gt;This is my favorite book on the science of Complexity. You won't find any how-to's. This book is the story of several pioneers of the science and the &lt;strong&gt;&lt;a href="http://www.santafe.edu/" target="_blank"&gt;Santa Fe Institute&lt;/a&gt;&lt;/strong&gt;. Think of it more as a history book then as a science book.&lt;br /&gt;&lt;br /&gt;If you are interested in Artificial Life, you'll be interested in the story of Christopher Langton. You may have seen his name on the cover of compilations on the subject.&lt;br /&gt;&lt;br /&gt;The book was published in 1992. But because it's a history book, I don't think you'll find it to be outdated. I found it fascinating to discover there was a whole institute and individuals dedicated to this stuff. It inspired me in my own work to develop CA (cellular automata) based maze solvers and 3D Life programs. I hope you'll find it just as interesting.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0671872346/ref=nosim/mitchallen-20" target="_blank"&gt;Complexity: The Emerging Science at the Edge of Order and Chaos&lt;/a&gt;&lt;/strong&gt; by M. Mitchell Waldrop</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/complexity-emerging-science-at-edge-of.html' title='Complexity: The Emerging Science at the Edge of Order and Chaos'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=1451258386424455153' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/1451258386424455153'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/1451258386424455153'/><author><name>Mitch Allen</name></author></entry><entry><id>tag:blogger.com,1999:blog-4049514804017905472.post-2978793953350783044</id><published>2008-01-23T08:44:00.000-05:00</published><updated>2008-01-29T08:02:54.351-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Jim Buckmaster on site design</title><content type='html'>&lt;a href="http://www.nytimes.com/2008/01/13/business/13digi.html"&gt;From 10 Hours a Week, $10 Million a Year (nytimes.com)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Craigslist’s personals draw about six million unique visitors a month, more than any other dating site, and its listings for all categories generate 10 billion page views a month. It covers 450 localities in 50 countries around the world — with only 25 employees. It is among the top 10 busiest English-language sites, but the customers who enjoy its free listings, like Plenty of Fish’s, must serve themselves or seek assistance from others. &lt;strong&gt;“Anything that represents customer hand-holding represents a failure of site design,”&lt;/strong&gt; said Jim Buckmaster, Craigslist’s chief executive. “We try to make changes to the site to make the problem go away.”&lt;/em&gt;</content><link rel='alternate' type='text/html' href='http://www.mitchallen.com/geek/2008/01/jim-buckmaster-on-site-design.html' title='Jim Buckmaster on site design'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4049514804017905472&amp;postID=2978793953350783044' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.mitchallen.com/geek/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/2978793953350783044'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4049514804017905472/posts/default/2978793953350783044'/><author><name>Mitch Allen</name></author></entry></feed>