<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/mike/templates/default/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://boonedocks.net/mike/rss.php?version=atom0.3" rel="service.feed" title="Mike's Page" type="application/x.atom+xml" />
    <link href="http://boonedocks.net/mike/"                        rel="alternate"    title="Mike's Page" type="text/html" />
    <link href="http://boonedocks.net/mike/rss.php?version=2.0"     rel="alternate"    title="Mike's Page" type="application/rss+xml" />
    <title mode="escaped" type="text/html">Mike's Page</title>
    <tagline mode="escaped" type="text/html">Just breaking the surface</tagline>
    <id>http://boonedocks.net/mike/</id>
    <modified>2011-06-06T19:49:45Z</modified>
    <generator url="http://www.s9y.org/" version="1.2">Serendipity 1.2 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://boonedocks.net/mike/archives/188-Rubys-shallow-copies-of-hashes.html" rel="alternate" title="Ruby's shallow copies of hashes" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2011-06-06T19:31:01Z</issued>
        <created>2011-06-06T19:31:01Z</created>
        <modified>2011-06-06T19:49:45Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=188</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=188</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/188-guid.html</id>
        <title mode="escaped" type="text/html">Ruby's shallow copies of hashes</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                When you try to copy a Ruby hash using .dup or .clone, you get what is called a "shallow" copy. The data in the hash below the first level just seems to be referenced, so if you have a hash within the hash, and try to change a value in the deeper hash, the value is changed even for the original hash you ran the .dup on. To get a full ("deep") copy of a hash, you have to run an inelegant hack using Marshal to copy it: copy_hash = (Marshal.load(Marshal.dump(source_hash))). This apparently applies to arrays too. See the code below for an example, and I hope this saves you hours of debugging.<br /><br />

<script src="https://gist.github.com/1010901.js?file=hash_copy.rb"></script>
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/187-Rails-validations-with-accepts_nested_attributes_for-and-_destroy.html" rel="alternate" title="Rails validations with accepts_nested_attributes_for and _destroy" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2011-01-30T03:51:04Z</issued>
        <created>2011-01-30T03:51:04Z</created>
        <modified>2011-01-30T03:51:04Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=187</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=187</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/187-guid.html</id>
        <title mode="escaped" type="text/html">Rails validations with accepts_nested_attributes_for and _destroy</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I was recently working on a Rails app that has a form with a parent item and child items on the same form. Ryan Bates' <a href="https://github.com/ryanb/complex-form-examples">complex form examples</a> is a good place to start with this. That code will give you a simple form setup with some Javascript for adding and removing rows of children.<br /><br />

It works pretty well, except that in my case, I needed to ensure that each parent had a minimum of one child. I had a validation which checked for this, but it only worked for creating new records. If I removed all the child rows during an edit, the form would still save successfully. It turns out that the key is in the Rails documentation: <em>"Note that the model will not be destroyed until the parent is saved."</em> So my validation was still happily finding a child row, even though it was set to be deleted. It took me some time before I found the right way to check for this, but the <span style="font-family: monospace;">marked_for_destruction?</span> method seems to do the trick. Here's my code:<br /><br />

<script src="https://gist.github.com/802504.js?file=gistfile1.rb"></script>
<pre style="display: none;">
class Project < ActiveRecord::Base

  has_many :tasks
  accepts_nested_attributes_for :tasks, :reject_if => :all_blank, :allow_destroy => true

  def validate
    # require a minimum of one task
    undestroyed_task_count = 0

    tasks.each { |t| undestroyed_task_count += 1 unless t.marked_for_destruction? }

    errors.add_to_base 'There must be at least one task' if undestroyed_task_count < 1
  end

end
</pre>
<br />Hope this helps someone!
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/186-My-first-attempt-at-a-mobile-web-app.html" rel="alternate" title="My first attempt at a mobile web app" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2010-11-25T20:04:27Z</issued>
        <created>2010-11-25T20:04:27Z</created>
        <modified>2010-11-25T21:14:23Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=186</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=186</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/186-guid.html</id>
        <title mode="escaped" type="text/html">My first attempt at a mobile web app</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="padding-left: 1em; padding-right: 0.5em; padding-top: 0.5em; padding-bottom: 0.5em; float: right;"><a href="http://denglisch.boonedocks.net/"><img border="1" src="http://boonedocks.net/mike/images/denglisch1.png" alt="German-English Dictionary Web App" title="German-English Dictionary Web App" width="188" /></a></div>Is this thing on? So it's been a forever since I've blogged, but we'll see if I still can. Happy Thanksgiving at least!<br /><br />

Anyway, I've been wanting to build stuff for my iPhone. While I've been experimenting with Objective C for a native app, I wanted to actually build and publish something. So I have abandoned my Objective C code snippets for now and decided to go with things I know and build a Ruby on Rails site. There are various libraries to let you style a site for mobile browsers. I went with jQTouch, which is covered pretty well by these <a href="http://railscasts.com/episodes/199-mobile-devices">Railscasts</a> and <a href="https://peepcode.com/products/jqtouch">Peepcode</a> screencasts.<br /><br />

I like using the German-English dictionary site <a href="http://dict.tu-chemnitz.de/">Beolingus</a>, but I wanted to use it more easily on my iPhone. It turns out the data is downloadable, so I decided to build a web application with mobile front-end. Here it is:<br /><br />

