<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>wonko.com</title>
        <description>Personal blog of Ryan Grove: Sorcerer at SmugMug, lover of movies, eater of pie, and connoisseur of awesome.</description>
        <link>http://wonko.com/</link>
        <managingEditor>ryan@wonko.com (Ryan Grove)</managingEditor>
        <webMaster>ryan@wonko.com (Ryan Grove)</webMaster>
        <docs>http://backend.userland.com/rss</docs>
        <ttl>60</ttl>
        <atom:link rel="self" type="application/rss+xml" href="http://wonko.com/rss"/>

        
            <item>
                <title>Crass: A Ruby CSS Parser</title>
                <link>http://wonko.com/post/crass-ruby-css-parser</link>
                <guid isPermaLink="true">http://wonko.com/post/crass-ruby-css-parser</guid>
                <pubDate>Fri, 04 Oct 2013 22:23:21 GMT</pubDate>
                <description>
                    &lt;p&gt;&lt;a href=&quot;https://github.com/rgrove/crass/&quot;&gt;Crass&lt;/a&gt; is a pure Ruby CSS parser that implements the 2013 draft of the &lt;a href=&quot;http://www.w3.org/TR/2013/WD-css-syntax-3-20130919/&quot;&gt;CSS Syntax Level 3&lt;/a&gt; specification. I created it because I needed a good Ruby CSS 3 parser and there wasn&#39;t one. Now there is!&lt;/p&gt;
&lt;h1&gt;Features&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Pure Ruby, with no runtime dependencies other than Ruby 1.9.x or higher.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extremely tolerant of broken or invalid CSS. If a browser can handle it, Crass should be able to handle it too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optionally includes comments in the token stream.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Optionally preserves certain CSS hacks, such as the IE &quot;*&quot; hack, which would otherwise be discarded according to CSS3 tokenizing rules.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capable of serializing the parse tree back to CSS with perfect fidelity, maintaining all original whitespace, comments, and indentation.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Installing&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;gem install crass&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;More Details&lt;/h1&gt;
&lt;p&gt;Head over to the &lt;a href=&quot;https://github.com/rgrove/crass/&quot;&gt;Crass project page on GitHub&lt;/a&gt; for more details, including documentation and examples.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/crass">crass</category>
                
                    <category domain="http://wonko.com/tag/css">css</category>
                
                    <category domain="http://wonko.com/tag/parser">parser</category>
                
                    <category domain="http://wonko.com/tag/programming">programming</category>
                
                    <category domain="http://wonko.com/tag/ruby">ruby</category>
                
                    <category domain="http://wonko.com/tag/software">software</category>
                
            </item>
        
            <item>
                <title>Add the tools your toolbox lacks</title>
                <link>http://wonko.com/post/add-the-tools-your-toolbox-lacks</link>
                <guid isPermaLink="true">http://wonko.com/post/add-the-tools-your-toolbox-lacks</guid>
                <pubDate>Sat, 29 Jun 2013 04:08:48 GMT</pubDate>
                <description>
                    &lt;p&gt;Frameworks are foundations, not straitjackets.&lt;/p&gt;
&lt;p&gt;To an inexperienced programmer, a framework is an invaluable security blanket. It hides the rough edges of an unfamiliar language or platform, it guides you toward pre-established and pre-packaged patterns and best practices, and it wraps complex concepts in simpler abstractions.&lt;/p&gt;
&lt;p&gt;A good framework does the hard things and the boring things so that you can concentrate on &lt;em&gt;your&lt;/em&gt; things.&lt;/p&gt;
&lt;p&gt;Too often, inexperienced programmers choose a framework based on how many things it will do for them without requiring them to write code. The more code they&#39;re forced to write themselves, the less happy they are.&lt;/p&gt;
&lt;p&gt;This is natural, because when you‘re inexperienced, you aren’t comfortable writing code. But it&#39;s also a trap.&lt;/p&gt;
&lt;p&gt;If you don&#39;t challenge yourself, make mistakes, learn from &lt;em&gt;those&lt;/em&gt; mistakes, make more mistakes, and learn from those mistakes, you will remain an inexperienced, unconfident programmer perpetually at the mercy of the frameworks and libraries that are available to you.&lt;/p&gt;
&lt;p&gt;Avoiding this trap is hard. Many — perhaps even &lt;em&gt;most&lt;/em&gt; — programmers fall into this trap early in their careers and remain there for years, if not forever. Give them the frameworks and libraries they‘ve grown accustomed to and they can connect the dots and create useful, possibly even beautiful things, but put them in front of a blank editor with nothing at their disposal but a compiler or interpreter and a flashing cursor, and they’re lost.&lt;/p&gt;
&lt;p&gt;Not that frameworks and libraries are to be avoided. Carpenters don&#39;t forge their tools from scratch before each job. But the best carpenters know which tools to use, and when.&lt;/p&gt;
&lt;p&gt;A good programmer, like a good carpenter, knows when she lacks the right tool for the job at hand and isn&#39;t afraid to add it to her toolbox.&lt;/p&gt;
&lt;p&gt;Use a framework or a library if it makes you more productive, more organized, or more happy. But when the framework lacks something you need, consider adding it instead of asking for it.&lt;/p&gt;
&lt;p&gt;Start small. Challenge yourself. Get better. Get bolder. Add to your toolbox. Before long it‘ll feel natural and easy, and you’ll feel a freedom and a confidence you never felt before.&lt;/p&gt;
&lt;p&gt;Because now you‘re not just using, you’re &lt;em&gt;crafting&lt;/em&gt;.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/frameworks">frameworks</category>
                
                    <category domain="http://wonko.com/tag/libraries">libraries</category>
                
                    <category domain="http://wonko.com/tag/programming">programming</category>
                
            </item>
        
            <item>
                <title>On working remotely</title>
                <link>http://wonko.com/post/on-working-remotely</link>
                <guid isPermaLink="true">http://wonko.com/post/on-working-remotely</guid>
                <pubDate>Sun, 24 Feb 2013 05:35:00 GMT</pubDate>
                <description>
                    &lt;p&gt;Yesterday, Yahoo! internally announced a new policy: no more remote workers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;Beginning in June, we’re asking all employees with work-from-home arrangements to work in Yahoo! offices. If this impacts you, your management has already been in touch with next steps. And, for the rest of us who occasionally have to stay home for the cable guy, please use your best judgment in the spirit of collaboration. Being a Yahoo isn’t just about your day-to-day job, it is about the interactions and experiences that are only possible in our offices.&lt;/p&gt;
