<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
 xmlns:atom="http://www.w3.org/2005/Atom"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:media="http://search.yahoo.com/mrss/">
<channel>
    <title>zachstronaut: newest posts</title>
    
    <link>http://www.zachstronaut.com/</link>
    <atom:link href="http://www.zachstronaut.com/posts/rss" rel="self" type="application/rss+xml" />
    
    <language>en-us</language>
    
    <pubDate>Sun, 29 Jan 2012 15:57:05 -0800</pubDate>
    
    <description>Newest posts on zachstronaut.</description>
    
    <item>
    <title><![CDATA[Protoboros: Global Game Jam 2012 Entry]]></title>
    <link>http://www.zachstronaut.com/posts/2012/01/29/global-game-jam-2012.html</link>
    <guid>http://www.zachstronaut.com/posts/2012/01/29/global-game-jam-2012.html</guid>
    <pubDate>Sun, 29 Jan 2012 15:57:05 -0800</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2012/01/29/global-game-jam-2012.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p><a href="http://www.zachstronaut.com/projects/ggj2012/game/game.html"><img src="/posts/images/protoboros.png" width="600" height="435" alt="Protoboros Screenshot." /></a></p>
                
        <p><a href="http://www.zachstronaut.com/posts/2012/01/29/global-game-jam-2012.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Free/Open SOPA Blackout Protest Template]]></title>
    <link>http://www.zachstronaut.com/posts/2012/01/17/stop-sopa-protest-template.html</link>
    <guid>http://www.zachstronaut.com/posts/2012/01/17/stop-sopa-protest-template.html</guid>
    <pubDate>Thu, 19 Jan 2012 08:13:22 -0800</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2012/01/17/stop-sopa-protest-template.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p style="position: relative;">
<a href="http://www.zachstronaut.com/lab/text-shadow-box/stop-sopa.html"><img src="/posts/images/stop-sopa-screenshot.png" alt="Screenshot of template with spotlight effect." /></a>
<a href="https://github.com/zachstronaut/stop-sopa"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://d3nwyuy0nl342s.cloudfront.net/img/c641758e06304bc53ae7f633269018169e7e5851/687474703a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f77686974655f6666666666662e706e67" width="149" height="149" alt="Fork me on GitHub"></a>
</p>

<p>SOPA and PIPA are terrible bills in the US Congress, and <a href="http://sopastrike.com/">on January 18 the web <del>is going</del> <ins>went</ins> dark to protest.</a></p>

<p>Copyright theft is already illegal.  Why is Congress wasting our time with this?  If passed into law, these bills will lead to censorship without due process of law.  They protect the rights of multi-billion-dollar corporations, but they don't protect the rights of the average web publisher.  <a href="http://americancensorship.org/">Join the fight!</a></p>

<h3>Why Did I Make This Template?</h3>

<p>When I heard about how the web was going dark (including sites like Reddit and Wikipedia!), I felt inspired to make an <a href="http://www.zachstronaut.com/lab/text-shadow-box/stop-sopa.html">interactive blackout template</a> that played off the theme of "going dark."  It was a way for me to channel my frustration with these bills creatively.  Some artists paint.  I guess I write code.  <em>(I actually repurposed <a href="http://www.zachstronaut.com/posts/2009/06/22/css-text-shadow-lighting-demo.html">one of my old demos</a> for this.)</em></p>

<p>I made the code public domain and <a href="https://github.com/zachstronaut/stop-sopa">put it up on Github</a> so people could fork it and improve it.  You are welcome to use it, and I require no attribution.  <em>[Technical note: Check out this post about <a href="https://plus.google.com/u/0/115984868678744352358/posts/Gas8vjZ5fmB">503 HTTP headers</a>.]</em></p>

<h3>And Then What Happened? (Going Viral)</h3>

<p>I submitted my template to BoingBoing in the middle of the night on Sat, Jan 14 right after putting it together, and Corey Doctorow wrote me back with some good ideas for adding more information to the design so that people would be better informed about the issue.  He <a href="http://boingboing.net/2012/01/15/freeopen-this-site-has-gone.html">posted my template</a> on Sunday.  It then got picked up by <a href="http://news.ycombinator.com/item?id=3468386">YCombinator News</a>, showing up in their Twitter feed and front page.  It started to pick up some buzz on Twitter.  On Tuesday, I talked on the phone with a really kind <a href="http://www.fastcocreate.com/1679399/join-in-the-sopa-blackout-courtesy-zachary-johnson">writer for Fast Company</a>.  <a href="http://mashable.com/2012/01/17/stop-sopa-code-go-dark/">Mashable</a> wrote about it, too.</p>

<p>I thought the response to my template was totally crazy and unbelievable at this point.  I had over 50,000 people come to view it from Sunday to Tuesday.  <em>And there is nothing quite like that many people coming to see your downloadable template to make you second guess your code!  Sorry if you had any problems!</em>  I thought there would be quite a few sites using my template during the black out on Wednesday, but <em>I really had no idea</em> just how much my template would resonate with people...</p>

