<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MrJoy</title><link>http://MrJoy.com/</link><description>Recent content on MrJoy</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 01 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://MrJoy.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Roost, Terrain, and Sound</title><link>http://MrJoy.com/2026/07/01/roost-terrain-and-sound/</link><pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/07/01/roost-terrain-and-sound/</guid><description>&lt;p&gt;The last few posts have been heavy on the structural elements of what I&amp;rsquo;m doing and how I&amp;rsquo;m working to make LLMs work for me effectively without micromanagement, and seeing how far I can push things before that begins to come off the rails. This post is going to include a little bit of an update on the structural element, but it&amp;rsquo;s also a chance for me to show off a bit more player-facing shininess.&lt;/p&gt;
&lt;p&gt;The game now has music and sound effects, with an infrastructure that will help me deal with a design problem that plagued me in the first two games. It also has a terrain system that doesn&amp;rsquo;t look like programmer art.&lt;/p&gt;
&lt;p&gt;One key thing to note before I get into it: I am not using AI to produce art assets for the game, beyond a placeholder company logo and some very generic-looking placeholder UI elements. All actual art and sound in the game is human-produced.&lt;/p&gt;</description></item><item><title>Quality Requires Visibility</title><link>http://MrJoy.com/2026/06/16/quality-requires-visibility/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/06/16/quality-requires-visibility/</guid><description>&lt;img src="http://MrJoy.com/quality-requires-visibility/visibility.jpg"&gt;
&lt;p&gt;Quality requires visibility. You cannot fix — or even trust — what you cannot see. That&amp;rsquo;s true in any project, but it becomes even more urgent when the team doing the work is a &lt;em&gt;software factory&lt;/em&gt; and you&amp;rsquo;re not reading every line of code.&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m not micro-managing the implementation, the thing I&amp;rsquo;m actually managing is my own &lt;em&gt;insight&lt;/em&gt;: the gap between what the system was &lt;em&gt;intended&lt;/em&gt; to do and what it&amp;rsquo;s &lt;em&gt;actually&lt;/em&gt; doing. So let&amp;rsquo;s go over a little bit of what I&amp;rsquo;ve done to ensure I&amp;rsquo;ve got the visibility I need to ship a robust experience while using unreliable coding agents to do the heavy lifting.&lt;/p&gt;</description></item><item><title>In Which I Intervene in the Code</title><link>http://MrJoy.com/2026/06/09/in-which-i-intervene-in-the-code/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/06/09/in-which-i-intervene-in-the-code/</guid><description>&lt;img src="http://MrJoy.com/in-which-i-intervene-in-the-code/methodologies.jpg"&gt;
&lt;p&gt;(Image credit: &lt;a href="https://onlyfaangs.design"&gt;Hang Xu&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Three issues emerged that warranted some manual intervention this week. All three have prompted me to refine the process a bit more.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;After auditing the codebase for needless defensive guard code, neither Claude nor Codex managed to find any.&lt;/li&gt;
&lt;li&gt;The overhaul to how sources / destinations are specified silently broke the Fleeing mechanic for burning orcs.&lt;/li&gt;
&lt;li&gt;Low usage of Haiku and Sonnet compared to Opus.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So here&amp;rsquo;s what happened, and what I did about it.&lt;/p&gt;</description></item><item><title>The Meta-Game Begins</title><link>http://MrJoy.com/2026/06/04/the-meta-game-begins/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/06/04/the-meta-game-begins/</guid><description>&lt;p&gt;The original Hordes of Orcs games were pretty simple things. Everything was available straight away — every map, every tower, every upgrade, every spell. That&amp;rsquo;s not a bad thing, and I don&amp;rsquo;t regret it. But it does mean people burned through all of the content pretty quickly.&lt;/p&gt;
&lt;p&gt;For this game, I want the experience to last longer. That means two things: there needs to be a &lt;em&gt;meta-game&lt;/em&gt;, and it needs to be a lot easier to author new maps. The last six days were largely about both — and about the unanticipated consequences of getting there.&lt;/p&gt;</description></item><item><title>Progress, 37 Days in</title><link>http://MrJoy.com/2026/05/27/progress-37-days-in/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/05/27/progress-37-days-in/</guid><description>&lt;p&gt;Three posts in, this series has been almost entirely about &lt;em&gt;process&lt;/em&gt; — the factory, the sub-agents, the invisible work that keeps a codebase from strangling itself. Every one of them ended with some variation of &amp;ldquo;the game continues to come along nicely,&amp;rdquo; and asked you to take my word for it.&lt;/p&gt;
&lt;p&gt;This post is me finally showing my work. Here is roughly a minute of Hordes of Orcs 3 as it stood on day 34.&lt;/p&gt;</description></item><item><title>The Invisible Work Matters</title><link>http://MrJoy.com/2026/05/26/the-invisible-work-matters/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/05/26/the-invisible-work-matters/</guid><description>&lt;p&gt;A lot of engineering is invisible work. Work that never surfaces to a manager, and that either doesn&amp;rsquo;t show up in a PR diff or isn&amp;rsquo;t explicitly explained for what it is. It&amp;rsquo;s often work that the engineer doesn&amp;rsquo;t consciously register as work at all. Because it doesn&amp;rsquo;t get talked about, very little of it ends up written down. Because very little of it ends up written down, very little of it ended up in the training data for the models I&amp;rsquo;m now handing my codebase to.&lt;/p&gt;
&lt;p&gt;That absence is a quiet, compounding risk to the long-term health of a project. By its nature, it tends to shorten what &amp;ldquo;long-term&amp;rdquo; even means.&lt;/p&gt;</description></item><item><title>Specialists in the Factory</title><link>http://MrJoy.com/2026/05/14/specialists-in-the-factory/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/05/14/specialists-in-the-factory/</guid><description>&lt;p&gt;A week ago I &lt;a href="http://MrJoy.com/2026/05/07/six-days-equals-six-weeks/"&gt;wrote about the software factory I&amp;rsquo;ve been running&lt;/a&gt; for Hordes of Orcs 3. Claude, Copilot, and Codex in their right lanes. Five layers stacked on top to keep the output coherent. I said I&amp;rsquo;d come back in 30 days. I&amp;rsquo;m coming back in seven, because the process has continued to evolve quite rapidly.&lt;/p&gt;
&lt;p&gt;This post will cover what&amp;rsquo;s changed in the process, and what&amp;rsquo;s been achieved with it.&lt;/p&gt;</description></item><item><title>Six Days Equals Six Weeks</title><link>http://MrJoy.com/2026/05/07/six-days-equals-six-weeks/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>http://MrJoy.com/2026/05/07/six-days-equals-six-weeks/</guid><description>&lt;img src="http://MrJoy.com/games/hordes-of-orcs-3/media/early-test-shot.png"&gt;
&lt;p&gt;In 2007, the first &amp;ndash; and hardest &amp;ndash; hurdle to shipping my first game was getting orcs to spawn on one side of a board and pathfind around obstacles to the other side. That took me six weeks.&lt;/p&gt;
&lt;p&gt;Last month I started the project over from scratch — Unity 6.3 client, Rails 8.1 backend, almost none of the original code carried forward. I hit the pathfinding milestone on day six. And I had a hell of a lot more to show for it.&lt;/p&gt;
&lt;p&gt;The difference: I&amp;rsquo;m not really writing the code anymore. I&amp;rsquo;m running a small software factory — Claude, Copilot, and Codex working in shifts. Most of my time goes to game design and business planning. Most of the &amp;ldquo;development&amp;rdquo; I do is designing the protocol they follow.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the catch: The code coming out the other end is sloppy and architecturally incoherent. The tests pass and the game plays, but if you stop there, you&amp;rsquo;ve built something you wouldn&amp;rsquo;t want to live with. The interesting part of this post isn&amp;rsquo;t the 7x speedup. It&amp;rsquo;s everything I&amp;rsquo;ve layered on top to make the output coherent.&lt;/p&gt;</description></item><item><title>Monkey Bread</title><link>http://MrJoy.com/2014/11/23/monkey-bread/</link><pubDate>Sun, 23 Nov 2014 12:00:00 -0700</pubDate><guid>http://MrJoy.com/2014/11/23/monkey-bread/</guid><description>&lt;p&gt;My familys recipe for &lt;a href="https://en.wikipedia.org/wiki/Monkey_bread"&gt;monkey bread&lt;/a&gt;,
which varies from the traditional by being a biscuit not a dessert.&lt;/p&gt;</description></item><item><title>The End</title><link>http://MrJoy.com/2012/05/03/the-end/</link><pubDate>Thu, 03 May 2012 12:46:00 +0000</pubDate><guid>http://MrJoy.com/2012/05/03/the-end/</guid><description>&lt;p&gt;As of today, &lt;a href="http://MrJoy.com/games/hordes-of-orcs-2.html"&gt;Hordes of Orcs 2&lt;/a&gt; will no longer be
available for purchase.&lt;/p&gt;</description></item><item><title/><link>http://MrJoy.com/resume/ic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/resume/ic/</guid><description>&lt;h1 id="jon-frisby"&gt;Jon Frisby&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:jfrisby@mrjoy.com"&gt;jfrisby@mrjoy.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Cell:&lt;/strong&gt; &lt;a href="tel:408-898-7702"&gt;408-898-7702&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Location:&lt;/strong&gt; Vancouver, WA&lt;/p&gt;
&lt;p&gt;Senior IC who builds things from zero, scales them, and does the hard work others avoid — security, cost optimization, data architecture. 25+ years across distributed systems, data warehousing, DevOps, and full-stack product. I have led architecture and shipped the keystone code at five companies — from founding-engineer scope at Cloudability and Sixty AI through staff-level work at Valimail, and Teak — and I work well with product, design, and operations partners to land changes the business can actually absorb.&lt;/p&gt;</description></item><item><title>About Me</title><link>http://MrJoy.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/about/</guid><description>&lt;img src="http://MrJoy.com/images/me.jpg" width="200" height="200"&gt;
&lt;p&gt;My name is Jon Frisby. I&amp;rsquo;m a coder, and I&amp;rsquo;ve co-founded launch five startups, the most notably being &lt;a href="https://www.cloudability.com/"&gt;Cloudability Inc&lt;/a&gt;. My happy place is making a big impact on the business whether I&amp;rsquo;m in a senior IC role, an executive role, or something in-between.&lt;/p&gt;
&lt;h2 id="gpg-key"&gt;GPG Key&lt;/h2&gt;
&lt;div class="gpg-info"&gt;
 &lt;span class="gpg-info-label"&gt;Fingerprint:&lt;/span&gt; &lt;span class="gpg-info-value"&gt;7DCB12A7&lt;/span&gt;
 &lt;div class="gpg-info-clear"&gt;&lt;/div&gt;
 &lt;span class="gpg-info-label"&gt;Keyserver:&lt;/span&gt; &lt;span class="gpg-info-value"&gt;pool.sks-keyservers.net&lt;/span&gt;
 &lt;div class="gpg-info-clear"&gt;&lt;/div&gt;
 &lt;span class="gpg-info-label"&gt;Name:&lt;/span&gt; &lt;span class="gpg-info-value"&gt;Jon Frisby &amp;lt;jfrisby@mrjoy.com&amp;gt;&lt;/span&gt;
 &lt;div class="gpg-info-clear"&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Annotate</title><link>http://MrJoy.com/code/contributions/annotate.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/contributions/annotate.html</guid><description>&lt;p&gt;Annotate is a gem for annotating ActiveRecord models with schema information.&lt;/p&gt;
&lt;p&gt;It can be used with virtually any project using ActiveRecord, and can
additionally hook into Rails to run every time &lt;code&gt;rake db:migrate&lt;/code&gt; is executed.&lt;/p&gt;
&lt;h1 id="changes-accepted-upstream"&gt;Changes Accepted &lt;a href="https://github.com/ctran/annotate_models"&gt;Upstream&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/f96592dc6718ad8bd910867dba5aee8e33ac4ce5"&gt;Change formatting to allow wider output, avoiding cutting off output.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/809a29f95eaec5fc3b0e6edb4c2167272c7175c4"&gt;Fix behavior for model sub-classes.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/70206842ed24b40181b4e783cc3614c42416d6a7"&gt;Improve dependency handling.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Implement option to put columns in alphabetical order, addressing issues with
out-of-order migration execution.&lt;/li&gt;
&lt;li&gt;Generate gemspec instead of having it be &amp;lsquo;smart&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/ebc1b0373ec194fb31df494a5b6ea9c31e2062fe"&gt;Restore ability of Annotate to be used in context of non-Rails projects.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/cb50771c6b90c0e6d12df888467c19edd23cf4f4"&gt;Isolate Pry dependency to MRI, to make development under other Rubies easier.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/b1882bc791d5f830539488e2a3235e57947f855b"&gt;Make testing under Rubinius less of a hassle.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/d5cff4cf6238ac62f73a326f429601feffa3f07c"&gt;Improve code-loading, including support for older versions of Rake.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/cef9f95d359325782ee8ead95553b1f995e017cb"&gt;Add support for abstract classes.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Numerous documentation updates/corrections/improvements.
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/338609411ff5324c92b683cbe16919d6ead96e1d"&gt;33860941&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/fd43f23d0be54f9ac4075452bad483a2df8c8bd4"&gt;fd43f23d&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/2ff95c25405b308874584918c47f4a8d9cf076e1"&gt;2ff95c25&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/704eb37e7a55a516f72904fe662606a4eb9ee3f0"&gt;704eb37e&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/66cbd651f586fe371a4228468ed20191b1d9372d"&gt;66cbd651&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/bb88aa6c4a8f5e1927a4ed0518132d864620b8e2"&gt;bb88aa6c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/03d8d13867b7fd2bb4e5ce53eabc8ab09fb2527d"&gt;03d8d138&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/d47092e7732211e90825e11ed8a0b75cafffbb60"&gt;d47092e7&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/bb0db218989af2e7ae017548be2fa9e1b734ad4f"&gt;bb0db218&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/112ebfa20af4a02da822c0dac232a014a27a7682"&gt;112ebfa2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Improve integration testing infrastructure considerably, and add a variety of integration tests.
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/8e070848272cb7054b651c69ce70e8a17e6d3703"&gt;8e070848&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/31089aff60ec00b9b2015557df057594b1777bf0"&gt;31089aff&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/120a0c49def58a66d5f393305b801e31f7b00e63"&gt;120a0c49&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/843b7903154973e0e67fb824d591647fff3dc906"&gt;843b7903&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/fba0ca0a6a2ed6b2e29f36b137d28c430eb6efb1"&gt;fba0ca0a&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/06ebbd1911525fc3dae96b984d0ffa46ad4db512"&gt;06ebbd19&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Numerous fixes for typos and minor bugs, consistency, and general tidying up.
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/6f62d0e640ef93c95a810c640a8a514b3299e91b"&gt;6f62d0e6&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/518f8eafe94e9d869e94bba0c51a346da50eb536"&gt;518f8eaf&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/b18abd938130579d79c6f2235a7b7ade285d2521"&gt;b18abd93&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/25b0f9a5fbd421b7dbd15b88780dc2982beb4cca"&gt;25b0f9a5&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/a6f54978b6e5fb5761db7bbb26f5c7d79c05de91"&gt;a6f54978&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/89548ee7009803ab8cde26bfd408758a391fede7"&gt;89548ee7&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/71ac22daba89fabbfadcf0c565886ffc6969d0ed"&gt;71ac22da&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/b006985ca0eba6e81594007d9b03357c9d80b9b0"&gt;b006985c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/8927c88b3c72fa345448b074a0b3491a5b49d2b5"&gt;8927c88b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/0f04036b70be0b5d1273cedaa8067f35a3a3ee08"&gt;0f04036b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/bcf034e1cc35c5dd6fe17f882edf8925a964e6c3"&gt;bcf034e1&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/3049c810be522cc1b60d755309c872ab413408eb"&gt;3049c810&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/b006985ca0eba6e81594007d9b03357c9d80b9b0"&gt;b006985c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/69cd69cba2f67fc2362384d61c3ff8c9de45366c"&gt;69cd69cb&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/22b97fa6fc2a2209bcd7390b39d6c7e1b9f0137d"&gt;22b97fa6&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/a19d2cddff692f5f5c64cf8d15b8eff2727d8585"&gt;a19d2cdd&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/3b3b43435e97dc7f2cb84baf090a08cd3d5da1e4"&gt;3b3b4343&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/3689d9dba0ae7361cecd3e424d94447d662b90da"&gt;3689d9db&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/b916307c5bf1086c0d950c6f592c0f685aa72230"&gt;b916307c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/68f459beed247a9fbb4c40ce850d09edb50e3446"&gt;68f459be&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/918bc4207e72f3f1092816476f57f862584c9020"&gt;918bc420&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/e41c7131581284ba21cb2dc793070ceb10c98258"&gt;e41c7131&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/9d52904a466049be33783dd66a669d387998afec"&gt;9d52904a&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/e00810b24fedcdff8fabfabab2bb17275e906247"&gt;e00810b2&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/22e6d49c80237ea9117be64355c5c4b1013d8916"&gt;22e6d49c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/7c4c85ca644e5592b3416d15fb2e0ffb1274398a"&gt;7c4c85ca&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Resolve sea of independent branches, unifying contributed functionality and
closing off branches that implemented functionality differently than was
landed to official branch.
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ctran/annotate_models/commit/858b4d69fb52e702b3b5a9dd2e4a69b9a55bb219"&gt;858b4d69&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/7f9e974d03a4ebd7526a10fa02c369682961e65a"&gt;7f9e974d&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/efa5699a1332c7f20d11acfc4f123d4e3060b266"&gt;efa5699a&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/f862313556047620fe4ac13c130f74fdbedb82ce"&gt;f8623135&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/5286f96bab892f59abaf10815eca7b0c5748c0cd"&gt;5286f96b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/5198f1c20acfecc41aa3334fe090fb62c0de66b7"&gt;5198f1c2&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/3bdb536f8885f71141c33af8ac7b84c59e3fb9b1"&gt;3bdb536f&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/6e41ec0addbd306e2e55c3ffdbb002cad196489d"&gt;6e41ec0a&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/46df45d5fbdeceb7b6510c57454e511190689cbd"&gt;46df45d5&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/e417f4190a06ff144b6386962d744914ea5fe307"&gt;e417f419&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/5829e243b5cd6247bdc189244226de5ffe7fdd2c"&gt;5829e243&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/18da6a78e5ee45e448848b9e7efe711f5e640936"&gt;18da6a78&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/61b2574dca99d207afbef7d83c5880811d76756b"&gt;61b2574d&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/3c29b0ac7ad5ed59806ef58c5c024a0639280609"&gt;3c29b0ac&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/4f8a0be608a64dfaaee56a21b064428cbe3f6e47"&gt;4f8a0be6&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/a1736b222e6d50e4269a75051502baefe83b4384"&gt;a1736b22&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/6ac0df9b41690e097b882b89a0b305e85a4a516b"&gt;6ac0df9b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/00622b3dd5c987d5a4a3d49d4b427fc5d4b90543"&gt;00622b3d&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/5f0d3c95e9e26a3c6bc3b8e4baa2eed5080ae979"&gt;5f0d3c95&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/7590435779faf6b2f2f43ee1024702bb8206c1b6"&gt;75904357&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/22ad7220dcf614c4229832dbfe41879eadbdff30"&gt;22ad7220&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/5f17dbf78d8204a49e990ea4b629adb2d7b2c878"&gt;5f17dbf7&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/8c6ff2eafe49349ab0e5666f1e92e7fb8c552bb8"&gt;8c6ff2ea&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/f67b8f1bd4d3533946fa7734ca4268aea41b9a7c"&gt;f67b8f1b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/55984c28a298fb88bf78d7a9d02161d12d3618cc"&gt;55984c28&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/4f02f272f2e8560d09be3bbc475723ac91360168"&gt;4f02f272&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/c69f08df2d93507898a37f52b3288a6e86fcc442"&gt;c69f08df&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/a9f61764d9b6b2b37f0c9223f473b7d0c91ea617"&gt;a9f61764&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/59bac503ea24308379cc18534033adbb3bd9461c"&gt;59bac503&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/ab20ee5b08abf5d63936fc82bd864e57f9532ec8"&gt;ab20ee5b&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/075c125e2f3cccca0d682c8fa60ec836b97057fa"&gt;075c125e&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/43520d82ed7871a3eb8c5278e85f39b01d9700b0"&gt;43520d82&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/2ff1d3708b95e07a7a9bee59758514396c889796"&gt;2ff1d370&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/fc6b727cb204f3c94c12c16cbf3603c51eb0f9f8"&gt;fc6b727c&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/79b9821eb73c206d9c84595bd34b2e5439f04855"&gt;79b9821e&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/b58a4f712f2c1a0527ff4d2f86cf1bb90486df81"&gt;b58a4f71&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/56e6930e0cfc80f2735e2ca943d10095623119ba"&gt;56e6930e&lt;/a&gt;,
&lt;a href="https://github.com/ctran/annotate_models/commit/f5c1aa0f70c4c0b3d6ac4ea936dc23f1ac03b502"&gt;f5c1aa0f&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>bundler-audit</title><link>http://MrJoy.com/code/contributions/bundler-audit.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/contributions/bundler-audit.html</guid><description>&lt;p&gt;Provides patch-level published-vulnerability verification for Bundler.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Checks for vulnerable versions of gems in &lt;code&gt;Gemfile.lock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Checks for insecure gem sources (&lt;code&gt;http://&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Allows ignoring certain advisories that have been manually worked around.&lt;/li&gt;
&lt;li&gt;Prints advisory information.&lt;/li&gt;
&lt;li&gt;Does not require a network connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="changes-accepted-upstream"&gt;Changes Accepted &lt;a href="https://github.com/rubysec/bundler-audit"&gt;Upstream&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/77"&gt;Add coverage analysis.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/57"&gt;Be clear in the README about allowed RubyGems versions.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/54"&gt;Broaden test suite a bit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/52"&gt;Make tests more resilient to changes in details of the output from &lt;code&gt;bundler-audit&lt;/code&gt;.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/51"&gt;Add tests for Database class.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/47"&gt;Clean up some lingering issues around the switch to requiring RubyGems 1.8.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/46"&gt;Reduce git noise for contributors.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/44"&gt;Add Ruby 2.0 to Travis test list.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/bundler-audit/pull/41"&gt;Whitespace cleanup.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Epic Tower Defense</title><link>http://MrJoy.com/games/epic-tower-defense.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/games/epic-tower-defense.html</guid><description>&lt;p&gt;Based on &lt;a href="http://MrJoy.com/games/when-orcs-attack.html"&gt;When Orcs Attack&lt;/a&gt;, Epic Tower Defense
was a 3D tower defense game aimed at the browser-based gaming market. In
addition to everything When Orcs Attack offered, it was tailored to fit a 5MiB
transfer size limit, and featured a much simplified tutorial.&lt;/p&gt;
&lt;p&gt;Epic Tower Defense was followed by
&lt;a href="http://MrJoy.com/games/hordes-of-orcs.html"&gt;Hordes of Orcs&lt;/a&gt;, a much refined version published
by Freeverse and &lt;a href="http://MrJoy.com/games/hordes-of-orcs-2.html"&gt;Hordes of Orcs 2&lt;/a&gt;, also
published by Freeverse and featuring new game elements, significant graphical
improvements and a new UI.&lt;/p&gt;</description></item><item><title>frisky</title><link>http://MrJoy.com/code/frisky.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/frisky.html</guid><description>&lt;p&gt;A Ruby implementation of an SSDP (UPnP) client.&lt;/p&gt;
&lt;p&gt;Originally forked from &lt;a href="https://github.com/turboladen/playful"&gt;playful&lt;/a&gt;, this gem reduces the scope to just being an SSDP &lt;em&gt;client&lt;/em&gt;, reducing dependencies considerably and making it easier to declare this stable and ready to use.&lt;/p&gt;</description></item><item><title>Harmonic Convergence</title><link>http://MrJoy.com/games/harmonic-convergence.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/games/harmonic-convergence.html</guid><description>&lt;p&gt;Launched on 2008-04-15, Harmonic Convergence was MrJoy&amp;rsquo;s second franchise.
Inspired by &lt;a href="http://store.steampowered.com/app/11900/"&gt;Lumines&lt;/a&gt;, it featured 10
unique skins each featuring lush visuals and a distinctive soundtrack that
responded to how you played the game.&lt;/p&gt;
&lt;p&gt;We actually developed 16 skins for it with over an hour of music in total, but
6 were cut for the final release.&lt;/p&gt;



&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/01.jpg" rel="shadowbox" title="01.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/01.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/02.jpg" rel="shadowbox" title="02.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/02.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/03.jpg" rel="shadowbox" title="03.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/03.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/04.jpg" rel="shadowbox" title="04.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/04.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/05.jpg" rel="shadowbox" title="05.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/05.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/06.jpg" rel="shadowbox" title="06.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/06.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/07.jpg" rel="shadowbox" title="07.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/07.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/08.jpg" rel="shadowbox" title="08.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/08.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/09.jpg" rel="shadowbox" title="09.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/09.jpg" /&gt;&lt;/a&gt;

&lt;a href="http://MrJoy.com/images/galleries/harmonic_convergence/10.jpg" rel="shadowbox" title="10.jpg"&gt;&lt;img src="http://MrJoy.com/images/galleries/harmonic_convergence/thumbs/10.jpg" /&gt;&lt;/a&gt;


&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;table&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;Mac&lt;/th&gt;
 &lt;th&gt;Windows&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;CPU&lt;/th&gt;
 &lt;td&gt;1.0 Ghz&lt;/td&gt;
 &lt;td&gt;1.0 Ghz&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;RAM&lt;/th&gt;
 &lt;td&gt;512 MiB&lt;/td&gt;
 &lt;td&gt;512 MiB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;Disk&lt;/th&gt;
 &lt;td&gt;90 MiB&lt;/td&gt;
 &lt;td&gt;55 MiB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;GPU&lt;/th&gt;
 &lt;td&gt;Intel GMA950&lt;/td&gt;
 &lt;td&gt;DirectX 7 graphics card w/ 32MB VRAM&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;OS&lt;/th&gt;
 &lt;td&gt;10.3.9&lt;/td&gt;
 &lt;td&gt;Windows XP SP2&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</description></item><item><title>Hordes of Orcs</title><link>http://MrJoy.com/games/hordes-of-orcs.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/games/hordes-of-orcs.html</guid><description>&lt;p&gt;Based on &lt;a href="http://MrJoy.com/games/when-orcs-attack.html"&gt;When Orcs Attack&lt;/a&gt;, Hordes of Orcs was
a 3D tower defense game aimed at the Windows and Mac download market. On top
of everything When Orcs Attack offered, it featured a polished user interface,
improved graphics, the &amp;ldquo;Gem Drop&amp;rdquo; game mode &amp;ndash; a CTF variant in which gems fall
from the sky to random board positions, and an orc needed only to carry a
single one across the threshold to win &amp;ndash; and a slew of new maps.&lt;/p&gt;</description></item><item><title>Hordes of Orcs 2</title><link>http://MrJoy.com/games/hordes-of-orcs-2.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/games/hordes-of-orcs-2.html</guid><description>&lt;p&gt;Building on the success of &lt;a href="http://MrJoy.com/games/hordes-of-orcs.html"&gt;Hordes of Orcs&lt;/a&gt;, Hordes
of Orcs 2 was a 3D tower defense game aimed at the Windows and Mac download
market and launched on the then-new Mac App Store. On top of everything Hordes
of Orcs offered, it featured a completely new user interface, major graphical
improvements, the new &amp;ldquo;Railgun&amp;rdquo; tower, the new &amp;ldquo;Skeleton&amp;rdquo; enemy type, new game
modes and new maps.&lt;/p&gt;
&lt;h2 id="mentions"&gt;Mentions&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.ign.com/articles/2010/10/05/freeverse-releases-hordes-of-orcs-2-for-mac-os-x-and-windows"&gt;Freeverse Releases Hordes of Orcs 2 for Mac OS X and Windows (IGN; press release)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.ign.com/articles/2011/01/20/freeverse-announces-hordes-of-orcs-2-for-mac-os-x-now-available-on-the-mac-app-store"&gt;Freeverse Announces Hordes of Orcs 2 for Mac OS X Now Available on the Mac App Store (IGN; press release)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://macintoshgarden.org/games/hordes-of-orcs-2"&gt;Hordes of Orcs 2 on MacintoshGarden&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.macintoshrepository.org/32212-hordes-of-orcs-2"&gt;Hordes of Orcs 2 on MacintoshRepository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://games.softpedia.com/get/Games-Demo/Hordes-of-Orcs-2.shtml"&gt;Softpedia review&lt;/a&gt; (Aside: Not sure what he&amp;rsquo;s talking about with mods&amp;hellip; Also: Fair.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;table&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;Mac&lt;/th&gt;
 &lt;th&gt;Windows&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;CPU&lt;/th&gt;
 &lt;td&gt;1.83 Ghz&lt;/td&gt;
 &lt;td&gt;1.5 Ghz&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;RAM&lt;/th&gt;
 &lt;td&gt;384 MiB&lt;/td&gt;
 &lt;td&gt;512 MiB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;Disk&lt;/th&gt;
 &lt;td&gt;80 MiB&lt;/td&gt;
 &lt;td&gt;75 MiB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;GPU&lt;/th&gt;
 &lt;td&gt;Intel GMA950&lt;/td&gt;
 &lt;td&gt;DirectX 7 graphics card w/ 32MB VRAM&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;th&gt;Version&lt;/th&gt;
 &lt;td&gt;10.3.0 and above. &lt;br /&gt;&lt;span class="meta"&gt;(Not compatible with 10.8.0 and above!)&lt;/span&gt;&lt;/td&gt;
 &lt;td&gt;Windows XP SP2 and above. &lt;br /&gt;&lt;span class="meta"&gt;(Not compatible with Windows 7 and above!)&lt;br /&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</description></item><item><title>lita-ext</title><link>http://MrJoy.com/code/lita-ext.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/lita-ext.html</guid><description>&lt;p&gt;Extensions to the &lt;a href="https://www.lita.io"&gt;Lita&lt;/a&gt; chat-ops server to make adding custom functionality easier.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Lita::Ext&lt;/code&gt; adds a number of extensions to Lita to make it more Rails like. It adds the concept of multiple environments, Rails like initializers, and provides structure for your Lita handlers.&lt;/p&gt;
&lt;h1 id="my-fork"&gt;My Fork&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Migrate from Lita 4.2 to 4.3+, including removing duplicative / conflicting functionality.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Octopress</title><link>http://MrJoy.com/code/contributions/octopress.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/contributions/octopress.html</guid><description>&lt;p&gt;Octopress is a &lt;a href="https://github.com/jekyll/jekyll"&gt;Jekyll&lt;/a&gt;-based blogging system aimed at the particular needs of programmers.&lt;/p&gt;
&lt;h2 id="changes-accepted-upstream"&gt;Changes Accepted &lt;a href="https://github.com/imathis/octopress"&gt;Upstream&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Please note that most of these were on the now-abandoned 2.1 / 2.5 branches!&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1274"&gt;Fix a few items turned up by Rubocop.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1273"&gt;Add Rubocop and a whitespace cleaner.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1272"&gt;Enhance test suite to be more robust and less verbose.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1271"&gt;Add coverage analysis.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1266"&gt;Plugin installer fails when a plugin doesn&amp;rsquo;t have every directory type.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1265"&gt;Fix broken file references that were making the gem mode unusable.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1205"&gt;Make RSync deployments safer.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1204"&gt;Update clean/clobber tasks.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1203"&gt;Miscellaneous cruft removal.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1202"&gt;Whitespace cleanup.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1200"&gt;Fix a bad merge.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1199"&gt;Namespace Disqus config vars.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1176"&gt;Updating dependencies.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1174"&gt;Make Octopress only load its configs once per process.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1081"&gt;Various RSync deployment fixes.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1079"&gt;Update copyright in license to 2013.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1066"&gt;Make it possible to disable the comments section entirely without having to muck with theme files.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1064"&gt;Make FB JS load synchronously so it doesn&amp;rsquo;t block page rendering.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1060"&gt;Be more precise about what we ignore to avoid accidentally ignoring things.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1059"&gt;Compass rigor.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1058"&gt;Grand whitespace cleanup.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1056"&gt;Removal of apparently unreferenced, dangling method.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1055"&gt;Allow .md for markdown files.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1051"&gt;Bring over a couple little things from master&amp;hellip;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1050"&gt;Bump Rack version to leverage security fixes.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1048"&gt;Simplifying clean task.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1047"&gt;Remove redundant require statement from Rakefile.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1046"&gt;Remove superfluous / broken Rake task&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1043"&gt;Ignore all generated JS bundles, preview-mode flag, generated _config.yml, and most editor temp files.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1042"&gt;Fix static reference to instance method in Compass&amp;rsquo; config.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1041"&gt;Remove cruft from Gemfile.lock since rspec is no longer specified in the Gemfile.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/imathis/octopress/pull/1037"&gt;Add &amp;lsquo;clobber&amp;rsquo; task for purging generated files.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>sparkle_motion</title><link>http://MrJoy.com/code/sparkle_motion.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/sparkle_motion.html</guid><description>&lt;p&gt;Generative event lighting in Ruby with Philips Hue and Novation LaunchPad.&lt;/p&gt;
&lt;p&gt;This began its life as a system I used to make a nifty lighting system for my wedding reception.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s designed to use multiple Philips Hue Bridges, with about 6-7 lights per bridge in the main &amp;ldquo;simulation&amp;rdquo;, and physically arranged in a line &amp;ndash; with a handful of other bulbs for the dance floor, and accent lighting.&lt;/p&gt;
&lt;p&gt;The simulation provides nodes like Perlin noise, sine-wave, and various transformations.&lt;/p&gt;</description></item><item><title>SSSS</title><link>http://MrJoy.com/code/ssss.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/ssss.html</guid><description>&lt;p&gt;SSSS is a slightly tweaked version of &lt;a href="http://point-at-infinity.org/ssss/index.html"&gt;B. Poettering&amp;rsquo;s implementation&lt;/a&gt; of
&lt;a href="https://en.wikipedia.org/wiki/Shamir's_Secret_Sharing"&gt;Shamir&amp;rsquo;s Secret Sharing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;SSS is a mechanism by which &lt;em&gt;N&lt;/em&gt; people may each have a piece of of information,
such that when any &lt;em&gt;M&lt;/em&gt; people come together the pieces can be used to reproduce
a secret &amp;ndash; but if only &lt;em&gt;M-1&lt;/em&gt; pieces are brought together, you have zero bits
of the secret.&lt;/p&gt;
&lt;p&gt;My fork brings more consistent use of &lt;code&gt;stdout&lt;/code&gt;/&lt;code&gt;stderr&lt;/code&gt; (allowing for
automation of the programs), the ability to make a failure to &lt;code&gt;memlock&lt;/code&gt; a fatal
error, and simplified build/install steps.&lt;/p&gt;</description></item><item><title>surface_master</title><link>http://MrJoy.com/code/surface_master.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/surface_master.html</guid><description>&lt;p&gt;A gem for accessing various MIDI controllers, including the Novation Launchpad, and Numark Orbit programmatically and easily.&lt;/p&gt;
&lt;p&gt;This was originally forked from &lt;a href="https://github.com/thomasjachmann/launchpad"&gt;launchpad&lt;/a&gt; but has diverged considerably, including a change of purpose:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Abandon support for Novation Launchpad Mk 1.&lt;/li&gt;
&lt;li&gt;Add support for Novation Launchpad Mk 2.&lt;/li&gt;
&lt;li&gt;Add support for Numark Orbit.&lt;/li&gt;
&lt;li&gt;Improve allocation efficiency to reduce pressure on garbage collector.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Over time I will be generalizing this to interact with arbitrary control surfaces.&lt;/p&gt;</description></item><item><title>UnityColorBlindness</title><link>http://MrJoy.com/code/unitycolorblindness.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/unitycolorblindness.html</guid><description>&lt;p&gt;UnityColorBlindness is a set of tools to let developers play their game as it
would be seen by an individual with atypical color vision (&amp;ldquo;color blindness&amp;rdquo;).&lt;/p&gt;
&lt;p&gt;It can simulate all the major forms of color blindness, and even applies to
UnityGUI interfaces, which are not normally subject to image effects.&lt;/p&gt;
&lt;p&gt;A Pro license of Unity is required.&lt;/p&gt;</description></item><item><title>UnityGUIExtensions</title><link>http://MrJoy.com/code/unityguiextensions.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/unityguiextensions.html</guid><description>&lt;p&gt;UnityGUIExtensions is a set of UnityGUI widgets. It provides extended widgets
for both game-mode and editor-mode:&lt;/p&gt;
&lt;h2 id="game-mode"&gt;Game Mode&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Auto-Select Text Widget.&lt;/em&gt; This is a text field widget that auto-selects
existing contents when it receives focus.&lt;/li&gt;
&lt;li&gt;Various helpers that provide &lt;code&gt;GUIStyle&lt;/code&gt; instances with specific properties
set, such as fixed-sized (w/ or w/out stretching), clipped, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="editor-mode"&gt;Editor Mode&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;An editor-mode equivalent of the &lt;em&gt;Auto-Select Text Widget&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Horizontal divider-pane with draggable resizing.&lt;/li&gt;
&lt;li&gt;Vertical divider-pane with draggable resizing.&lt;/li&gt;
&lt;li&gt;Toolbar.&lt;/li&gt;
&lt;li&gt;Helper for determining whether the Pro skin is in use, and whether the user
has changed between Pro/Normal skins.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>UnityREPL</title><link>http://MrJoy.com/code/unityrepl.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/unityrepl.html</guid><description>&lt;p&gt;UnityREPL is a &lt;a href="https://en.wikipedia.org/wiki/Read_Eval_Print_Loop"&gt;&amp;ldquo;Read, Eval, Print, Loop&amp;rdquo;&lt;/a&gt;
tool for &lt;a href="https://Unity3D.com"&gt;Unity3D&lt;/a&gt;, based on &lt;a href="http://www.mono-project.com/CsharpRepl/"&gt;Miguel&amp;rsquo;s CSharpRepl&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In short, it gives you a window that lets you type in and execute C# code on
the fly.&lt;/p&gt;
&lt;p&gt;Grab the .unitypackage &lt;a href="http://downloads.mrjoy.com/unityrepl/UnityREPL_2.0.1.unitypackage"&gt;here&lt;/a&gt;,
or see the readme in the source repo for instructions on installing it via git.&lt;/p&gt;
&lt;h2 id="using-it-as-a-calculator"&gt;Using It As a Calculator&lt;/h2&gt;
&lt;p&gt;UnityREPL can be used as an ad-hoc calculator &amp;ndash; with variables!&lt;/p&gt;
&lt;p&gt;&lt;video width="722" height="412" poster="/assets/media/unityrepl/UnityREPL_Calculator.jpg" controls&gt;&lt;source src="http://MrJoy.com/assets/media/unityrepl/UnityREPL_Calculator.mp4" type="video/mp4"&gt;&lt;/video&gt;&lt;/p&gt;
&lt;h2 id="the-code-editor"&gt;The Code Editor&lt;/h2&gt;
&lt;p&gt;The code editor supports line and block indent/unindent via tab and shift-tab.&lt;/p&gt;</description></item><item><title>UnitySVG</title><link>http://MrJoy.com/code/unitysvg.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/unitysvg.html</guid><description>&lt;p&gt;UnitySVG is a library for reading SVG files and producing &lt;code&gt;Texture2D&lt;/code&gt; objects from them at runtime. The intent is to allow some of one&amp;rsquo;s art assets to be reduced considerably in terms of the net time needed before the user can begin playing the game.&lt;/p&gt;
&lt;h2 id="compatibility"&gt;Compatibility&lt;/h2&gt;
&lt;p&gt;A very limited subset of SVG is supported, specifically excluding:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Animation&lt;/li&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;li&gt;Fonts&lt;/li&gt;
&lt;li&gt;ICC color profiles&lt;/li&gt;
&lt;li&gt;Bindings&lt;/li&gt;
&lt;li&gt;Compound documents&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;&lt;code&gt;foreignObject&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essentially, only things involved in rendering static images are supported, excluding features related to clarity of the XML, &amp;ldquo;reuse&amp;rdquo;, or whatnot. The principle workflow I had envisioned for this centered around (semi-)auto-generated conversions from raster to vector format, so some of the more high-level features of SVG were simply not relevant.&lt;/p&gt;</description></item><item><title>UnityTest</title><link>http://MrJoy.com/code/unitytest.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/code/unitytest.html</guid><description>&lt;p&gt;UnityTest is an xUnit-style unit-testing framework for Unity3D. See the
&lt;a href="http://MrJoy.com/2009/07/04/unit-testing-in-unity/"&gt;blog post&lt;/a&gt; about it for more details.&lt;/p&gt;
&lt;p&gt;Grab the .unitypackage &lt;a href="http://downloads.mrjoy.com/unitytest/UnityTest_20090704.unitypackage"&gt;here&lt;/a&gt;,
or see the readme in the source repo for instructions on installing it via git.&lt;/p&gt;
&lt;p&gt;Screenshots of the testrunner UI as seen in the editor:&lt;/p&gt;
&lt;img src="http://MrJoy.com/images/unitytest/UnityTest1.png"&gt;
&lt;img src="http://MrJoy.com/images/unitytest/UnityTest2.png"&gt;
&lt;img src="http://MrJoy.com/images/unitytest/UnityTest3.png"&gt;</description></item><item><title>When Orcs Attack</title><link>http://MrJoy.com/games/when-orcs-attack.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://MrJoy.com/games/when-orcs-attack.html</guid><description>&lt;p&gt;A fast-paced 3D tower defense game aimed at the Mac and Windows download
market, and published by MrJoy Inc. When Orcs Attack brought several RTS
mechanics to a more casual audience including pathfinding and spellcasting. It
offered a variety of interesting game modes, including the more traditional &amp;ndash;
such as open maze, fixed maze, and capture-the-flag &amp;ndash; and more novel ones &amp;ndash;
such as &amp;lsquo;Pachinko&amp;rsquo; in which orcs would follow one of dozens of possible
randomized paths.&lt;/p&gt;</description></item></channel></rss>