&lt;p&gt;[&amp;hellip;]&lt;/p&gt;
&lt;p&gt;&amp;mdash; &lt;a href=&quot;http://allthingsd.com/20130222/physically-together-heres-the-internal-yahoo-no-work-from-home-memo-which-extends-beyond-remote-workers/&quot;&gt;Leaked Yahoo! email&lt;/a&gt; published by AllThingsD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This new policy is shockingly shortsighted, and is a significant step backwards for Yahoo!.&lt;/p&gt;
&lt;p&gt;I worked remotely for Yahoo! for over three years, and I currently work remotely for SmugMug. During my time at Yahoo!, many of my most brilliant, passionate, and productive coworkers also worked remotely. Some of them are still there, and they&amp;rsquo;ll be affected by this policy.&lt;/p&gt;
&lt;p&gt;The shocking thing about this policy is not that Yahoo!&amp;rsquo;s management thinks employees will be more productive, communicative, or creative if they work together in an office. In many cases, this is true. What&amp;rsquo;s shocking is that they seem to think this will be true in &lt;em&gt;all&lt;/em&gt; cases.&lt;/p&gt;
&lt;p&gt;It won&amp;rsquo;t, and I&amp;rsquo;d like to explain why.&lt;/p&gt;
&lt;h1&gt;Some people can&amp;rsquo;t work remotely&lt;/h1&gt;
&lt;p&gt;First, let&amp;rsquo;s acknowledge the obvious: not all jobs can be done remotely, and not all people are good remote workers.&lt;/p&gt;
&lt;p&gt;My experience working remotely has been as an engineer. At times my job has involved close collaboration with many people &amp;mdash; sometimes as a team lead &amp;mdash; and at other times my role has been as a self-directed individual contributor. The latter is much easier to do remotely, while the former required a great deal of attention and care both on my part and on the part of my coworkers.&lt;/p&gt;
&lt;p&gt;In general, I would not recommend trying to lead a team or manage a highly collaborative project as a remote worker. It&amp;rsquo;s possible, but it&amp;rsquo;s hard, not just for you but for the team.&lt;/p&gt;
&lt;p&gt;Working remotely as an individual contributor has its own set of challenges, and still requires significant discipline, self direction, and communication.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve known brilliant engineers who were terrible and unreliable remote workers because they were undisciplined or didn&amp;rsquo;t communicate effectively when not in an office setting. It&amp;rsquo;s virtually impossible to know whether someone will be a good remote worker until you try them.&lt;/p&gt;
&lt;p&gt;Some people, when left to their own devices, lack the discipline to stay on task. Absent supervision and the physical presence of coworkers, they relax &amp;mdash; consciously or unconsciously &amp;mdash; and get less done.&lt;/p&gt;
&lt;p&gt;They may justify it to themselves (&amp;ldquo;I got a lot done yesterday! I deserve a day off.&amp;rdquo;), or they may encounter an obstacle and use their remoteness as an excuse to procrastinate (&amp;ldquo;Crap, Sara&amp;rsquo;s the only one who knows how this code works and she&amp;rsquo;s not online right now&amp;hellip;&amp;rdquo;), or they may simply be lazy.&lt;/p&gt;
&lt;p&gt;I suspect this is one of the reasons behind Yahoo!&amp;rsquo;s policy shift. It&amp;rsquo;s notoriously difficult to fire someone at Yahoo!, and for that matter at many large companies. If you hire a remote worker and it later turns out they&amp;rsquo;re not cutting it, the best you can hope for is to require them to work from the office or try to get them transferred somewhere else in the company so they&amp;rsquo;ll be someone else&amp;rsquo;s problem.&lt;/p&gt;
&lt;p&gt;Remote workers are more of a risk than non-remote workers, and you&amp;rsquo;ve got to be willing to let them go if things don&amp;rsquo;t work out.&lt;/p&gt;
&lt;h1&gt;Some people are much more effective remotely&lt;/h1&gt;
&lt;p&gt;Some people, when left to their own devices, become unstoppable forces of productivity.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m one of those people. &lt;a href=&quot;https://github.com/davglass&quot;&gt;Dav Glass&lt;/a&gt; is one of those people. So are &lt;a href=&quot;https://github.com/lsmith&quot;&gt;Luke Smith&lt;/a&gt;, &lt;a href=&quot;https://github.com/ericf&quot;&gt;Eric Ferraiuolo&lt;/a&gt;, and others I&amp;rsquo;ve had the pleasure of working with over the years. The four of us all worked remotely for Yahoo! (Dav and Eric still do), and would occasionally take trips to the office.&lt;/p&gt;
&lt;p&gt;We all found it virtually impossible to get anything done during our time on site. The difference in productivity was staggering, to the point where I ended up doing my best to finish as much work as possible before a trip so I wouldn&amp;rsquo;t fall behind while spending a week at the office dealing with constant interruptions and distractions.&lt;/p&gt;
&lt;p&gt;Not everyone is like this. Some people thrive on face to face interactions and random hallway chats, and can handle frequent interruptions. The four of us, and many other remote workers like us, thrive on long stretches of quiet time alone, with limited interruptions.&lt;/p&gt;
&lt;p&gt;But, most importantly, we have the discipline to stay on task, get our work done, and communicate frequently and effectively with our coworkers even though they aren&amp;rsquo;t physically present.&lt;/p&gt;
&lt;h1&gt;It&amp;rsquo;s about people, not locations&lt;/h1&gt;
&lt;p&gt;People are different. Jobs are different. Remote doesn&amp;rsquo;t work for everyone, but the office doesn&amp;rsquo;t work for everyone either. Some companies understand this and some don&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;There was a time when Yahoo! seemed to understand this. They didn&amp;rsquo;t let just &lt;em&gt;anyone&lt;/em&gt; work remotely, but they didn&amp;rsquo;t prohibit &lt;em&gt;everyone&lt;/em&gt; from working remotely either. They understood that on a case by case basis, some people, in some jobs, could be excellent remote workers.&lt;/p&gt;
&lt;p&gt;Telling effective and responsible remote workers that they can no longer work remotely &amp;mdash; not because they&amp;rsquo;re bad at it, but because some other people might be bad at it &amp;mdash; will only make those people less effective at their jobs.&lt;/p&gt;
&lt;p&gt;Or it&amp;rsquo;ll make them leave and find better jobs at companies that see them as people with unique strengths and weaknesses rather than as homogeneous cogs in a corporate machine.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/remote">remote</category>
                
                    <category domain="http://wonko.com/tag/wfh">wfh</category>
                
                    <category domain="http://wonko.com/tag/work">work</category>
                
                    <category domain="http://wonko.com/tag/yahoo!">yahoo!</category>
                
            </item>
        
            <item>
                <title>rawgithub.com</title>
                <link>http://wonko.com/post/rawgithub</link>
                <guid isPermaLink="true">http://wonko.com/post/rawgithub</guid>
                <pubDate>Tue, 29 Jan 2013 18:16:00 GMT</pubDate>
                <description>
                    &lt;p&gt;&lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; has always exposed raw source files in public repos via the &lt;code&gt;raw.github.com&lt;/code&gt; domain, but &amp;mdash; presumably for security reasons &amp;mdash; they serve most files with a &lt;code&gt;text/plain&lt;/code&gt; content type. This prevents all browsers from rendering HTML, and prevents some browsers from executing JavaScript and CSS.&lt;/p&gt;