<h3>What Has Been the Impact? (Holy Crap!)</h3>

<p>At midnight Tuesday night/Wednesday morning I suddenly realized...</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2012/01/17/stop-sopa-protest-template.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[iOS 5 Safari Bugs: Trio of Test Cases]]></title>
    <link>http://www.zachstronaut.com/posts/2011/12/04/ios5-safari-fixed-position-bugs.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/12/04/ios5-safari-fixed-position-bugs.html</guid>
    <pubDate>Sun, 04 Dec 2011 14:26:27 -0800</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/12/04/ios5-safari-fixed-position-bugs.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I've run into two bugs and a third bit of tricky behavior with Mobile Safari on iOS 5.  I thought I'd share what I found in order to hopefully save somebody from pulling out their hair.</p>

<h3>1. Bug With CSS Translated Form Fields</h3>

<p>In this bug, giving keyboard focus (such as via JavaScript) to a form input that is translated off screen with CSS transforms <a href="http://www.zachstronaut.com/lab/ios5-bugs/translate-field.html">causes the page content to shift position</a> and the text input caret to render in the wrong place.</p>

<p>Check out my <a href="http://www.zachstronaut.com/lab/ios5-bugs/translate-field.html">test case</a>.</p>

<h3>2. Inconvenient Behavior with Fixed Positioned Header Bars and Form Fields</h3>

<p>Many of you may begin using iOS 5's new CSS <code>position: fixed;</code> support to add fixed nav or header bars to the top of the screen.  If you have any form fields in your content that are given fixed positioning (such as a search field in your header bar), you must anticipate that <a href="http://www.zachstronaut.com/lab/ios5-bugs/fixed-positioned-field.html">your fixed positioned content will come unglued</a> when those form fields are given keyboard focus.</p>

<p>See <a href="http://www.zachstronaut.com/lab/ios5-bugs/fixed-positioned-field.html">my example</a>, including a suggested design fix.</p>

<h3>3. Fixed Position Content May Become Un-Clickable or Invisible</h3>

<p>This is a particularly pernicious bug.  If you add content to your mobile web site / app via AJAX, or reveal hidden content to the user, and this new content scrolls off screen -- if a user reloads your site while scrolled to the bottom of this content, it <a href="http://www.zachstronaut.com/lab/ios5-bugs/unclickabled-fixed-content.html">may make your fixed positioned content (such as a top nav bar) either disappear or become temporarily un-clickable</a> upon reload.</p>

<p>Read my <a href="http://www.zachstronaut.com/lab/ios5-bugs/unclickabled-fixed-content.html">test case</a> for more information, and for a bug fix.</p>

<p>That's it for now.  I hope this is helpful to you.</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/12/04/ios5-safari-fixed-position-bugs.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Legend of Equip &gt; Pants]]></title>
    <link>http://www.zachstronaut.com/posts/2011/11/01/videogame-legend-equip-pants.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/11/01/videogame-legend-equip-pants.html</guid>
    <pubDate>Tue, 01 Nov 2011 21:07:44 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/11/01/videogame-legend-equip-pants.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I'm very happy to announce my new short adventure/RPG game, <a href="http://www.zachstronaut.com/projects/pants2/game.html">The Legend of Equip &gt; Pants: Chapter 1</a>. It's got a spooky vibe. Hopefully you follow me on <a href="http://twitter.com/zacharyjohnson" target="_twitter">Twitter</a> and you caught news of my game release on Halloween! I made my deadline goal. I didn't get every last detail in, but I did finish! Hooray!</p>

<p class="center-text"><a href="http://www.zachstronaut.com/projects/pants2/game.html"><img class="centered" src="/posts/pants/pants2-screenshot.png" alt="Game screenshot." /></a></p>

<p>This game is featuring music created by <a href="http://twitter.com/chriswinter92" target="_twitter">Christopher Winter</a>.  He really deserves a lot of major kudos, because he put together music for me in less than a day! (Totally my fault for ignoring music for my game until the last minute!)  The game would not be the same without his efforts.  Thank you, Chris! Thank you thank you thank you!</p>

<p>Well, this is it for now.  I'm interested in doing a proper postmortem, because I learned a lot about my own personal game making process I'd like to share.  I also have some thoughts on Akihabara vs. Impact.js.  However, this will all have to wait for another blog post on another night, because I'm tired!</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/11/01/videogame-legend-equip-pants.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Pre-Halloween Spooky Web Demo]]></title>
    <link>http://www.zachstronaut.com/posts/2011/10/27/bleeding-text-canvas-css3.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/10/27/bleeding-text-canvas-css3.html</guid>
    <pubDate>Thu, 27 Oct 2011 08:14:30 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/10/27/bleeding-text-canvas-css3.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>Boo! Halloween is my favorite holiday, and it is only just around the corner.  Here's a spooky web demo I made earlier this month, and I wanted to share it with you.  <a href="http://www.zachstronaut.com/lab/b1000d.html#Happy%20Halloween!">Write your own scary message in <span style="color: #b1000d;">#b1000d!</span></a></p>

