<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-2449292-3']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();


Rails developer. Human.

Hire me at Relatively Early Development</description><title>guitsaru</title><generator>Tumblr (3.0; @guitsaru)</generator><link>http://guitsaru.com/</link><item><title>Tassadar: A Ruby SC2 Replay Parser</title><description>&lt;a href="http://github.com/guitsaru/tassadar"&gt;Tassadar: A Ruby SC2 Replay Parser&lt;/a&gt;: &lt;p&gt;I recently spent some time working at Agora Games.  During my time there, I ended up writing a pure ruby mpq (Blizzard game file format) parser specifically for StarCraft II replays.&lt;/p&gt;</description><link>http://guitsaru.com/post/15167401097</link><guid>http://guitsaru.com/post/15167401097</guid><pubDate>Sun, 01 Jan 2012 23:24:00 -0600</pubDate><category>Ruby</category><category>StarCraft II</category><category>Code</category></item><item><title>Google Codejam in Haskell</title><description>&lt;p&gt;I&amp;#8217;m currently learning Haskell by reading the book &lt;a href="http://book.realworldhaskell.org/"&gt;Real World Haskell&lt;/a&gt;.  Usually, when I learn a new language, I like to play around with some programming puzzles online at places like &lt;a href="http://projecteuler.com&amp;gt;Project%20Euler&amp;lt;/a&amp;gt;.%20%20This%20time,%20I%20started%20with%20&amp;lt;a%20href=" http:&gt;a problem from the Google Code Jam archives&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I started this with a brute force solution, actually simulating a chain of snappers.  It worked well for the small input set, but predictably failed on the large input set.  I started analyzing the problem and found an equation that solves it based on the number of snappers and the number of snaps which now solves the problem in O(1) time.  The equation I came up with is different than the given analysis (which makes use of xor), but I&amp;#8217;m still happy with it.&lt;/p&gt;

&lt;p&gt;All of the magic is in the isOn function.  The rest is input and output management.&lt;/p&gt;

&lt;p&gt;&lt;script src="https://gist.github.com/953983.js?file=SnapperChain.hs"&gt;&lt;/script&gt;&lt;/p&gt;</description><link>http://guitsaru.com/post/5166336356</link><guid>http://guitsaru.com/post/5166336356</guid><pubDate>Tue, 03 May 2011 14:12:00 -0500</pubDate><category>haskell</category></item><item><title>Complex Forms With UJS in Rails</title><description>&lt;p&gt;&lt;a href="http://railscasts.com/episodes/73-complex-forms-part-1"&gt;Complex forms&lt;/a&gt; used to be fairly difficult to put together in rails.  Rails 2.3 made it a little easier with &lt;a href="http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes"&gt;nested attributes&lt;/a&gt;, but the hardest part, for me at least, was adding new object fields via javascript.  There is quite a lot of this going on in a project I&amp;#8217;m currently working on and I&amp;#8217;ve come up with a new system utilizing Rails 3&amp;#8217;s spiffy new &lt;a href="http://github.com/rails/jquery-ujs"&gt;ujs support&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;script src="http://gist.github.com/488349.js"&gt;&lt;a href="http://gist.github.com/488349"&gt;View Gist&lt;/script&gt;&lt;/p&gt;

&lt;p&gt;The only downside I&amp;#8217;ve run into so far is the slightly messy markup that renders the field html inside the link.&lt;/p&gt;

&lt;p&gt;Have a better way, or know how to improve this code?  Let me know in the comments.&lt;/p&gt;</description><link>http://guitsaru.com/post/852236798</link><guid>http://guitsaru.com/post/852236798</guid><pubDate>Fri, 23 Jul 2010 22:13:03 -0500</pubDate></item><item><title>"Mathematics is like unicorn anatomy. You imagine this thing, and it doesn’t exist, yet it still..."</title><description>“Mathematics is like unicorn anatomy. You imagine this thing, and it doesn’t exist, yet it still comes with facts. I know how many legs a unicorn has.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://technoccult.net/archives/2010/02/25/the-punk-rock-philosophy-of-mathematics-technoccult-interviews-tom-henderson/"&gt;The Philosophy of Punk Rock Mathematics – Technoccult interviews Tom Henderson&lt;/a&gt;&lt;/em&gt;</description><link>http://guitsaru.com/post/418799586</link><guid>http://guitsaru.com/post/418799586</guid><pubDate>Sun, 28 Feb 2010 19:37:19 -0600</pubDate></item><item><title>Signal Chains</title><description>&lt;a href="http://signalchains.com"&gt;Signal Chains&lt;/a&gt;: &lt;p&gt;&lt;a title="Relatively Early Development" href="http://relativelyearly.com"&gt;Relatively Early&lt;/a&gt;’s latest project: a social network for audio engineers.  You can read more about it on &lt;a title="Signal Chains (Beta)" href="http://rossisbrown.com/2010/01/28/signal-chains-beta/"&gt;Ross’s Blog&lt;/a&gt;.&lt;/p&gt;</description><link>http://guitsaru.com/post/364467764</link><guid>http://guitsaru.com/post/364467764</guid><pubDate>Mon, 01 Feb 2010 22:16:00 -0600</pubDate></item><item><title>Lighthouse Branch</title><description>&lt;a href="http://github.com/guitsaru/lighthouse_branch"&gt;Lighthouse Branch&lt;/a&gt;: &lt;p&gt;A command line interface for creating git branches based on lighthouse tickets.&lt;/p&gt;</description><link>http://guitsaru.com/post/409797917</link><guid>http://guitsaru.com/post/409797917</guid><pubDate>Sun, 31 Jan 2010 16:43:00 -0600</pubDate></item></channel></rss>