&lt;p&gt;I‘ve always thought this was unfortunate. Being able to point directly to raw files in a GitHub repo can be useful for testing and for quick demos. I especially want it when I’m writing &lt;a href=&quot;http://jsperf.com/&quot;&gt;jsPerf&lt;/a&gt; tests and want to compare the performance of code in different branches.&lt;/p&gt;
&lt;p&gt;So I threw together &lt;a href=&quot;https://rawgithub.com/&quot;&gt;rawgithub.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s essentially a proxy for &lt;code&gt;raw.github.com&lt;/code&gt; that serves things with the correct content type based on the file extension. Just replace &lt;code&gt;raw.github.com&lt;/code&gt; in any GitHub URL with &lt;code&gt;rawgithub.com&lt;/code&gt; and you can render HTML, execute JavaScript, and apply CSS right from your GitHub repos.&lt;/p&gt;
&lt;p&gt;Have fun with it, but don&#39;t use it for anything important! It&#39;s slow and it might break occasionally.&lt;/p&gt;
&lt;p&gt;Oh, and the source is &lt;a href=&quot;https://github.com/rgrove/rawgithub&quot;&gt;on GitHub&lt;/a&gt;, naturally.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/github">github</category>
                
                    <category domain="http://wonko.com/tag/programming">programming</category>
                
                    <category domain="http://wonko.com/tag/rawgithub.com">rawgithub.com</category>
                
                    <category domain="http://wonko.com/tag/software">software</category>
                
            </item>
        
            <item>
                <title>How to run Continuum (SubSpace) on a Mac</title>
                <link>http://wonko.com/post/how-to-run-continuum-on-a-mac</link>
                <guid isPermaLink="true">http://wonko.com/post/how-to-run-continuum-on-a-mac</guid>
                <pubDate>Sat, 12 Jan 2013 07:00:00 GMT</pubDate>
                <description>
                    &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/SubSpace_%28video_game%29&quot;&gt;Continuum&lt;/a&gt; (also known by its original name, SubSpace) is a ridiculously fun massively multiplayer online space shooter that I‘ve played off and on since its public beta in 1996. The original game wasn’t commercially successful, but in the years since it was abandoned, community servers have sprung up and the game client has been rewritten and released as freeware.&lt;/p&gt;