<p><a href="http://www.zachstronaut.com/lab/b1000d.html#Happy%20Halloween!"><img src="http://www.zachstronaut.com/lab/screenshots/b1000d-screenshot.png" width="600" alt="CSS3 and Canvas Bleeding Text Screenshot." /></a></p>

<p>The demo uses HTML5 Canvas to draw the falling streaks of <span style="color: #b1000d;">#b1000d</span>.  In Safari/Chrome, I'm also able to fill the inside of the letters themselves with a shower of <span style="color: #b1000d;">#b1000d</span>. To accomplish this I use an off-screen canvas and the special CSS3 rule <code>background: -webkit-canvas(mycanvas);</code> to set the background behind the text to the canvas animation I'm doing in JavaScript.  Then, I use another CSS3 rule <code>-webkit-background-clip: text;</code> to clip the canvas to only show the parts of the canvas that are underneath the text. Finally I make the text see-through with <code>color: transparent;</code> so we can see that clipped background.  Go ahead and view source of the demo if you want to see more.</p>

<p>Before you go, I have another announcement, too.  I'm working hard trying to complete <a href="http://dribbble.com/zachstronaut/buckets/22421-New-Equip-Pants-Games">my new game</a> by Halloween. (I'm both making a game and keeping up with my client work, so wish me luck! heh) It will be a new chapter in the world of Equip &gt; Pants.  I hope that you'll like it.</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/10/27/bleeding-text-canvas-css3.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Curious First Look at Socket.IO and node.js]]></title>
    <link>http://www.zachstronaut.com/posts/2011/08/17/node-socket-io-curious.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/08/17/node-socket-io-curious.html</guid>
    <pubDate>Wed, 17 Aug 2011 13:10:57 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/08/17/node-socket-io-curious.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>Being fairly new to <a href="http://nodejs.org/" target="_node">node.js</a>, and even newer to the use of <a href="http://socket.io/" target="_socket">Socket.IO</a>, I had a very interesting morning exploring some of the behaviors of Socket.IO.  I thought I'd share the things that raised my eyebrows.  There were some good lessons hidden in a basic Hello World example.  There was also a <em>really</em> interesting question posed by the feature of Socket.IO that allows for a callback to be executed as an acknowledgement that a sent socket message was received.</p>

<p>I don't want to spend a ton of time on <a href="http://howtonode.org/" target="_howtonode">getting started with node.js</a> or <a href="http://socket.io/#how-to-use" target="_howtosock">learning Socket.IO</a>.  But you should know that I'm just talking about a default, easy to replicate install of node and io.  All I basically did is <code>brew install node</code>, <code>curl http://npmjs.org/install.sh | sh</code>, <code>npm install socket.io</code> and I'm off writing realtime code.</p>

<h3>Hello World Has Surprise Lessons</h3>

<p>The first thing I noticed is that it is a bit surprising &mdash; even alarming &mdash; how little you need to get a hello world example working.  Let me show you the example and then explain the alarming part.</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/08/17/node-socket-io-curious.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Announcing Firebomb]]></title>
    <link>http://www.zachstronaut.com/posts/2011/07/06/firebomb-app-plugin.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/07/06/firebomb-app-plugin.html</guid>
    <pubDate>Wed, 06 Jul 2011 14:40:37 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/07/06/firebomb-app-plugin.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>My project <a href="http://getfirebomb.com/" target="_firebomb">Firebomb</a> is a Firefox plugin, a browser bookmarklet, and an iOS App.  <strong>Firebomb lets you pretend to blow stuff up with 8-bit explosions.</strong>  I'm sure you are probably familiar with Firebug, the ubiquitous <a href="http://getfirebug.com/" target="_firebug">debugging plugin</a> for Firefox.</p>

<blockquote>
    <p>"If you can't fix a bug with Firebug, blow it up with Firebomb!"</p>
</blockquote>

<p>Fire<em>bomb</em> started out as a tongue-in-cheek parody of Firebug that I originally did for the <a href="http://10k.aneventapart.com/Entry/332" target="_10K">10K Apart Contest</a> in 2010.  Quality stress relief!  Firebomb has since evolved from the original gag and developed a life of its own.</p>

<h3>Get Firebomb for Firefox and Other Browsers</h3>

<div class="twoThirds"><a href="http://getfirebomb.com/" target="_firebomb"><img width="405" height="144" src="/projects/firebomb/firebomb-logo.gif" alt="Get Firebomb." /></a></div>

<div class="third"><a href="http://getfirebomb.com/" target="_firebomb"><img class="centered noborder" width="153" height="168" src="/projects/firebomb/plugin-screenshot.gif" alt="Screenshot of Firebomb Firefox plugin." /></a></div>