<a href="http://denglisch.boonedocks.net/">Denglisch</a> (that's a <a href="http://en.wikipedia.org/wiki/Denglisch">term</a> for English and German mixed together)<br /><br />

I really wanted to build the site in Rails 3, but most of my stuff is hosted on Dreamhost, and I've read about various problem getting those apps running right now. So it's done in Rails 2.3.10 instead. The Rails side is pretty simple, just one model for the data, a rake script to import the textfile into the database, one controller and two actions. Then there's a little bit of jQuery Javascript code to handle the Ajax form submission.<br /><br />
<div style="clear: both;"></div>
<div style="padding-left: 1em; padding-right: 0.5em; padding-top: 0.5em; padding-bottom: 0.5em; float: right;"><img border="1" src="http://boonedocks.net/mike/images/denglisch2.png" alt="Home Screen Icon" title="Home Screen Icon" width="294" /></div>I knew how to do a lot of these bits, but I learned things along the way too. For one, I didn't know that the iPhone could make a native-looking app out of a website. The website can include icons and a splash screen, and when you add the bookmark to your home screen, the icon will show up there. The splash screen shows up when the website is loading, and then the web app uses the full screen without the Safari toolbars. Cool. I found jQTouch to be fairly easy to use, but the download from their home page is a good bit older than the <a href="https://github.com/senchalabs/jQTouch">code</a> they have on Github. I ran into an issue with the latest version that I had to look for a solution from the bug list. They don't have much documentation either. The Peepcode screencast was very helpful, but it isn't free, and jQTouch has changed a bit since it was published (e.g. the new "jqt" div).<br /><br />

Anyway, I've tested this on my iPhone...I'm curious to hear if it works for the iPad and other mobile devices. It was a good hobby project anyway. Have fun!
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/185-Time-on-the-Trail.html" rel="alternate" title="Time on the Trail" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-09-08T12:55:36Z</issued>
        <created>2009-09-08T12:55:36Z</created>
        <modified>2009-09-08T13:20:03Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=185</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=185</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/185-guid.html</id>
        <title mode="escaped" type="text/html">Time on the Trail</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="padding-left: 1em; padding-right: 0.5em; padding-top: 0.5em; padding-bottom: 0.5em; float: right;"><a href="http://boonedocks.net/pa/pa.php?p:980:l:53"><img border="1" src="http://boonedocks.net/pa/img.php?id=980&x=200&y=200" alt="Mike on the Trail" title="Mike on the Trail" width="200" /></a></div>So, back in April, my friend Rusty, his brother, and I tackled a section of trails in Great Smoky Mountains National Park. It was the same trail Rusty and I had started in 2006 but turned back due to a severe weather forecast. So we were eager to "finish the job" and see what there was to see. And we did. I wrote a long post about it which I never finished (the pictures are <a href="http://boonedocks.net/pa/pa.php?a:53">here</a> though). But I wanted to get something up here. You see, our route took us along part of the Appalachian Trail, and we encountered several groups of "thru-hikers" intent on hiking the entire 2,000+ mile trail. Each had already hiked more than 200 miles from the beginning in Georgia. Among those I talked with, I met two women from Massachusetts. Each had decided to hike the trail separately but had teamed up. "Mother Nature's Daughter" and "K-Bar" are both blogging. So I wanted to link to their blogs here, as they are both in Maine now and should be finished with the entire AT soon. They hike faster than I can blog, apparently. <img src="http://boonedocks.net/mike/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<ul>
<li><a href="http://momsatadventure.blogspot.com/">MND's blog</a> &mdash; she is hiking to raise money to fight MS...maybe you could contribute a few dollars since she has walked over 2,000 miles!</li>
<li><a href="http://www.northbound-biney.blogspot.com/">K-Bar's Blog</a></li>
</ul>
Best wishes to both of these ladies and maybe someday I'll get to tackle the whole trail myself!
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/184-Columbia-Open-Game-5.html" rel="alternate" title="Columbia Open Game 5" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-08-25T12:13:11Z</issued>
        <created>2009-08-25T12:13:11Z</created>
        <modified>2009-08-25T12:26:17Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=184</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=184</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/184-guid.html</id>
        <title mode="escaped" type="text/html">Columbia Open Game 5</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1251148174" name="cwvif_1251148174" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1251148174" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1251148174"><input type="hidden" id="cwvpd_1251148174" name="data" value="" /></form></div><div id="cwvpg_1251148174" style="display:none">[Event "Columbia Open"]<br />[Site "?"]<br />[Date "2009.8.23"]<br />[Round "5"]<br />[White "Mike Boone"]<br />[Black "M. Acklie"]<br />[Result "1-0"]<br />[WhiteELO "?"]<br />[BlackELO "945"]<br /><br />%Created by Caissa's Web PGN Editor<br />1. d4 d5 2. c4 {Finally someone lets me play an opening I'm familiar with...}<br />2... c5 {But I'm not familiar with that response!} 3. e3 Nc6 4. Nf3 f6 5. Nc3<br />{I took a long time on this move since I thought he was preparing for e5.}<br />5... e6 6. b3 Bd6 7. cxd5 {I made this capture with the intention of<br />developing my bishop to b5 for the pin.} 7... exd5 8. Bb5 {maybe I should have played Nxd5 to grab that pawn} 8... a6 9. Ba4? {I made<br />this move quickly because in other games I've maintained a pin that way, but<br />too late noticed that the bishop had no escape squares. I was certain b5 was<br />next.} 9... Rb8 {I didn't understand this move, but I was relieved.} 10.<br />Bxc6+ {I wasn't going to wait for b5 any longer.} 10... bxc6 {I was happy to<br />double his pawns but not to let the rook have the mostly-clear file. Perhaps<br />that was the intent of 9...Rb8?} 11. O-O c4 12. bxc4 dxc4 {Now I noticed he<br />had two unprotected pawns.} 13. Qa4 {Attacks both of them!} 13... Ne7<br />{Probably his best reply. } 14. Qxc4 Rb4 15. Qd3 {Here I had 57 minutes<br />left.} 15... O-O {My opponent had 62 minutes left. At this point I'm wondering<br />if the pawn grab was too aggressive and my queen would be continually<br />attacked.} 16. Bd2 c5 17. Ne4 c4 18. Qc2 Rb5 19. Nxd6 Qxd6 20. Qxc4+ Be6 21.<br />Qc3 {36 minutes left.} 21... Rc8 22. Qd3 Bf5 23. e4 {32 minutes left. I wasn't<br />happy with this move but I wanted to give my queen more retreat options.}<br />23... Bg6 24. Rfc1 {25 minutes left. I'm wanting to exchange pieces and<br />simplify since I'm up two pawns.} 24... f5 25. Rxc8+ {24 minutes left.} 25...<br />Nxc8 26. e5 {22 minutes left. I wanted to make trouble for his queen but here<br />I am removing the defender from that bishop.} 26... Qd8 27. Rb1 {20 minutes<br />left. As soon as I moved it I saw the bishop skewer and thought I had blown<br />it.} 27... f4 {My opponent saw it too.} 28. Qc4+ {The one move to save it. I<br />wish I could say I had planned this well ahead.} 28... Rd5 29. Rc1 {15:46<br />left.} 29... Bf7 {Here I saw a free knight and a queen exchange.} 30. Qxc8 {My<br />opponent resigned here.} 1-0</div><script type="text/javascript">document.getElementById("cwvpd_1251148174").value=document.getElementById("cwvpg_1251148174").innerHTML;document.getElementById("cwvfm_1251148174").submit();</script>
<pre style="white-space: pre-wrap;">
1. d4 d5
2. c4 {Finally someone lets me play an opening I'm familiar with...}
2... c5 {But I'm not familiar with that response!}
3. e3 Nc6
4. Nf3 f6
5. Nc3 {I took a long time on this move since I thought he was preparing for e5.}
5... e6
6. b3 Bd6
7. cxd5 {I made this capture with the intention of developing my bishop to b5 for the pin.}
7... exd5
8. Bb5 {maybe I should have played Nxd5 to grab that pawn}
8... a6
9. Ba4? {I made this move quickly because in other games I've maintained a pin that way, but too late noticed that the bishop had no escape squares. I was certain b5 was next.}
9... Rb8 {I didn't understand this move, but I was relieved.}
10. Bxc6+ {I wasn't going to wait for b5 any longer.}
10... bxc6 {I was happy to double his pawns but not to let the rook have the mostly-clear file. Perhaps that was the intent of 9...Rb8?}
11. O-O c4
12. bxc4 dxc4 {Now I noticed he had two unprotected pawns.}
13. Qa4 {Attacks both of them!}
13... Ne7 {Probably his best reply. }
14. Qxc4 Rb4
15. Qd3 {Here I had 57 minutes left.}
15... O-O {My opponent had 62 minutes left. At this point I'm wondering if the pawn grab was too aggressive and my queen would be continually attacked.}
16. Bd2 c5
17. Ne4 c4
18. Qc2 Rb5
19. Nxd6 Qxd6
20. Qxc4+ Be6
21. Qc3 {36 minutes left.}
21... Rc8
22. Qd3 Bf5
23. e4 {32 minutes left. I wasn't happy with this move but I wanted to give my queen more retreat options.}
23... Bg6
24. Rfc1 {25 minutes left. I'm wanting to exchange pieces and simplify since I'm up two pawns.}
24... f5
25. Rxc8+ {24 minutes left.}
25... Nxc8
26. e5 {22 minutes left. I wanted to make trouble for his queen but here I am removing the defender from that bishop.}
26... Qd8 27. Rb1 {20 minutes left. As soon as I moved it I saw the bishop skewer and thought I had blown it.}
27... f4 {My opponent saw it too.}
28. Qc4+ {The one move to save it. I wish I could say I had planned this well ahead.}
28... Rd5
29. Rc1 {15:46 left.}
29... Bf7 {Here I saw a free knight and a queen exchange.}
30. Qxc8 {My opponent resigned here.}
1-0
</pre> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/183-Columbia-Open-Game-4.html" rel="alternate" title="Columbia Open Game 4" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-08-25T12:04:24Z</issued>
        <created>2009-08-25T12:04:24Z</created>
        <modified>2009-08-25T12:36:35Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=183</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=183</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/183-guid.html</id>
        <title mode="escaped" type="text/html">Columbia Open Game 4</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1251136292" name="cwvif_1251136292" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1251136292" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1251136292"><input type="hidden" id="cwvpd_1251136292" name="data" value="" /></form></div><div id="cwvpg_1251136292" style="display:none">[Event "Columbia Open"]<br />[Site "?"]<br />[Date "2009.8.23"]<br />[Round "4"]<br />[White "T. Staley"]<br />[Black "Mike Boone"]<br />[Result "1/2-1/2"]<br />[WhiteELO "1081"]<br />[BlackELO "?"]<br /><br />%Created by Caissa's Web PGN Editor<br />%Orient=B<br />1. c4 e5 {I had no idea what the "proper" response to the English opening was,<br />so I just moved a center pawn.} 2. Nc3 d6 3. g3 Nf6 4. Bg2 Be7 {My opponent<br />missed this move and we both sat for maybe 10 minutes until he noticed his<br />clock was ticking. But he moved quickly enough it never mattered.} 5. e3 c6<br />6. Nge2 Be6 7. b3 d5 8. cxd5 cxd5 9. d3 Nc6 10. O-O O-O 11. f4 Bd6 12. fxe5<br />Bxe5 13. d4 Bc7 14. Ba3 Bd6 15. Bxd6 Qxd6 16. Nb5 Qd7 17. a4 Ng4 {Hoping to<br />pull off the fork on e3.} 18. Qd2 {Nope!} 18... a6 19. Nbc3 Rfe8 20. h3 Nf6<br />21. Nf4 {Here my opponent had 67 minutes left on his first 35 moves.} 21...<br />Rac8 {Here I had 39 minutes left on my first 35 moves.} 22. Nxe6 Qxe6 {Perhaps<br />Rxe6 would have been better.} 23. Rae1 Ne7 {31 minutes left.} 24. Ne2 Qd7 {25<br />minutes left.} 25. Nf4 b5 {24 minutes left. Trying to make some trouble on the<br />queenside.} 26. e4 bxa4 {22 minutes left.} 27. bxa4 dxe4 {20 minutes left. Was<br />considering Qxa4 but thought it was taking the queen away from the action.}<br />28. a5 {There went my chance to grab that pawn.} 28... Qd6 {17:55 left. I<br />think I made this move to threaten the g3 pawn if the knight were to move.}<br />29. Bxe4 Nxe4 30. Rxe4 Nd5 {14:39 left.} 31. Qe2 {Now I start to worry about<br />the back rank.} 31... Rxe4 32. Qxe4 Nf6 {10:02 left. Attacking the queen and<br />adding protection to e8.} 33. Qf5 Re8 {8:22 left. After I moved this I saw that I missed Qxd4+} 34. Qc5 Qxc5 {7:08 left.}<br />35. dxc5 Ne4 {I had 5:08 left at the 35th move, at which point we added an<br />hour per side. I intended to attack g3.} 36. Re1 {But now the knight is<br />pinned.} 36... f5 {Protects the knight, but my friend liked Kf8 better.} 37.<br />g4 Re5 {Here I thought I'd threaten a lot of his pawns but didn't think about<br />losing the knight if I moved the rook.} 38. gxf5 Kf7 {I could have grabbed two<br />pawns for my knight but I wasn't comfortable being down a piece.} 39. c6 Kf6<br />40. Nd3 Re8 41. c7 Kxf5 42. Nc5 {Attacks the knight and it's still pinned.}<br />42... Rc8 {I decided to abandon the knight and get that troublesome pawn.}<br />43. Nxe4 Rxc7 44. Nd6+ Kf4 45. Rf1+ Kg3 {32 minutes left.} 46. Ne4+ Kxh3 47.<br />Ng5+ Kg3 {Here I was trying to figure out a way to force a draw with his king<br />hemmed in.} 48. Nxh7 Rc2 49. Rd1 {He gives his king space and I can't force a<br />draw by repetition.} 49... Rg2+ 50. Kf1 Rf2+ {25 minutes left.} 51. Ke1 Rf5<br />52. Rd3+ Kg4 53. Rd4+ Kg3 54. Rd7 g5 {Here my opponent offered the draw and I<br />accepted. For fun we played out the game for several more moves and did end up<br />with only kings left for the draw.} 1/2-1/2</div><script type="text/javascript">document.getElementById("cwvpd_1251136292").value=document.getElementById("cwvpg_1251136292").innerHTML;document.getElementById("cwvfm_1251136292").submit();</script>
<pre style="white-space: pre-wrap;">
1. c4 e5 {I had no idea what the "proper" response to the English opening was, so I just moved a center pawn.}
2. Nc3 d6
3. g3 Nf6
4. Bg2 Be7 {My opponent missed this move and we both sat for maybe 10 minutes until he noticed his clock was ticking. But he moved quickly enough it never mattered.}
5. e3 c6
6. Nge2 Be6
7. b3 d5
8. cxd5 cxd5
9. d3 Nc6
10. O-O O-O
11. f4 Bd6
12. fxe5 Bxe5
13. d4 Bc7
14. Ba3 Bd6
15. Bxd6 Qxd6
16. Nb5 Qd7
17. a4 Ng4 {Hoping to pull off the fork on e3.}
18. Qd2 {Nope!}
18... a6
19. Nbc3 Rfe8
20. h3 Nf6
21. Nf4 {Here my opponent had 67 minutes left on his first 35 moves.}
21... Rac8 {Here I had 39 minutes left on my first 35 moves.}
22. Nxe6 Qxe6 {Perhaps Rxe6 would have been better.}
23. Rae1 Ne7 {31 minutes left.}
24. Ne2 Qd7 {25 minutes left.}
25. Nf4 b5 {24 minutes left. Trying to make some trouble on the queenside.}
26. e4 bxa4 {22 minutes left.}
27. bxa4 dxe4 {20 minutes left. Was considering Qxa4 but thought it was taking the queen away from the action.}
28. a5 {There went my chance to grab that pawn.}
28... Qd6 {17:55 left. I think I made this move to threaten the g3 pawn if the knight were to move.}
29. Bxe4 Nxe4
30. Rxe4 Nd5 {14:39 left.}
31. Qe2 {Now I start to worry about the back rank.}
31... Rxe4
32. Qxe4 Nf6 {10:02 left. Attacking the queen and adding protection to e8.}
33. Qf5 Re8 {8:22 left. After I moved this I saw that I missed Qxd4+}
34. Qc5 Qxc5 {7:08 left.}
35. dxc5 Ne4 {I had 5:08 left at the 35th move, at which point we added an hour per side. I intended to attack g3.}
36. Re1 {But now the knight is pinned.}
36... f5 {Protects the knight, but my friend liked Kf8 better.}
37. g4 Re5 {Here I thought I'd threaten a lot of his pawns but didn't think about losing the knight if I moved the rook.}
38. gxf5 Kf7 {I could have grabbed two pawns for my knight but I wasn't comfortable being down a piece.}
39. c6 Kf6
40. Nd3 Re8
41. c7 Kxf5
42. Nc5 {Attacks the knight and it's still pinned.}
42... Rc8 {I decided to abandon the knight and get that troublesome pawn.}
43. Nxe4 Rxc7
44. Nd6+ Kf4
45. Rf1+ Kg3 {32 minutes left.}
46. Ne4+ Kxh3
47. Ng5+ Kg3 {Here I was trying to figure out a way to force a draw with his king hemmed in.}
48. Nxh7 Rc2
49. Rd1 {He gives his king space and I can't force a draw by repetition.}
49... Rg2+
50. Kf1 Rf2+ {25 minutes left.}
51. Ke1 Rf5
52. Rd3+ Kg4
53. Rd4+ Kg3
54. Rd7 g5 {Here my opponent offered the draw and I accepted. For fun we played out the game for several more moves and did end up with only kings left for the draw.}
1/2-1/2
</pre> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/182-Columbia-Open-Game-3.html" rel="alternate" title="Columbia Open Game 3" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-08-25T11:54:53Z</issued>
        <created>2009-08-25T11:54:53Z</created>
        <modified>2009-08-25T12:05:08Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=182</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=182</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/182-guid.html</id>
        <title mode="escaped" type="text/html">Columbia Open Game 3</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1251146943" name="cwvif_1251146943" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1251146943" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1251146943"><input type="hidden" id="cwvpd_1251146943" name="data" value="" /></form></div><div id="cwvpg_1251146943" style="display:none">
[Event "Columbia Open"]<br />
[Site "?"]<br />
[Date "2009.8.22"]<br />
[Round "3"]<br />
[White "Mike Boone"]<br />
[Black "D. Smith"]<br />
[Result "0-1"]<br />
[WhiteELO "?"]<br />
[BlackELO "920"]<br />
<br />
%Created by Caissa's Web PGN Editor<br />
1. d4 e6 {I was not familiar with this move as a reply to d4.} 2. c4 c5 3. e3
cxd4 4. exd4 d6 5. Nf3 Nf6 6. Nc3 a6 7. Bg5 Be7 8. Qd3 Nc6 9. a3 Qa5 10. Be2
d5 11. O-O Qc7 12. cxd5 exd5 13. Bxf6 Bxf6 14. Nxd5 Qd6 15. Nxf6+ Qxf6 16.
Qe4+ Ne7 17. Rac1 O-O 18. Bxa6? {I guess I was tired when I made this move. I
never considered Rxa6 until I had made the move. Not the end of the world
since I was down a bishop for two pawns, but still a mistake to me.} 18...
Rxa6 19. Rfe1 Re6 20. Qc2 h6 21. Qb3 Rxe1+ 22. Rxe1 Nc6 {My opponent's clock
is 25 minutes at this point.} 23. Qc3 {My clock is at 18:59.} 23... Rd8 24.
Qe3 {Now I'm down to 13:42.} 24... Bg4 25. Ne5 {10:57 left.} 25... Nxe5 26.
dxe5 Qe7 27. Qe4 h5 28. h3 {8:42 left for me.} 28... Be6 {13:58 left for my
opponent.} 29. b4 {8:28 left.} 29... Bd5 30. Qe2 {8:06 left.} 30... Qg5 31.
g3 g6 32. Kh2 Rc8 33. h4 {2:40 left.} 33... Qf5 34. Qb5 Qxf2+ 35. Kh3 {30
seconds left.} 35... Qg2# 0-1
</div><script type="text/javascript">document.getElementById("cwvpd_1251146943").value=document.getElementById("cwvpg_1251146943").innerHTML;document.getElementById("cwvfm_1251146943").submit();</script>
<pre style="white-space: pre-wrap;">
1. d4 e6 {I was not familiar with this move as a reply to d4.}
2. c4 c5
3. e3 cxd4
4. exd4 d6
5. Nf3 Nf6
6. Nc3 a6
7. Bg5 Be7
8. Qd3 Nc6
9. a3 Qa5
10. Be2 d5
11. O-O Qc7
12. cxd5 exd5
13. Bxf6 Bxf6
14. Nxd5 Qd6
15. Nxf6+ Qxf6
16. Qe4+ Ne7
17. Rac1 O-O
18. Bxa6? {I guess I was tired when I made this move. I never considered Rxa6 until I had made the move. Not the end of the world since I was down a bishop for two pawns, but still a mistake to me.}
18...Rxa6
19. Rfe1 Re6
20. Qc2 h6
21. Qb3 Rxe1+
22. Rxe1 Nc6 {My opponent's clock is 25 minutes at this point.}
23. Qc3 {My clock is at 18:59.}
23... Rd8
24. Qe3 {Now I'm down to 13:42.}
24... Bg4
25. Ne5 {10:57 left.}
25... Nxe5
26. dxe5 Qe7
27. Qe4 h5
28. h3 {8:42 left for me.}
28... Be6 {13:58 left for my opponent.}
29. b4 {8:28 left.}
29... Bd5
30. Qe2 {8:06 left.}
30... Qg5
31. g3 g6
32. Kh2 Rc8
33. h4 {2:40 left.}
33... Qf5
34. Qb5 Qxf2+
35. Kh3 {30 seconds left.}
35... Qg2#
0-1
</pre>
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/181-Columbia-Open-Game-2.html" rel="alternate" title="Columbia Open Game 2" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-08-25T04:54:57Z</issued>
        <created>2009-08-25T04:54:57Z</created>
        <modified>2009-08-25T11:49:00Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=181</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=181</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/181-guid.html</id>
        <title mode="escaped" type="text/html">Columbia Open Game 2</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1251139370" name="cwvif_1251139370" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1251139370" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1251139370"><input type="hidden" id="cwvpd_1251139370" name="data" value="" /></form></div><div id="cwvpg_1251139370" style="display:none">[Event "Columbia Open"]<br />[Site "?"]<br />[Date "2009.8.22"]<br />[Round "2"]<br />[White "C. Patton"]<br />[Black "Mike Boone"]<br />[Result "0-1"]<br />[WhiteELO "981"]<br />[BlackELO "?"]<br /><br />%Created by Caissa's Web PGN Editor<br />%Orient=B<br />1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Bxc6 bxc6 {I'm not very familiar with the Ruy<br />Lopez and captured with the wrong pawn. The game got ugly quickly.} 5. Nxe5<br />Nf6 6. d3 Bd6 7. Bf4 O-O 8. Qe2 Bb7 9. Nd2 c5 10. Nxf7 {I thought this was too<br />aggressive, too early for my opponent.} 10... Kxf7 11. e5 Qe7 12. exd6 Qxe2+<br />13. Kxe2 Rfe8+ 14. Kf1 cxd6 15. Bxd6 Rac8 16. f3 Rc6 {68 minutes left.} 17.<br />Nc4 Nd5 18. Bxc5 {This was a good move by the opponent. I can't capture the<br />bishop because then Nd6 forks the king and rook.} 18... Ne3+ {I had planned<br />this after move 17 but it doesn't work because of the extra bishop attacking<br />that square.} 19. Bxe3 {Now I'm certain I'll lose this game.} 19... d5 20.<br />Na5 {I'm not sure this was a good idea. It forks the rook and bishop but<br />leaves c2 open and takes the protection off e3.} 20... Rxc2 21. Re1 {He<br />noticed the hanging bishop.} 21... Rxb2 {Picks up a pawn and guards the<br />bishop.} 22. Nxb7 Rxb7 23. Bd4 {Probably the biggest mistake. I had been<br />looking for a way to skewer that h1 rook.} 23... Rxe1+ 24. Kxe1 Rb1+ 25. Kf2<br />Rxh1 26. Kg3 Rd1 27. Kf4 Rxd3 28. Ke5 Rd2 29. a3 Rxg2 30. h4 Rh2 31. Kxd5<br />Rxh4 32. Kc5 Rf4 33. Bc3 Rxf3 34. Bb4 Rf6 35. a4 Re6 36. a5 h5 37. Bd2 h4 38.<br />Bf4 h3 39. Bh2 g5 40. Bg3 g4 41. Bh2 Rg6 42. Bg3 Kf6 43. Kd4 Kf5 44. Kd5 Rg8<br />45. Kc6 Ke4 46. Kb6 Kf3 47. Bc7 g3 48. Kxa6 g2 49. Bh2 g1=Q 50. Bxg1 Rxg1 51.<br />Kb7 h2 52. a6 h1=Q 53. a7 Kg4+ 54. Kb8 Rb1+ 0-1</div><script type="text/javascript">document.getElementById("cwvpd_1251139370").value=document.getElementById("cwvpg_1251139370").innerHTML;document.getElementById("cwvfm_1251139370").submit();</script>
<pre style="white-space: pre-wrap;">
1. e4 e5
2. Nf3 Nc6
3. Bb5 a6
4. Bxc6 bxc6 {I'm not very familiar with the Ruy Lopez and captured with the wrong pawn. The game got ugly quickly.}
5. Nxe5 Nf6
6. d3 Bd6
7. Bf4 O-O
8. Qe2 Bb7
9. Nd2 c5
10. Nxf7 {I thought this was too aggressive, too early for my opponent.}
10... Kxf7
11. e5 Qe7
12. exd6 Qxe2+
13. Kxe2 Rfe8+
14. Kf1 cxd6
15. Bxd6 Rac8
16. f3 Rc6 {68 minutes left.}
17. Nc4 Nd5
18. Bxc5 {This was a good move by the opponent. I can't capture the bishop because then Nd6 forks the king and rook.}
18... Ne3+ {I had planned this after move 17 but it doesn't work because of the extra bishop attacking that square.}
19. Bxe3 {Now I'm certain I'll lose this game.}
19... d5
20. Na5 {I'm not sure this was a good idea. It forks the rook and bishop but leaves c2 open and takes the protection off e3.}
20... Rxc2
21. Re1 {He noticed the hanging bishop.}
21... Rxb2 {Picks up a pawn and guards the bishop.}
22. Nxb7 Rxb7
23. Bd4 {Probably the biggest mistake. I had been looking for a way to skewer that h1 rook.}
23... Rxe1+
24. Kxe1 Rb1+
25. Kf2 Rxh1
26. Kg3 Rd1
27. Kf4 Rxd3
28. Ke5 Rd2
29. a3 Rxg2
30. h4 Rh2
31. Kxd5 Rxh4
32. Kc5 Rf4
33. Bc3 Rxf3
34. Bb4 Rf6
35. a4 Re6
36. a5 h5
37. Bd2 h4
38. Bf4 h3
39. Bh2 g5
40. Bg3 g4
41. Bh2 Rg6
42. Bg3 Kf6
43. Kd4 Kf5
44. Kd5 Rg8
45. Kc6 Ke4
46. Kb6 Kf3
47. Bc7 g3
48. Kxa6 g2
49. Bh2 g1=Q
50. Bxg1 Rxg1
51. Kb7 h2
52. a6 h1=Q
53. a7 Kg4+
54. Kb8 Rb1+
0-1
</pre>
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/180-Columbia-Open-Game-1.html" rel="alternate" title="Columbia Open Game 1" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-08-25T04:31:08Z</issued>
        <created>2009-08-25T04:31:08Z</created>
        <modified>2009-09-03T17:09:59Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=180</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=180</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/180-guid.html</id>
        <title mode="escaped" type="text/html">Columbia Open Game 1</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <iframe border="0" frameborder="0" allowtransparency="true" width="574" height="519" src="http://www.chess.com/emboard.html?id=350095"></iframe>

<div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1251143766" name="cwvif_1251143766" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1251143766" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1251143766"><input type="hidden" id="cwvpd_1251143766" name="data" value="" /></form></div><div id="cwvpg_1251143766" style="display:none">[Event "Columbia Open"]<br />[Site "?"]<br />[Date "2009.8.22"]<br />[Round "1"]<br />[White "Mike Boone"]<br />[Black "K. Robinson"]<br />[Result "1/2-1/2"]<br />[WhiteELO "?"]<br />[BlackELO "1320"]<br /><br />%Created by Caissa's Web PGN Editor<br />1. e4 {My first tournament game. I was nervous playing a 1320-rated player.}<br />1... d5 {The Scandinavian defense. I've played a few of these.} 2. exd5 Qxd5<br />3. Nc3 Qa5 4. Nf3 c6 5. Be2 Nf6 6. d4 e6 7. Bd2 Qd8 8. Bg5 {Now that the<br />queen's back where she started from I decided to pin the knight.} 8... Be7<br />{The pin didn't last long!} 9. O-O O-O 10. Qd2 Nd5 11. Nxd5 cxd5 12. c4 {I<br />don't remember why I made that move.} 12... f6 13. Bh4 Nc6 14. cxd5 exd5 15.<br />Rac1 Bb4 16. Qd3 Be7 {Another retreat.} 17. Bg3 Bd7 18. a3 Rc8 19. Rc3 Be6<br />20. Rfc1 Bd6 21. Bxd6 Qxd6 22. Qb5 Rc7 23. Qa4 Rfc8 24. Bd3 g6 25. Qc2 Bf7<br />26. Bb5 Be8 27. Qe2 Re7 28. Re3 Rcc7 29. Rxe7 Rxe7 30. Qd2 a6 31. Bd3 Bf7 32.<br />Re1 Kg7 33. Rxe7 Qxe7 34. Qd1 {At this point I had 17:21 left of 75 minutes.<br />My opponent still had 49 minutes left. I was worried about the time and wanted<br />to exchange some pieces.} 34... Qd6 35. b4 b5 36. a4 Nxb4 37. axb5 axb5 38.<br />Bxb5 Qb6 39. Be2 {13:46 left.} 39... Qc7 40. g3 Qc3 41. Kg2 Qb2 42. Qd2 {I had<br />10:45 left. Here I wanted to exchange queens, but had no idea what could be<br />done next. I was thinking a draw but wasn't comfortable asking for one. So<br />when my opponent, who still had 39 minutes on his clock, offered a draw,<br />I accepted.} 1/2-1/2</div><script type="text/javascript">document.getElementById("cwvpd_1251143766").value=document.getElementById("cwvpg_1251143766").innerHTML;document.getElementById("cwvfm_1251143766").submit();</script>
<pre style="white-space: pre-wrap;">
1. e4 {My first tournament game. I was nervous playing a 1320-rated player.}
1... d5 {The Scandinavian defense. I've played a few of these.}
2. exd5 Qxd5
3. Nc3 Qa5
4. Nf3 c6
5. Be2 Nf6
6. d4 e6
7. Bd2 Qd8
8. Bg5 {Now that the queen's back where she started from I decided to pin the knight.}
8... Be7 {The pin didn't last long!}
9. O-O O-O
10. Qd2 Nd5
11. Nxd5 cxd5
12. c4 {I don't remember why I made that move.}
12... f6
13. Bh4 Nc6
14. cxd5 exd5
15. Rac1 Bb4
16. Qd3 Be7 {Another retreat.}
17. Bg3 Bd7
18. a3 Rc8
19. Rc3 Be6
20. Rfc1 Bd6
21. Bxd6 Qxd6
22. Qb5 Rc7
23. Qa4 Rfc8
24. Bd3 g6
25. Qc2 Bf7
26. Bb5 Be8
27. Qe2 Re7
28. Re3 Rcc7
29. Rxe7 Rxe730. Qd2 a6
31. Bd3 Bf7
32. Re1 Kg7
33. Rxe7 Qxe7
34. Qd1 {At this point I had 17:21 left of 75 minutes. My opponent still had 49 minutes left. I was worried about the time and wanted to exchange some pieces.}
34... Qd6
35. b4 b5
36. a4 Nxb4
37. axb5 axb5
38. Bxb5 Qb6
39. Be2 {13:46 left.}
39... Qc7
40. g3 Qc3
41. Kg2 Qb2
42. Qd2 {I had 10:45 left. Here I wanted to exchange queens, but had no idea what could be done next. I was thinking a draw but wasn't comfortable asking for one. So when my opponent, who still had 39 minutes on his clock, offered a draw, I accepted.}
1/2-1/2
</pre> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/179-Greenwood-Chess-Simul.html" rel="alternate" title="Greenwood Chess Simul" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-06-23T19:17:59Z</issued>
        <created>2009-06-23T19:17:59Z</created>
        <modified>2009-08-25T04:31:06Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=179</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=179</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/179-guid.html</id>
        <title mode="escaped" type="text/html">Greenwood Chess Simul</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Last night was the Greenwood Chess Simul exhibition and my first time participating in one. The <a href="http://www.scchess.org/index.html">SC Chess Association</a> had arranged for chess Grand Master <a href="http://www.kaidanov.org/index1.htm">Gregory Kaidanov</a> to play exhibitions in four cities.<br /><br />
We didn't have a huge turnout in Greenwood, maybe 15 players and a small crowd of spectators. This allowed the GM to play quickly and it seemed like every time I looked up, he was coming around for another move. I think everyone would have played better with a little more time to think. I was amazed when two of the <a href="http://greatergreenwoodchessplayers.pbworks.com/">Greenwood club</a>'s strongest players were out quickly. I somehow managed to hang on for a few more minutes but was just as soundly defeated. A few more guys hung on for a little longer, but the simul was over quickly. Here is my game for your enjoyment.<br /><br />
<div style="width:590px;height:420px;border:1px solid black;position:relative"><a style="position:absolute;top:2px;right:4px;font:normal normal normal 8pt arial,helvetica,sans-serif;color:white" href="http://www.caissa.com/" target="_blank">Play Online Chess</a><iframe id="cwvif_1245769965" name="cwvif_1245769965" width="100%" height="100%" frameborder="0" scrolling="no"></iframe><form id="cwvfm_1245769965" method="post" action="http://www.caissa.com/htbin/chessview" target="cwvif_1245769965"><input type="hidden" id="cwvpd_1245769965" name="data" value="" /></form></div><div id="cwvpg_1245769965" style="display:none">[Event "Greenwood Simul"]<br />[Site "Greenwood Mall"]<br />[Date "2009.6.22"]<br />[Round "?"]<br />[White "GM Kaidanov"]<br />[Black "Mike Boone"]<br />[Result "1-0"]<br />[WhiteELO "?"]<br />[BlackELO "?"]<br /><br />%Created by Caissa's Web PGN Editor<br />%Display=999<br />1. Nf3 d5 2. d4 Nf6 3. c4 e6 4. Nc3 Bb4 5. Bg5 Bxc3+ 6. bxc3 O-O 7. e3 b6 8.<br />Bd3 Ba6 9. cxd5 Bxd3 10. Qxd3 Qxd5<br />11. Bxf6 gxf6 12. e4 Qh5 13. O-O Rd8 14. Qe3 Nc6 15. Rfe1 e5 16. h3 Rd7 17.<br />d5 Ne7 18. Nh2 Rad8 19. Ng4 Rd6 20. c4 f5 21. exf5 Nxf5 22. Qxe5 Kf8 23. Qh8#<br />1-0</div><script type="text/javascript">document.getElementById("cwvpd_1245769965").value=document.getElementById("cwvpg_1245769965").innerHTML;document.getElementById("cwvfm_1245769965").submit();</script>
<br />
In retrospect I wish I had moved 8...Bb7 instead, but I'm sure there are plenty of other mistakes in my moves.<br /><br />
As if the regular simul event wasn't fast enough, it was followed by a couple rounds of speed chess, 5 minutes per side, with the GM playing four simultaneously. I still had nearly 90 seconds on my clock when I was checkmated.<br /><br />
The coolest part of the exhibition was the "blindfold" game. The GM sat facing away from the board and each player called out moves. Despite drawing one of the better Greenwood players, the GM made quick work of him. It's amazing to be able to keep track of the entire game in your head.<br /><br />
I really enjoyed the event and want to thank Mr. Kaidanov for taking the time to come to Greenwood. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/178-One-of-those-Non-descriptive-Errors.html" rel="alternate" title="One of those Non-descriptive Errors" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-06-17T19:53:13Z</issued>
        <created>2009-06-17T19:53:13Z</created>
        <modified>2009-06-17T19:53:13Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=178</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=178</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/178-guid.html</id>
        <title mode="escaped" type="text/html">One of those Non-descriptive Errors</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                This one stumped me for a while today. I had an application to deploy which worked fine in development. Deploying to production led to this error:<br /><br />
<span style="font-family: monospace;">/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.0.5/lib/active_support/dependencies.rb:249:in `load_missing_constant': Expected /myapp/releases/20090617160914/app/models/widget.rb to define Widget (LoadError)</span>
<br /><br />
Googling that error turned up lots of pages for Rails 1.2.x and issues with underscores in names. None of it applied. Widget was definitely being defined in widget.rb. Following the stack trace it appeared that the error was thrown in the Ultrasphinx plugin. After trying a lot of other things, I decided to comment out the Ultrasphinx code in the model and retry. The error changed to this, which was helpful:<br /><br />
<span style="font-family: monospace;">
Errno::EACCES: Permission denied - /myapp/releases/20090617160914/public/widget/myfile
</span><br /><br />
This model was also using the file_column plugin, and the underlying error was just a permissions problem in the file attachment target directory. I fixed the permissions and put the Ultrasphinx code back in the model, and all was happy. If only that permissions error had shown up first! 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/176-I-Tri-ed-It.html" rel="alternate" title="I Tri-ed It" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-02-27T16:56:59Z</issued>
        <created>2009-02-27T16:56:59Z</created>
        <modified>2009-02-27T16:59:33Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=176</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=176</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/176-guid.html</id>
        <title mode="escaped" type="text/html">I Tri-ed It</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Last Saturday I participated in my first <a href="http://www.winterchallenge.com/ssp_index.htm">triathlon at Santee State Park</a>. It was an "off-road" triathlon which consisted of 3 miles of trail running, 3 miles of lake kayaking, and 7 miles of mountain biking. They had lots of participants for the short and long races, and the weather was excellent. It was good mix of people, so I didn't feel intimidated just by being there. I was there more just to compete with myself anyway.<br /><br />

The race made for a good excuse to exercise during the winter. I did a little more activity right after Christmas, but I didn't really get into it until the last month. Then I spent extra time at the gym and also did some "mini" triathlons here in the neighborhood.<br /><br />

For the race, the running was tough; I should have trained more for that and run more on trails instead of roads and treadmills. I felt great kayaking, and passed several people, but my wide poly kayak was a barge compared to the sea kayaks and racing kayaks that some other folks had. The biking was harder than expected; I was pretty tired by then and you can't coast as much on a trail as you can on the road. But all in all, I was happy just to finish! And to not be last was a bit of a bonus. I came in <a href="http://www.setupevents.com/index.cfm?fuseaction=event_results&id=1188">19th of 26</a>.<br /><br />

Now you give it a "tri." <img src="http://boonedocks.net/mike/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/175-MAMP-and-the-Ruby-MySQL-Gem.html" rel="alternate" title="MAMP and the Ruby MySQL Gem" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2009-01-29T16:31:01Z</issued>
        <created>2009-01-29T16:31:01Z</created>
        <modified>2011-09-19T02:01:23Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=175</wfw:comment>
        <slash:comments>71</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=175</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/175-guid.html</id>
        <title mode="escaped" type="text/html">MAMP and the Ruby MySQL Gem</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <b>Update 2011-09-18:</b> <a href="http://blog.mirotin.net/35/mamp-1-9-5-mysql-5-5-9-and-ruby-mysql2">See here</a> for the most up-to-date instructions (MAMP 1.9). I got it working on 2.0, but experienced some of the same problems other commenters noted). See also <a href="http://www.beyondcoding.com/2009/11/10/using-ruby-mysql-gem-with-mamp-1-8-x-on-snow-leopard/">these instructions</a> for MAMP 1.8.<br /><br />
After much frustration, I found a way to get the Ruby mysql Gem installed and talking to my MySQL server on MAMP. Credit goes largely to "Hootbah" who followed a similar path to get <a href="http://hootbah.co.uk/2008/01/03/mamp-17-and-dbdmysql/">MAMP talking to Perl's MySQL library</a>. Here's the steps I followed for MAMP 1.7.2:<br />
<style type="text/css">
#mamp_gem_steps li { margin-bottom: 0.5em; line-height: 1.5em; }
#mamp_gem_steps span { font-family: monospace; font-size: 110%; }
</style>
<div id="mamp_gem_steps">
<ol>
<li>Install the regular <a href="http://download.living-e.com/MAMP/releases/1.7.2/MAMP_1.7.2.dmg">MAMP 1.7.2 dmg package</a>.</li>
<li>Download the <a href="http://downloads.sourceforge.net/mamp/MAMP_1.7.2_src.zip">MAMP 1.7.2 source code</a>.</li>
<li>Unzip the source code file.</li>
<li>Open the terminal and go into the source code directory.</li>
<li>Untar the mysql file and go into the untarred directory:<br />
<span>
$ tar -xzvf mysql-5.0.41.tar.gz<br />
$ cd mysql-5.0.41
</span>
</li>
<li>This is the Hootbah magic...we're basically compiling libraries here for the Gem to link against.<br />
<span>
$ ./configure --with-unix-socket-path=/Applications/MAMP/tmp/mysql/mysql.sock --without-server --prefix=/Applications/MAMP/Library<br />
$ make -j2
</span>
</li>
<li>Copy the compiled libraries into MAMP:<br />
<span>
$ cp libmysql/.libs/*.dylib /Applications/MAMP/Library/lib/mysql
</span>
</li>
<li>Copy the MySQL headers into MAMP...Hootbah didn't do this but I had been doing it earlier trying to get around some missing mysql.h problems, and figured I'd keep doing it:<br />
<span>
$ mkdir /Applications/MAMP/Library/include<br />
$ cp -R include /Applications/MAMP/Library/include/mysql<br />
</span>
</li>
<li>Install the Ruby MySQL Gem:<br />
<span>
$ sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config
</span><br /><br />

After being used to seeing errors spit out by this statement, finally a pleasant surprise:<br /><br />
<span>
Building native extensions.  This could take a while...<br />
<b>Successfully installed mysql-2.7</b><br />
1 gem installed
</span>
</li>
</ol>
</div>
Success!
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/174-Grepping-from-Ruby.html" rel="alternate" title="Grepping from Ruby" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-12-07T16:30:06Z</issued>
        <created>2008-12-07T16:30:06Z</created>
        <modified>2008-12-07T16:32:11Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=174</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=174</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/174-guid.html</id>
        <title mode="escaped" type="text/html">Grepping from Ruby</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I recently needed to run through one data file, pull a number, and look that number up in several other data files. So in Ruby, I first opened the initial file, pulled the number, and then opened the other files, iterating through every line until I found a match, then call break to move on. This worked, but it was sort of slow.<br /><br />

It occurred to me that I could use grep to see if the number was in the other files. So I had to figure out how to call it from Ruby. Here's what I came up with:<br /><br />

<script src="http://gist.github.com/33175.js"></script>

The speed improvement depends on how many searches you're doing and the size of the files you're searching, but in a quick test the grep calls were 5x faster.
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://boonedocks.net/mike/archives/173-Vote-for-Me!.html" rel="alternate" title="Vote for Me!" type="text/html" />
        <author>
            <name>Mike Boone</name>
            <email>nospam@example.com</email>
        </author>
    
        <issued>2008-11-04T12:00:10Z</issued>
        <created>2008-11-04T12:00:10Z</created>
        <modified>2008-11-07T04:23:15Z</modified>
        <wfw:comment>http://boonedocks.net/mike/wfwcomment.php?cid=173</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://boonedocks.net/mike/rss.php?version=atom0.3&amp;type=comments&amp;cid=173</wfw:commentRss>
    
        <id>http://boonedocks.net/mike/archives/173-guid.html</id>
        <title mode="escaped" type="text/html">Vote for Me!</title>
        <content type="application/xhtml+xml" xml:base="http://boonedocks.net/mike/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I hereby declare my candidacy for President of the United States. So please write my name in when you vote today. Why did I wait until today? My platform is <strong>procrastination</strong>. You can expect me to drag my feet on such projects as:

<ul>
<li>Expanding offshore drilling</li>
<li>Invading foreign countries with no reason, or made-up reasons</li>
<li>Renewing spying on American citizens</li>
</ul>

In the immortal words of Mark Twain, <em>"Never put off until tomorrow what you can do the day after tomorrow."</em><br /><br />

And whatever you do, please don't vote for <a href="http://www.dcrblogs.com/2008/09/06/elect-me/">this guy</a>!
 
            </div>
        </content>

        
    </entry>
</feed>