&lt;p&gt;For an online game that‘s been around for over 16 years, it’s withstood the test of time well, and is just as fun as it ever was. I recently had a hankering to play it again. Only problem: Continuum is a Windows game, and I use OS X these days.&lt;/p&gt;
&lt;p&gt;In the past I‘ve run Continuum in a VirtualBox VM, but that’s a pain and it‘s not as fast as I’d like. This time I decided to see if I could get it running in Wine, which would make it easier to play, and faster as well.&lt;/p&gt;
&lt;p&gt;It turns out a fellow calling himself spiffyguy on the SubSpace forums &lt;a href=&quot;http://www.subspace.co/topic/25908-installing-on-a-mac-guide/?p=285257&quot;&gt;had already gotten this working&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Using &lt;a href=&quot;http://wineskin.urgesoftware.com/&quot;&gt;WineSkin&lt;/a&gt;, spiffyguy bundled Continuum and the necessary Wine runtime and config into a standalone OS X app. Here&#39;s how to get it running.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;http://pieisgood.org/files/continuum-040b-mac.zip&quot;&gt;Download Continuum.app&lt;/a&gt;. I‘ve hosted the file on my server so you don’t need to dig through the SubSpace forums to find it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Extract the zip file, copy Continuum.app to your Applications folder, and run it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you&#39;re running Mountain Lion, you may be prompted to install XQuartz &lt;a href=&quot;http://support.apple.com/kb/HT5293&quot;&gt;as described here&lt;/a&gt;. Install it, then run Continuum.app again.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&#39;s it! You should now have a working Continuum client on your Mac. I&#39;ve been playing happily for the last few days with no problems. It runs smooth as silk on my mid-2011 MacBook Air.&lt;/p&gt;
&lt;p&gt;If this is your first time playing Continuum, this &lt;a href=&quot;http://beginner.getcontinuum.com/quick.php&quot;&gt;quick start guide&lt;/a&gt; should help get you going.&lt;/p&gt;
&lt;p&gt;And if you&#39;d like a few pointers on how to rack up kills in Trench Wars, the most popular Continuum game type, you might enjoy this &lt;a href=&quot;/post/a_succinct_guide_to_trench_wars_badassery&quot;&gt;Succinct Guide to Trench Wars Badassery&lt;/a&gt; I wrote back in 2004.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/continuum">continuum</category>
                
                    <category domain="http://wonko.com/tag/game">game</category>
                
                    <category domain="http://wonko.com/tag/howto">howto</category>
                
                    <category domain="http://wonko.com/tag/subspace">subspace</category>
                
            </item>
        
            <item>
                <title>Pie Trip Down Under</title>
                <link>http://wonko.com/post/pie-trip-down-under</link>
                <guid isPermaLink="true">http://wonko.com/post/pie-trip-down-under</guid>
                <pubDate>Tue, 25 Dec 2012 21:53:00 GMT</pubDate>
                <description>
                    &lt;p&gt;A few years ago my dear friend Loren, who you may remember from such films as