<p class="clearFloats">My Firebomb plugin for Firefox 4 and 5 was developed with the new <a href="https://addons.mozilla.org/en-US/developers/" target="_mozilla">Mozilla Add-on SDK</a> that hit its 1.0 release in June 2011.  Originally called JetPack, the Add-on SDK allowed me to build out a true plugin for Firefox using a smart JavaScript API.  This was a really quick and fairly painless process.  I definitely recommend the SDK for web developers looking to do a Firefox plugin.  I also made Firebomb Lite as a browser bookmarklet so you could have <em>the joy of firebombing Internet Explorer... I know you want to!</em></p>

<p><strong>Firebomb for Firefox and the Firebomb Lite bookmarklet</strong> are both free and <a href="http://getfirebomb.com/download.html" target="_firebomb">available for download</a> today!  Use them whenever you need <strong>more firepower than Firebug alone!</strong></p>

<h3>Buy Firebomb AR for iOS - <em>Blow Stuff Up in Augmented Reality</em></h3>

<div class="twoThirds">    
    <p>I made <a href="http://itunes.apple.com/us/app/firebomb-ar/id445230066?mt=8&ls=1" target="_appstore">Firebomb AR for iOS</a> because I also wanted to bring the fun of 8-bit explosions (including gratuitous chippy <em>kaboom</em> sound effects) to the world outside of web browsers.  Just like <em>The Kids in the Hall</em> used to pretend to crush heads between their fingers, you can launch the Firebomb AR App, aim your camera at a target, and pretend to blow it up by tapping the screen.</p>
        
    <p>Firebomb AR is great for taking care of crashing computers, alarm clocks, piles of work papers, your boss&hellip;  It's old school stress relief. Available in the App Store today for 99 cents! <em>(Not for use on lolcats.  Aim away from face.  Batteries included.)</em></p>
    
    <p class="center-text"><a href="http://itunes.apple.com/us/app/firebomb-ar/id445230066?mt=8&ls=1"><img class="centered noborder" src="/projects/firebomb/app-store.gif" width="134" height="51" alt="Firebomb AR is available in the App Store." /></a></p>
        
    <p><a href="http://itunes.apple.com/us/app/firebomb-ar/id445230066?mt=8&ls=1" target="_appstore">Buy Firebomb AR</a> for yourself, or as a fun gift for the special geeks and kids in your life.  (Big, grown-up kids, too!)  Your purchase will support an independent App farmer who uses 100% organic 1s and 0s, and it will greatly encourage his odd sense of humor.</p>
</div>
<div class="third center-text">
    <div class="carousel">
        <div class="crop">
            <ul id="carousel_images">
                <li><img src="/projects/firebomb/screenshot01.jpg" alt="Screenshot: Camera loading." /></li>
                <li><img src="/projects/firebomb/screenshot02.jpg" alt="Screenshot: AR mode blowing up Blue Screen of Death." /></li>
                <li><img src="/projects/firebomb/screenshot03.jpg" alt="Screenshot: AR mode blowing up alarm clock." /></li>
                <li><img src="/projects/firebomb/screenshot04.jpg" alt="Screenshot: AR mode blowing up Ferarri." /></li>
                <li><img src="/projects/firebomb/screenshot05.jpg" alt="Screenshot: App menu." /></li>
            </ul>
        </div>

        <div id="carousel_target" class="iphone_overlay"></div>
    </div>
</div>

<div class="clearFloats"></div>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/07/06/firebomb-app-plugin.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[CSS3 Poetry: Rain Ripples]]></title>
    <link>http://www.zachstronaut.com/posts/2011/06/28/css3-rain-ripples-poem.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/06/28/css3-rain-ripples-poem.html</guid>
    <pubDate>Tue, 28 Jun 2011 16:48:57 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/06/28/css3-rain-ripples-poem.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p><a href="http://www.zachstronaut.com/lab/ripples/"><img src="/posts/ripples/screenshot.jpg" alt="Rain Ripples CSS Demo." width="600" height="432" /></a></p>

<p>This CSS3 moving poem shows how you can use just a little CSS3 magic to create some <a href="http://www.zachstronaut.com/lab/ripples/">refracting water ripples</a> that run right through a page's HTML content. Raindrops and ripples are created with <code>border-radius</code>, <code>box-shadow</code>, and CSS3 scale transforms -- and they are animated with CSS3 animations! Firefox 5 lets us refract not just an image but actual page DOM content via smart use of <code>-moz-element</code>.  This <a href="http://www.youtube.com/watch?v=oVCO8Ka0jDI" target="_youtube">YouTube video</a> explains it a bit more.</p>

<p>Please click the Like button on the <a href="https://developer.mozilla.org/en-US/demos/detail/rain-ripples">Mozilla Demo Studio</a>! Thanks!</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/06/28/css3-rain-ripples-poem.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[IGDA-TC Presentation on HTML5 Games]]></title>
    <link>http://www.zachstronaut.com/posts/2011/06/10/igdatc-html5-js-games.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/06/10/igdatc-html5-js-games.html</guid>
    <pubDate>Mon, 20 Jun 2011 21:26:54 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/06/10/igdatc-html5-js-games.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I spoke at the Twin Cities, Minnesota chapter of the International Game Developers Association on Wednesday, June 8 about the current state of making games with JavaScript and HTML5.  Here are my slides.</p>

<div class="inset" style="padding-bottom: 24px;">
<div style="width:425px;height:355px;" id="__ss_8272810"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/zachstronaut/ready-to-play-javascript-html5-game-development" title="Ready to Play: JavaScript / HTML5 Game Development">Ready to Play: JavaScript / HTML5 Game Development</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8272810" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/zachstronaut">Zachary Johnson</a> </div> </div>
</div>

<p><strong>Update:</strong> Now with 100% more <a href="http://www.youtube.com/watch?feature=player_embedded&v=WHNz1SrMMBM#at=2685" target="_youtube">video</a>.  I start about 44 minutes in.</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/06/10/igdatc-html5-js-games.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Postmortem: Puzzle Game in 48 Hours]]></title>
    <link>http://www.zachstronaut.com/posts/2011/05/07/puzzle-game-postmortem.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/05/07/puzzle-game-postmortem.html</guid>
    <pubDate>Sat, 07 May 2011 22:44:48 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/05/07/puzzle-game-postmortem.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I recently participated in the <a href="http://www.ludumdare.com/compo/" target="_ld">20th Ludum Dare</a>, a competition to make a brand new game from scratch in 48 hours, going solo!</p>

<p>The theme for the competition was from Zelda and internet Kitten meme fame: "It's dangerous to go alone! Take this." I made an old school, top-down puzzle game for this theme.  After the 48 hour competition ended, I polished my game a bit and also re-submitted to the 72 hour Jam.</p>

<p>You should <a href="http://www.zachstronaut.com/projects/ld20/jam/game.html">play both versions of my game</a>!</p>

<p>I've also <a href="http://www.ludumdare.com/compo/2011/05/07/dangerous-to-go-puzzler-post-mortem/" target="_ld">written a postmortem</a> for the Ludum Dare site, that I invite you to read.</p>

<p><a href="http://www.ludumdare.com/compo/2011/05/07/dangerous-to-go-puzzler-post-mortem/" target="_ld"><img src="/posts/ld20-postmortem/intro-600.png" alt="Screenshot of intro." /></a></p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/05/07/puzzle-game-postmortem.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[HTML5 Game: Commander Clone Training Mission]]></title>
    <link>http://www.zachstronaut.com/posts/2011/04/29/commander-clone-html5-game.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/04/29/commander-clone-html5-game.html</guid>
    <pubDate>Fri, 29 Apr 2011 16:37:08 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/04/29/commander-clone-html5-game.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I've finished a level of my Run N' Gun video game that I have been working on for the <a href="http://experimentalgameplay.com/blog/2011/03/march-april-are-filled-with-cheap-clones/" target="_egp">Experimental Gameplay Project</a> theme: "Cheap Clone."  I have been <a href="http://www.zachstronaut.com/posts/2011/04/20/mario-wide-stance-akihabara-platformer.html">evaluating</a> the <a href="http://www.kesiev.com/akihabara/" target="_aki">Akihabara HTML5 game engine</a> in the process of making this level.</p>

<p>I present to you <a href="http://www.zachstronaut.com/projects/commander-clone/0.2/game.html">"Commander Clone 0.2 - Training Mission"</a> &mdash; you should <a href="http://www.zachstronaut.com/projects/commander-clone/0.2/game.html">play it</a> right now!</p>

<img src="/posts/clone/eyeshot-anim.gif" alt="Eyeshot Blinking." style="margin: 0 24px 24px 0;" />
<img src="/posts/clone/screenshot-post.png" alt="Commander Clone shooting." class="add-bottom-margin" />

<p><strong>If you don't like something about it, please tell me! If you really love something about it, please invite your friends to play.</strong></p>

<p>There are still some bugs, and this training mission level doesn't have a ton of content... but it has been fun to draw the sprites and modify Akihabara.  I also like to think the level has a certain charms. ;)</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/04/29/commander-clone-html5-game.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Sauce Project: "What Ya Doin?" App]]></title>
    <link>http://www.zachstronaut.com/posts/2011/04/29/sauce-what-ya-doin.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/04/29/sauce-what-ya-doin.html</guid>
    <pubDate>Fri, 29 Apr 2011 16:05:38 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/04/29/sauce-what-ya-doin.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>My <a href="http://www.watermelonsauce.com/" target="_sauce">Watermelon Sauce</a> partner <a href="http://paularmstrongdesigns.com/" target="_paul">Paul</a> and I were talking about journaling while working on projects.  We prototyped and then built a Mac app that we think makes it easier to write little notes to yourself about what you are doing during coding sessions.</p>  

<p>It can be really nice to keep a programming log.  Especially at the task level.  I like to have notes about how long things take and what bugs/challenges I encounter along the way.  In fact, that's part of the reason why I created <a href="http://www.zachstronaut.com/posts/2009/05/13/minnedemo-shortjournal.html">ShortJournal</a> (although I've come to use SJ much more as a bucket for code snippets, ideas, and bookmarks).</p>