&lt;a href=&quot;/post/the_pie_trip&quot;&gt;The Pie Trip&lt;/a&gt;, &lt;a href=&quot;/post/pie_trip_ii_the_video&quot;&gt;Pie Trip II: Pie Harder&lt;/a&gt;, and &lt;a href=&quot;/post/pie_trip_25&quot;&gt;Pie Trip 2.5&lt;/a&gt;, met a wonderful Australian girl named Caitlin. She was so wonderful that Loren moved to Australia and, earlier this year, they were married.&lt;/p&gt;
&lt;p&gt;Pie Trip II was an epic cross-country road trip to reach a wedding in Wisconsin. What better way to top it than with an epic international journey to reach a wedding in Australia? This trip had sequel written all over it.&lt;/p&gt;
&lt;p&gt;The result is &lt;em&gt;Pie Trip Down Under&lt;/em&gt;, starring Kyle Kingsbury, Tyler Schuett, Andy Howe, Felicity Shoulders, Loren Bruns, and my creepifying disembodied voice. I hope you enjoy it.&lt;/p&gt;
&lt;h1&gt;The Video&lt;/h1&gt;
&lt;script src=&quot;//cdn.sublimevideo.net/js/8s66h112-beta.js&quot;&gt;&lt;/script&gt;

&lt;p&gt;
&lt;video class=&quot;sublime&quot; poster=&quot;http://video.pieisgood.org/videos/pie-trip-down-under/poster.jpg&quot; width=&quot;640&quot; height=&quot;360&quot; data-uid=&quot;pie-trip-down-under&quot; data-name=&quot;Pie Trip Down Under&quot; data-settings=&quot;autoresize:fit&quot; preload=&quot;none&quot;&gt;
  &lt;source src=&quot;http://video.pieisgood.org/videos/pie-trip-down-under/pie-trip-down-under-720p.mp4&quot; data-quality=&quot;hd&quot; /&gt;
  &lt;source src=&quot;http://video.pieisgood.org/videos/pie-trip-down-under/pie-trip-down-under-480p.mp4&quot; /&gt;
&lt;/video&gt;
&lt;/p&gt;

&lt;h1&gt;Behind the Scenes&lt;/h1&gt;
&lt;p&gt;Technology has advanced somewhat since 2004, and so have production values. This was both a blessing and a curse, in that it enabled us to shoot so much footage with so many different cameras in so many different time zones that it took me months (admittedly, lazy months, but still months) just to wade through it all and even longer to make something interesting out of it. And yet, in keeping with Pie Trip tradition, we managed not to get any usable footage of anyone actually eating a pie (although I assure you that many, many delicious meat pies were et).&lt;/p&gt;
&lt;p&gt;It&#39;s amazing to think that on Pie Trip II we had a single camera&amp;mdash;a bulky, clunky thing that recorded crappy SD video onto actual magnetic tape, which then had to be captured to a hard drive in real time. Tape, hard drive space, and actual &lt;em&gt;time&lt;/em&gt; were serious limiting factors in the making of that video.&lt;/p&gt;
&lt;p&gt;On this trip we had more HD cameras than we knew what to do with (everyone literally had one in their pocket), shot hundreds and hundreds of gigabytes of footage, and never gave a single thought to storage space. We live in the future.&lt;/p&gt;
&lt;p&gt;The majority of the video was shot on a &lt;a href=&quot;http://www.usa.canon.com/cusa/consumer/products/camcorders/professional_camcorders/xa10&quot;&gt;Canon XA10&lt;/a&gt;. This was my first major project with this camera, and in hindsight there are a lot of things I would now do differently. For one, I shot at 24fps, which turned out to be a bad idea because the XA10 has major autofocus lag at that framerate. I now shoot at 60i instead, which produces much better results and still allows me the freedom to adjust the framerate in editing.&lt;/p&gt;
&lt;p&gt;Certain scenic shots and many shots in the animal montage were shot on a &lt;a href=&quot;http://www.usa.canon.com/cusa/consumer/products/cameras/slr_cameras/eos_rebel_t3i_18_55mm_is_ii_kit&quot;&gt;Canon EOS Rebel T3i&lt;/a&gt;, which was also new for this trip. This turned out to be pretty good for static shots, but I was disappointed by the obvious compression artifacts and noise in the T3i&#39;s videos at wider focal lengths. In spite of the much better lens flexibility and control over depth of field available on the T3i, footage from the XA10 often ended up looking better simply because it suffered from fewer compression artifacts.&lt;/p&gt;
&lt;p&gt;The opening motorcycle scene and the Sky Tower jump POV footage at the end of the video were shot with a &lt;a href=&quot;http://gopro.com/&quot;&gt;GoPro HD Hero&lt;/a&gt;. Kyle actually shot hours and hours of motorcycle and ATV footage with the Hero, much of which is gorgeous, but sadly I wasn&#39;t able to fit it into the narrative of the video.&lt;/p&gt;
&lt;p&gt;And of course, several scenes were shot on a humble iPhone 4S (or rather, on one of several humble iPhone 4Ses), which shoots passable HD footage and has the distinct benefit of being easy to carry and quick to use, especially in airports and other places where larger cameras are less convenient to carry or just harder to get to at a moment‘s notice. The iPhone was also easy to smuggle into a footie match in Melbourne where cameras were forbidden, although I didn’t end up using that footage.&lt;/p&gt;
&lt;p&gt;The video was edited in Final Cut Pro X, which I absolutely love and have been using happily since it was released. It was mastered in 1080p (a massive jump in quality compared to the grainy SD of the previous Pie Trip videos). I did quite a bit of audio sweetening and color correction for this project, all of which was painless and intuitive. It&#39;s clear why many professional editors are upset over the changes in FCPX, but I apparently fall precisely in the prosumer sweet spot that Apple was aiming for with their rewrite.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/australia">australia</category>
                
                    <category domain="http://wonko.com/tag/brunslo">brunslo</category>
                
                    <category domain="http://wonko.com/tag/loren">loren</category>
                
                    <category domain="http://wonko.com/tag/new%20zealand">new zealand</category>
                
                    <category domain="http://wonko.com/tag/pie">pie</category>
                
                    <category domain="http://wonko.com/tag/pie%20trip">pie trip</category>
                
                    <category domain="http://wonko.com/tag/video">video</category>
                
            </item>
        
            <item>
                <title>YUI from the inside</title>
                <link>http://wonko.com/post/yui-from-the-inside</link>
                <guid isPermaLink="true">http://wonko.com/post/yui-from-the-inside</guid>
                <pubDate>Tue, 11 Dec 2012 20:01:00 GMT</pubDate>
                <description>
                    &lt;p&gt;Remember &lt;a href=&quot;/post/yui-from-the-outside&quot;&gt;when I complained&lt;/a&gt; about YUI‘s opaque governance model and lack of external committers? They’ve fixed it!&lt;/p&gt;
&lt;p&gt;These changes have been a long time coming and most of them were already in the works when I wrote that post, but I want to thank the YUI team for listening to me and to others in the community and making things better.&lt;/p&gt;
&lt;h1&gt;New contributor model&lt;/h1&gt;
&lt;p&gt;At YUIConf last month, &lt;a href=&quot;https://twitter.com/davglass&quot;&gt;Dav Glass&lt;/a&gt; announced &lt;a href=&quot;https://github.com/yui/yui3/wiki/Contributor-Model&quot;&gt;YUI&#39;s new contributor model&lt;/a&gt; in his &lt;a href=&quot;http://www.youtube.com/watch?v=ByU2zn9DmAA&quot;&gt;keynote&lt;/a&gt;. He also announced the first two non-Yahoo! committers in YUI&#39;s history: me and fellow SmugMugger &lt;a href=&quot;https://twitter.com/ls_n&quot;&gt;Luke Smith&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The contributor model is based heavily on the &lt;a href=&quot;http://www.oss-watch.ac.uk/resources/meritocraticGovernanceModel&quot;&gt;Meritocratic Governance Model&lt;/a&gt; and outlines the distinct roles (users, contributors, committers, and reviewers) within the project, as well as their rights and responsibilities. It also defines a decision-making process based on lazy consensus, which is designed to prevent roadblocks.&lt;/p&gt;
&lt;p&gt;But perhaps the most important thing Dav announced&amp;mdash;and certainly the most surprising&amp;mdash;is that most of the YUI team are committers, not reviewers. This means that even though they&#39;re Yahoo! employees paid to work on YUI, they have exactly the same rights and access as external committers, and any significant changes they want to make must be approved by a reviewer. It also means that their votes carry no more weight than the votes of external committers.&lt;/p&gt;
&lt;p&gt;This is a bold move designed to ensure that the YUI project is truly in the hands of the community and can&#39;t be too heavily influenced by Yahoo!. While there‘s currently only one reviewer&amp;mdash;Dav&amp;mdash;I’m told the team hopes to add non-Yahoo! reviewers in the future. This fills me with joy.&lt;/p&gt;
&lt;h1&gt;More transparency&lt;/h1&gt;
&lt;p&gt;In addition to posting more development details on YUI&#39;s &lt;a href=&quot;https://github.com/yui/yui3/wiki&quot;&gt;GitHub wiki&lt;/a&gt;, the team at Yahoo! has opened up their weekly meetings to external contributors and users via Google+ Hangouts On Air.&lt;/p&gt;
&lt;p&gt;Every Thursday at 2pm Pacific Time, YUI users can join the hangout (or just watch it live on YouTube) and discuss project decisions, pull requests, and more with members of the YUI team at Yahoo!. This is the same weekly meeting I attended while I was on the team, and the same discussions take place, only now they‘re open to the world and recorded for folks who can’t catch the live hangout.&lt;/p&gt;
&lt;p&gt;The weekly hangout isn&#39;t the only forum for discussion, though. Ad hoc hangouts occur frequently and are announced on IRC, Twitter, and the YUI Blog. Pull request activity has increased, and the new &lt;a href=&quot;http://www.yuiblog.com/blog/2012/12/05/announcing-the-new-yui-contributor-mailing-list/&quot;&gt;contributor mailing list&lt;/a&gt; is spinning up.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/ericf&quot;&gt;Eric Ferraiuolo&lt;/a&gt; held a great &lt;a href=&quot;http://www.youtube.com/watch?v=S4rLuiQkgDA&quot;&gt;community town hall&lt;/a&gt; at YUIConf in which he laid out his vision of how the YUI project can embrace its community and be more open.&lt;/p&gt;
&lt;h1&gt;Gallery 2.0&lt;/h1&gt;
&lt;p&gt;YUIConf also served as the backdrop to Dav&#39;s introduction of a &lt;a href=&quot;http://yui.github.com/yogi/gallery/index.html&quot;&gt;vastly improved process and tools&lt;/a&gt; for contributing and maintaining YUI Gallery modules. Everything I complained about was addressed, and because he‘s Dav, he also added a significant helping of awesomeness that I hadn’t anticipated.&lt;/p&gt;
&lt;h1&gt;The Future&lt;/h1&gt;
&lt;p&gt;I‘m excited about YUI’s future. Yahoo! has shown a willingness to listen to criticism and address the project&#39;s problems. The community asked for more transparancy and more control, and Yahoo! gave it to us. Now it&#39;s up to us to make YUI what we want it to be.&lt;/p&gt;
&lt;p&gt;Like any long-lived project, there are parts of YUI that are new and awesome, and there are parts that are old and crufty. Those old and crufty parts have often been frustrating to YUI‘s users, because it hasn’t always been clear how we can improve them.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;http://youtu.be/8cTz73zdDuc?hd=1&quot;&gt;my YUIConf talk&lt;/a&gt;, I advocated not using certain parts of YUI and thinking carefully before using others. I‘m eager to tackle YUI’s “bad parts” and improve them, especially now that I feel like I really do have the power to influence the course of the project despite no longer working for Yahoo!.&lt;/p&gt;
&lt;p&gt;As I said during Eric&#39;s town hall at YUIConf, “the YUI team” used to mean &quot;the Yahoo! employees who work on YUI&quot;. Now, that&#39;s no longer the case. There are still Yahoo! employees who work on YUI, but referring to them as the YUI team feels wrong, since that “team” now includes anyone who contributes a pull request or takes part in a hangout or offers a suggestion on the mailing list.&lt;/p&gt;
&lt;p&gt;It sounds corny, but we‘re all the YUI team now, and that’s exactly how it should be.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/javascript">javascript</category>
                
                    <category domain="http://wonko.com/tag/open%20source">open source</category>
                
                    <category domain="http://wonko.com/tag/yahoo!">yahoo!</category>
                
                    <category domain="http://wonko.com/tag/yui">yui</category>
                
            </item>
        
            <item>
                <title>Video: When Not to Use YUI</title>
                <link>http://wonko.com/post/when-not-to-use-yui-video</link>
                <guid isPermaLink="true">http://wonko.com/post/when-not-to-use-yui-video</guid>
                <pubDate>Fri, 30 Nov 2012 00:00:00 GMT</pubDate>
                <description>
                    &lt;p&gt;The video of my YUIConf 2012 talk, &lt;a href=&quot;http://youtu.be/8cTz73zdDuc?hd=1&quot;&gt;When Not to Use YUI&lt;/a&gt;, is now available.&lt;/p&gt;