<p>I think the biggest hurdle I trip on when I get lazy about detailed journaling while coding is the distraction factor.  I don't want to have to switch windows to do it, or even worse, take my hands off the keyboard and mouse to pick up pen and paper. I was chatting with Paul about this problem and about how it might be kind of nice to have something pop up every 30 minutes and ask me what I'm doing, and then just log it with a timestamp to a file.  Super simple.  He was instantly interested.</p>

<h3>First, the Prototype</h3>

<p>Within about 15 minutes I'd figured out how to make a prototype in Apple's Automator tool.  It was simple enough to pop up a single line text input prompt with the question "Whatchya dooooin?" and then log the answer to a time stamped file.  I saved the workflow as an App, and hooked it up to a crontab, and started using it.  I really liked it, and Paul liked the prototype, too.</p>

<p>You can download the Mac App and the Automator Workflow here:</p>

<ul class="download padding">
<li><a href="/posts/whatyadoin/WhatYaDoin.workflow.zip">WhatYaDoin.workflow.zip (64KB Zipped Automator Workflow)</a></li>
<li><a href="/posts/whatyadoin/WhatYaDoin.app.zip">WhatYaDoin.app.zip (225KB Zipped Mac App)</a></li>
</ul>

<p>The Automator workflow writes the log to <code>~/doin.log</code> in your home folder. Here's instructions to get it running every 30 minutes via a crontab:</p>

<pre>
# Run the following command in Terminal

crontab -e

# Add the following line to the file you will be editing

*/30 * * * * open ~/Documents/WhatYaDoin.app

# Note:
# ~/Documents/WhatYaDoin.app is the path to your Automator app
# */30 means every 30 minutes... you could tweak that

# Save and quit the editor, and that's it!
</pre>

<h3>Then, the Open Source Native App Version on GitHub</h3>

<p>Like I said, Paul liked the idea. He suggested it become an open source Watermelon Sauce project, and that sounded like a great idea.  Within just three hours of work he'd built the Native Mac App in Xcode and put <a href="https://github.com/Watermelon-Sauce/WhatYaDoin" target="_git">WhatYaDoin on GitHub</a>. Check it out!  It currently lives in the toolbar and handles popping up every 30 minutes itself.</p>

<p>We've both been using it today, and it is very interesting! Next big question is going to be what to do with all the little journal snippets! I think it could be very useful for blogging or doing estimates.<p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/04/29/sauce-what-ya-doin.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[Video: Why Mario Has a Wide Stance]]></title>
    <link>http://www.zachstronaut.com/posts/2011/04/20/mario-wide-stance-akihabara-platformer.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/04/20/mario-wide-stance-akihabara-platformer.html</guid>
    <pubDate>Wed, 20 Apr 2011 07:45:03 -0700</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/04/20/mario-wide-stance-akihabara-platformer.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>So I've been hacking on the Akihabara HTML5 video game engine.  I'm trying it out while I put together a platformer.  I think I've come to an answer for the question, "Why does Mario have a wide stance?" Being from Minneapolis, MN I've heard my fair share of wide stance jokes (thanks Larry Craig) &hellip; in this video I talk about video game sprites with wide stances and why that is important for platformers.  I also discuss how I applied this new knowledge to some code improvements in Akihabara.</p>

<div class="inset">
<iframe title="YouTube video player" width="600" height="371" src="http://www.youtube.com/embed/oXZy8AHRax4" frameborder="0" allowfullscreen></iframe>
</div>

<p>I'm sorry to have recorded you such a long video, I didn't have time to record a shorter one. ;)</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/04/20/mario-wide-stance-akihabara-platformer.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[&lt;/2010&gt; Much Belated Yearly Recap]]></title>
    <link>http://www.zachstronaut.com/posts/2011/02/06/2010-recap.html</link>
    <guid>http://www.zachstronaut.com/posts/2011/02/06/2010-recap.html</guid>
    <pubDate>Tue, 08 Mar 2011 11:45:54 -0800</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2011/02/06/2010-recap.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>The year 2010 was crazy and busy, but 2011 has started out even crazier and busier!  Already in 2011 I've been to Las Vegas for the Consumer Electronics Show (CES), been out of town for a project at work several times, and also I submitted <a href="http://www.zachstronaut.com/projects/re-infiltration/game.html">my video game Re-Infiltration at Dusk</a> to the Mozilla Labs Game On competition, making it to the <a href="https://gaming.mozillalabs.com/games/finalists" target="_gameon">finalists list</a>.</p>

<p>But better late than never, I'd like to do a review of 2010 while it is still somewhat fresh in memory.  This timeline is mostly for my benefit so that when I look back at 2010 it seems like an actual year of my life went by.  I find it comforting to feel like last January was in fact 12 months ago, and didn't just happen last week.</p>