&lt;p&gt;The slides were apparently captured with some kind of crufty VGA capture hardware that made them look muddy and dark, so you may want to &lt;a href=&quot;https://speakerdeck.com/yaypie/when-not-to-use-yui&quot;&gt;follow along with the slide deck&lt;/a&gt; if you care about that sort of thing.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/javascript">javascript</category>
                
                    <category domain="http://wonko.com/tag/talk">talk</category>
                
                    <category domain="http://wonko.com/tag/video">video</category>
                
                    <category domain="http://wonko.com/tag/yui">yui</category>
                
                    <category domain="http://wonko.com/tag/yuiconf">yuiconf</category>
                
            </item>
        
            <item>
                <title>Respawn</title>
                <link>http://wonko.com/post/respawn</link>
                <guid isPermaLink="true">http://wonko.com/post/respawn</guid>
                <pubDate>Thu, 29 Nov 2012 00:00:00 GMT</pubDate>
                <description>
                    &lt;p&gt;I finally got around to rewriting my ancient Ruby blog engine in Node. You&#39;re looking at it. Say hello to &lt;a href=&quot;https://github.com/rgrove/lectroid&quot;&gt;Lectroid&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It‘s not that I’ve stopped liking Ruby or anything like that. But the old blog was a crufty and complex beast built on an old and defunct Ruby web framework and backed by an actual honest to god &lt;em&gt;database&lt;/em&gt; (remember when blogs used databases?) and bogged down by features like &lt;em&gt;comments&lt;/em&gt; (remember when blogs had comments?).&lt;/p&gt;