<p>I got pretty bad about posting to my blog in 2010 because of the chaos.  A lot of my projects ended up going direct to <a href="http://twitter.com/zacharyjohnson" target="_twitter">@zacharyjohnson on Twitter</a>.  So there could be some things below that may be new to you:</p>

<div class="timeline">
    <h3>January</h3>
    <ul>
        <li><p>Launched a custom <a href="http://www.zachstronaut.com/posts/2010/01/17/touch-screen-directory-web-app.html">touch screen building directory</a> for Coffman Union at the U of MN</p></li>
    </ul>
    
    <h3>February</h3>
    <ul>
        <li><p><a href="http://www.zachstronaut.com/lab/rejection/">Created a game concept</a> for the Experimental Gameplay Project theme: Rejection</p></li>
    </ul>
    
    <h3>March</h3>
    <ul>
        <li><p>After 5 years leading a web team at the U of MN, I started a new job as UX Developer for <a href="http://www.worrell.com/" href="_worrell">Worrell</a></p></li>
        <li><p>Created two <a href="http://www.zachstronaut.com/posts/2010/03/28/css3-and-css2-text-effects.html">text effects with CSS</a>: the iPhone lock screen's shine effect and a <a href="http://www.zachstronaut.com/lab/smoke.html">smoke effect</a></p></li>
        <li><p>Posted a <a href="http://www.youtube.com/zachstronautdotcom#p/u/4/EHEeCn_NtF4" href="_youtube">3D perspective iPhone app  experiment</a> to YouTube</p></li>
    </ul>
    
    <h3>April</h3>
    <ul>
        <li><p>Created my own <a href="http://www.zachstronaut.com/posts/2010/04/27/pure-css-map-markers.html">CSS3 ring pulsers and map markers</a></p></li>
        <li><p>Presented the session <a href="http://www.zachstronaut.com/posts/2010/06/05/minnewebcon-2010.html">"Improve User Experience with Informal User Testing"</a> at MinneWebCon</p></li>
        <li><p>Got an iPad, and created a zachstronaut-themed <a href="http://www.zachstronaut.com/lab/z360v3/">multitouch web experiment</a></p></li>
    </ul>
    
    <h3>May</h3>
    <ul>
        <li><p><a href="http://itunes.apple.com/us/app/blocksbox/id373014225?mt=8" target="_itunes">Blocks Box</a>, a simple physics toy for kids aged 2 to 102, approved in iPad app store</p></li>
        <li><p>Took a very lovely trip to San Francisco to see <a href="http://www.paularmstrongdesigns.com" target="_paul">good</a> <a href="http://www.jpmullan.com" target="_jesse">friends</a></p></li>
    </ul>
    
    <h3>June</h3>
    <ul>
        <li><p>Made myself a zachstronaut-themed <a href="http://www.zachstronaut.com/lab/ipad-wallpaper.png">iPad wallpaper</a> and <a href="http://www.zachstronaut.com/lab/iphone4-wallpaper.png">iPhone4 wallpaper</a></p></li>
    </ul>
    
    <h3>July</h3>
    <ul>
        <li><p>Created the JavaScript video game <a href="http://www.zachstronaut.com/posts/2010/07/08/javascript-video-game-infiltration.html">Infiltration at Dusk</a>, featuring music by <a href="http://www.tettix.net" target="_tettix">Tettix</a></p></li>
        <li><p><a href="http://www.minnpost.com/minnov8/2010/07/20/19829/indie-game_developer_offers_internet_game_infiltration_--_and_advocates_open_web_design" taret="_minnpost">MinnPost</a> ran an article about my game</p></li>
        <li><p>Infiltration at Dusk wins <a href="http://www.boingboing.net/2010/07/16/boing-boing-game-dev.html" target="_boingboing">2nd place in Boing Boing's Games Inspired by Music contest</a></p></li>
        <li><p>Exploited Safari 5's features to make an <a href="http://www.zachstronaut.com/posts/2010/07/28/3d-css3-galaxy.html">interactive 3D CSS3 galaxy</a></p></li>
    </ul>
    
    <h3>August</h3>
    <ul>
        <li><p>Created Jackalope for the Node.js Knockout competition with <a href="http://www.paularmstrongdesigns.com" target="_paul">Paul</a>, <a href="http://webandy.com/" target="_andy">Andy</a>, and <a href="http://kadlac.com/" target="_nate">Nate</a></p></li>
        <li><p>Jackalope is one of <a href="http://techcrunch.com/2010/09/01/nodejs-knockout/" target="_techcrunch">TechCrunch's favorite Node.js Knockout apps</a></p></li>
        <li><p>Made <a href="http://getfirebomb.com" target="_firebomb">a Firebug parody called Firebomb</a> with less than 10KB of code for the <a href="http://10k.aneventapart.com/Entry/332" target="_10kapart">10K Apart contest</a></p></li>
        <li><p>Created a new version of my <a href="http://www.zachstronaut.com/posts/2010/09/13/html5-canvas-3d-galaxy.html">3D galaxy using HTML5 canvas</a>, and squeezed it down to <a href="http://10k.aneventapart.com/Entry/311" target="_10kapart">less than 10KB</a></p></li>
    </ul>
    
    <h3>September</h3>
    <ul>
        <li><p>Worked on a film for the Body Computing conference at USC, covered by <a href="http://www.fastcodesign.com/1662382/patient-centered-health-care" target="_fastco">Fast Company</a></p></li>
    </ul>
    
    <h3>October</h3>
    <ul>
        <li><p>Developed full-on <a href="http://www.minecraft.net/" target="_minecraft">Minecraft</a> addiction</p></li>
        <li><p>Visited Sleepy Hollow, NY for my friends' wedding (yes, <em>that</em> Sleepy Hollow)</p></li>
    </ul>
    
    <h3>November</h3>
    <ul>
        <li><p>Used Mobile Safari's <a href="http://www.zachstronaut.com/lab/3d-css3-physics/demo-accelerometer.html">3D CSS3 and new accelerometer access</a> to make an iOS physics web demo</p></li>
        <li><p>Speaker for <a href="http://marcgrabanski.com/" target="_1marc">Marc Grabanski's</a> <a href="http://eveningof.eventbrite.com/" target="_eveningof">Evening of JavaScript</a> series, presenting "Canvas Geek Time"</p></li>
        <li><p>Made a classic <a href="http://www.zachstronaut.com/lab/alife1.html">Artificial Life emergent behavior demo with HTML5 canvas</a></p></li>
        <li><p>IE9 added HTML5 canvas so I created an <a href="http://www.zachstronaut.com/lab/space-smasher.html">asteroid smashing physics demo</a></p></li>
        <li><p>Abused Safari 5 heavily to make <a href="http://www.zachstronaut.com/lab/voxel/voxel.html">random 3D CSS3 voxels</a>, oh and an <a href="http://www.zachstronaut.com/lab/voxel/iceberg.html">iceberg</a>, too</p></li>
    </ul>
    
    <h3>December</h3>
    <ul>
        <li><p>The book <a href="http://iosapps.tumblr.com/" target="_iosbook">The Web Designer's Guide to iOS Apps</a> was released; I was Technical Editor</p></li>
        <li><p>Got snowed in</p></li>
    </ul>
</div>

<p>I'd say 2010 was a really great year for me, but even more so it was a fantastic year for the web.  I <a href="http://www.zachstronaut.com/posts/2010/01/10/2009-year-in-review.html">made the resolution</a> at the beginning of 2010 to spend more time on interactive development and games.  I think I definitely accomplished this, thanks in no small part to the fact that all the major browser players now have a very, very fast canvas implementation.</p>

<p>I also resolved to dig into the mobile web, and I had a ton of fun playing with the continuous stream of new functionality appearing in Mobile Safari on iOS.  But Android has a Webkit-based browser, too.  The new job I started in March in particular gave me many opportunities to explore and exploit the multitouch web environment on Android and iOS.  I'm truly excited for what 2011 will bring to the mobile web space, and I also look forward to the role that Mobile Safari will play in my upcoming iOS app development.  It's an amazingly rapid and versatile tool.</p>

<p>I think I met more people and had more opportunities to collaborate in 2010 than I have in a really long time.  Maybe ever.  I found that to be tremendously valuable and rewarding.  I look forward to continuing that trend in 2011.  You all do some really amazing things, and the web community now surprises and thrills me at a daily pace.  Have a great 2011!  It's going to be <em>elevenz.</em></p>
                
        <p><a href="http://www.zachstronaut.com/posts/2011/02/06/2010-recap.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>
<item>
    <title><![CDATA[jQuery Patch: Animate CSS Rotation and Scale]]></title>
    <link>http://www.zachstronaut.com/posts/2009/08/07/jquery-animate-css-rotate-scale.html</link>
    <guid>http://www.zachstronaut.com/posts/2009/08/07/jquery-animate-css-rotate-scale.html</guid>
    <pubDate>Fri, 26 Nov 2010 21:50:55 -0800</pubDate>
    <dc:creator>Zachary Johnson</dc:creator>
    <comments>http://www.zachstronaut.com/posts/2009/08/07/jquery-animate-css-rotate-scale.html#comments</comments>
    <content:encoded><![CDATA[
        
        <p>I have created a monkey patch for jQuery (tested through 1.6) which enables you to independently set and/or animate both the scale and rotation of any HTML content with jQuery. This code uses the <code>scale()</code> and <code>rotate()</code> CSS transformations <strong>that are only supported by Webkit, Safari, Chrome, Firefox 3.5+, IE9, and some versions of Opera at this time.</strong></p>

<p>As an example I have some spinning HTML content.  You can click the content to increase its scale while it continues to spin.</p>

<p>Read the full post to see the example and download the patch.</p>
                
        <p><a href="http://www.zachstronaut.com/posts/2009/08/07/jquery-animate-css-rotate-scale.html">Continue Reading Post&hellip;</a></p>
    ]]></content:encoded>
</item>

</channel>
</rss>