&lt;p&gt;I dreaded writing blog posts because it meant typing them into that old complex beast I had created and no longer had any desire to maintain, and that meant seeing all the things about it that I hated, and that meant wanting to change them, and that led to depression because, seriously, who the fuck wants to maintain a goddamn blog engine? I sure don&#39;t.&lt;/p&gt;
&lt;p&gt;But I want even less to use someone &lt;em&gt;else&#39;s&lt;/em&gt; goddamn blog engine, so here we are.&lt;/p&gt;
&lt;p&gt;The only thing special about Lectroid is that I don‘t yet hate it, and I’ve tried to build it in such a way that I&#39;ll hopefully be able to completely ignore it for years and years without it breaking.&lt;/p&gt;
&lt;p&gt;It was also designed to allow me to host my blog on &lt;a href=&quot;http://www.heroku.com/&quot;&gt;Heroku&lt;/a&gt;, which I‘m now doing, as part of a gradual effort to stop maintaining my own server. We’ll see how that goes.&lt;/p&gt;
&lt;p&gt;Oh, and naturally I&#39;ve taken the opportunity to redesign everything. There are these things called &lt;em&gt;smartphones&lt;/em&gt; now, and also &lt;em&gt;tablets&lt;/em&gt;, and these things have tiny little screens. This blog looks less shitty on them now.&lt;/p&gt;
&lt;p&gt;Also I‘ve increased the font size to, like, a million, because I’m getting old and my eyes don&#39;t work anymore.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/blog">blog</category>
                
                    <category domain="http://wonko.com/tag/javascript">javascript</category>
                
                    <category domain="http://wonko.com/tag/lectroid">lectroid</category>
                
                    <category domain="http://wonko.com/tag/node.js">node.js</category>
                
                    <category domain="http://wonko.com/tag/software">software</category>
                
            </item>
        
            <item>
                <title>When Not to Use YUI</title>
                <link>http://wonko.com/post/when-not-to-use-yui</link>
                <guid isPermaLink="true">http://wonko.com/post/when-not-to-use-yui</guid>
                <pubDate>Fri, 02 Nov 2012 23:39:40 GMT</pubDate>
                <description>
                    
&lt;p&gt;&lt;a href=&quot;http://lanyrd.com/2012/yuiconf/&quot;&gt;YUIConf 2012&lt;/a&gt; is coming up in Santa Clara on November 14th and 15th. I usually avoid public speaking like the plague, but this time there&amp;#8217;s something I really want to talk about: &lt;a href=&quot;http://lanyrd.com/2012/yuiconf/szrgb/&quot;&gt;When Not to Use &lt;span class=&quot;caps&quot;&gt;YUI&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll provide code samples and real-world anecdotes to illustrate how to decide when to use &lt;span class=&quot;caps&quot;&gt;YUI&lt;/span&gt;, when to use vanilla JavaScript, when to consider other libraries, and what the tradeoffs are in terms of performance and maintainability. Advice will range from simple rules of thumb to more nuanced discussion of complex architectural decisions, with examples drawn from my time working on &lt;span class=&quot;caps&quot;&gt;YUI&lt;/span&gt; at Yahoo! and using &lt;span class=&quot;caps&quot;&gt;YUI&lt;/span&gt; at SmugMug.&lt;/p&gt;

&lt;p&gt;Come see the fireworks in the main room at 9AM on Thursday, November 15th!&lt;/p&gt;

&lt;p class=&quot;update&quot;&gt;&lt;strong&gt;Update, 2012-11-15:&lt;/strong&gt; &lt;a href=&quot;https://speakerdeck.com/yaypie/when-not-to-use-yui&quot;&gt;Here are the slides&lt;/a&gt; from my talk. This was a talk in which the slides served mainly as background to me saying stuff, so keep an eye out for the video as well, which I&amp;#8217;ll post as soon as it&amp;#8217;s available.&lt;/p&gt;

&lt;p class=&quot;update&quot;&gt;&lt;strong&gt;Update, 2012-11-30:&lt;/strong&gt; The &lt;a href=&quot;http://youtu.be/8cTz73zdDuc?hd=1&quot;&gt;video of my talk&lt;/a&gt; is now available. The slides in the video were apparently captured with some kind of crufty VGA capture hardware that made them look muddy and dark, so you may want to &lt;a href=&quot;https://speakerdeck.com/yaypie/when-not-to-use-yui&quot;&gt;follow along with the slide deck&lt;/a&gt; if you care about that sort of thing.&lt;/p&gt;

                </description>

                
                    <category domain="http://wonko.com/tag/javascript">javascript</category>
                
                    <category domain="http://wonko.com/tag/talk">talk</category>
                
                    <category domain="http://wonko.com/tag/yui">yui</category>
                
                    <category domain="http://wonko.com/tag/yuiconf">yuiconf</category>
                
            </item>
        
    </channel>
</rss>