<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Mad, Beautiful Ideas</title>
    <link rel="alternate" type="text/html" href="http://blog.foxxtrot.net/" />
    
    <id>tag:blog.foxxtrot.net,2008-09-17://1</id>
    <updated>2010-03-09T23:44:22Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MadBeautifulIdeas" /><feedburner:info uri="madbeautifulideas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>Working Around IE Bugs: Rebuilding Select Boxes in JavaScript</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/Wfp7awOsULI/working-around-ie-bugs-rebuilding-select-boxes-in-javascript.html" />
    <id>tag:blog.foxxtrot.net,2010://1.400</id>

    <published>2010-03-09T23:43:12Z</published>
    <updated>2010-03-09T23:44:22Z</updated>

    <summary>Recently I was building a simple web application form where one of select boxes was driven by the value of a different box. The original code for this seemed pretty straightforward, but while the code worked perfectly in Firefox and...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bugs" label="Bugs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="internetexplorer" label="Internet Explorer" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="web" label="Web" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yui3" label="YUI3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Recently I was building a simple web application form where one of select boxes was driven by the value of a different box. The original code for this seemed pretty straightforward, but while the code worked perfectly in Firefox and Chrome, it was producing amazingly strange behaviour in Internet Explorer. Namely, when I&amp;#8217;d rebuild the select box, IE would not position the text correctly inside of it, the dropdown wouldn&amp;#8217;t appear reliably, and when it would, it wouldn&amp;#8217;t necessarily show the correct text for the selections. In one case it was actually displaying four selections, when there were in fact only two. You could use the keyboard to select the values correctly, but this was still absolutely unacceptable behaviour.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll do a write up on the behaviour later this week, but I decided to jump the gun and present the solution I developed first, since I don&amp;#8217;t have good simple examples just yet. I ended up trying several ways of creating the options before appending them to the select element, but eventually, I had to completely recycle the selectbox in order to make it behave correctly. I&amp;#8217;ve had other pages that didn&amp;#8217;t misbehave in quite this way, so I&amp;#8217;m trying to figure out the minimum case to recreate the problem before I send it to Microsoft.&lt;/p&gt;

&lt;p&gt;Luckily, JavaScript makes it pretty easy to branch code based on browser in a way that doesn&amp;#8217;t require doing the browser check all the time. Below is a generic version of the function to do the replacement, which includes calling a &amp;#8216;change&amp;#8217; event handler, which unfortunately can&amp;#8217;t be anonymous (at least in &lt;a href="http://developer.yahoo.com/yui/3/"&gt;YUI3&lt;/a&gt;) since &amp;#8216;change&amp;#8217; events can&amp;#8217;t be simulated. Actually, having to rebind the change&lt;em&gt;event&lt;/em&gt;handler every time you change the contents of the select box is the only possible &amp;#8216;challenge&amp;#8217; in the problem.&lt;/p&gt;

&lt;p&gt;&lt;textarea class="code javascript"&gt;
var rebuildSelectBoxOptions = Y.UA.ie &gt; 0 ? function(box, options, change&lt;em&gt;event&lt;/em&gt;handler) {
    var newOption, newSelector;
    newSelector = Y.Node.create(box.set(&amp;#8216;innerHTML&amp;#8217;, &amp;#8221;).get(&amp;#8216;outerHTML&amp;#8217;));
    for (var i = 0; i &amp;lt; options.length; i += 1) {
        newSelector.append(&amp;#8216;&lt;option value="' + options[i].value + '"&gt;&amp;#8217; + options[i].text + &amp;#8216;&lt;/option&gt;&amp;#8217;);
    }
    newSelector.set(&amp;#8216;selectedIndex&amp;#8217;, 0);
    box.replace(newSelector.&lt;em&gt;node);
    if (Y.Lang.isFunction(change&lt;/em&gt;event&lt;em&gt;handler)) {
        change&lt;/em&gt;event&lt;em&gt;handler({target: newSelector});
        newSelector.on(&amp;#8216;change&amp;#8217;, change&lt;/em&gt;event&lt;em&gt;handler);
    }
} : function(box, options, change&lt;/em&gt;event&lt;em&gt;handler) {
    box.set(&amp;#8216;innerHTML&amp;#8217;, &amp;#8221;);
  for (var i = 0; i &amp;lt; options.length; i += 1) {
        box.append(&amp;#8216;&lt;option value="' + options[i].value + '"&gt;&amp;#8217; + options[i].text + &amp;#8216;&lt;/option&gt;&amp;#8217;);
    }
    box.set(&amp;#8216;selectedIndex&amp;#8217;, 0);
    if (Y.Lang.isFunction(change&lt;/em&gt;event&lt;em&gt;handler)) {
        change&lt;/em&gt;event_handler({target: box});
    }
};
&lt;/textarea&gt;&lt;/p&gt;

&lt;p&gt;The non-IE version is a couple of hundred bytes lighter, and should be faster (though for &lt;em&gt;most&lt;/em&gt; use cases, the difference is likely negligible). I&amp;#8217;m not sure yet what the increased garbage collection load of this will do to IE, but in my case, that&amp;#8217;s not likely to be a problem.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Px7SHzvg7a1XfvDT3XEr_SFzheU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Px7SHzvg7a1XfvDT3XEr_SFzheU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Px7SHzvg7a1XfvDT3XEr_SFzheU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Px7SHzvg7a1XfvDT3XEr_SFzheU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/Wfp7awOsULI" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/03/working-around-ie-bugs-rebuilding-select-boxes-in-javascript.html</feedburner:origLink></entry>

<entry>
    <title>Compact Fluorescent Lights and the Environment</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/aRglGp1GORk/compact-fluorescent-lights-and-the-environment.html" />
    <id>tag:blog.foxxtrot.net,2010://1.399</id>

    <published>2010-03-08T16:00:00Z</published>
    <updated>2010-03-08T05:28:51Z</updated>

    <summary>I’m highly interested in the ‘Green’ movement and the things that we are supposed to be doing that will help mitigate humanities continued impact on the ecosystem. However, I question a lot of the things that the green movement pushes,...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Homeownership" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cfl" label="CFL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="green" label="Green" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="home" label="Home" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="led" label="LED" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="light" label="Light" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="money" label="Money" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;I&amp;#8217;m highly interested in the &amp;#8216;Green&amp;#8217; movement and the things that we are supposed to be doing that will help mitigate humanities continued impact on the ecosystem. However, I question a lot of the things that the green movement pushes, which sometimes seem like they might cause &lt;em&gt;more&lt;/em&gt; damage over the long term than less. For instance &amp;#8216;compostable&amp;#8217; plastics, which tend to be made from soy. I suspect these plastics require a &lt;em&gt;lot&lt;/em&gt; of water in the processing, which very likely negates any benefit to them being able to avoid the landfill (though most almost certainly end up in landfills).&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve felt similarly about Compact Fluorescent (CFL) Light Bulbs for a while, knowing that the cost of production was going to be dramatically higher than for traditional incandescents, but being unsure that the energy savings in use would be enough to make up for it. Then, I saw one of the best written contributory articles to our &lt;a href="http://moscowfood.coop/"&gt;local co-op&lt;/a&gt; &lt;a href="http://www.moscowfood.coop/pdf/newsletter/MoscowCoopNews_March10_web.pdf"&gt;newsletter&lt;/a&gt;, which for those who download the newsletter at the previous link, can find on page 36 of the PDF.&lt;/p&gt;

&lt;p&gt;The article in question looks at this issue in a pretty complete way, presenting several interesting statistics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Making a CFL takes 5 times the energy of an incandescent, but you&amp;#8217;ll need 6-10 incandescents for each CFL.&lt;/li&gt;
&lt;li&gt;The energy output of incandescents over a single CFL would require generating 200 pounds of carbon over the life of the CFL.&lt;/li&gt;
&lt;li&gt;A CFL contains ~5mg of mercury, and powering that bulb with coal (over it&amp;#8217;s life) generates another 2.4mg of mercury into the environment, however, Incandescents would require 10mg of mercury output from a coal-fired plant. This is further mitigated by the relative ease of &lt;a href="http://ecolights.com/"&gt;recycling CFLs&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, here in the Pacific Northwest, mots of our energy needs are met by hydroelectric, not coal, but still the proven energy savings of the bulbs have kept them an attractive option, but it&amp;#8217;s nice that the statistics show that this is actually a &lt;em&gt;real&lt;/em&gt; improvement we can make, that&amp;#8217;s not only &amp;#8216;green&amp;#8217;, but saves money as well.&lt;/p&gt;

&lt;p&gt;In many ways, I&amp;#8217;m more interested in LED lighting, though it&amp;#8217;s hard to find in the stores. LED bulbs have the potential to be even better over the long term than CFLs, Currently, &lt;a href="http://www.eartheasy.com/live_led_bulbs_comparison.html"&gt;LED bulbs&lt;/a&gt; last 5 times longer than CFLs, use less than half the energy, but cost about 10 times more. However, what I don&amp;#8217;t know is how that translates into their production impact. Still, it&amp;#8217;s an interesting technology I plan to watch.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OODsLF_cKlliuVAxu3oei-cOjMM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OODsLF_cKlliuVAxu3oei-cOjMM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OODsLF_cKlliuVAxu3oei-cOjMM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OODsLF_cKlliuVAxu3oei-cOjMM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/aRglGp1GORk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/03/compact-fluorescent-lights-and-the-environment.html</feedburner:origLink></entry>

<entry>
    <title>Introducing gallery-slideshow for YUI3</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/UqDp0rk1qSw/introducing-gallery-slideshow-for-yui3.html" />
    <id>tag:blog.foxxtrot.net,2010://1.397</id>

    <published>2010-03-04T16:00:00Z</published>
    <updated>2010-03-03T02:26:59Z</updated>

    <summary>Recently, at work, we had a desire to update an instance of a flash-based slideshow widget on our commencement website. This widget did absolutely nothing special, but the real problem we had was that, we didn’t actually have a license...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gallery" label="Gallery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="JavaScript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="programming" label="Programming" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="slideshow" label="Slideshow" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="widget" label="Widget" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yui3" label="YUI3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Recently, at work, we had a desire to update an instance of a flash-based slideshow widget on our &lt;a href="http://commencement.wsu.edu/"&gt;commencement&lt;/a&gt; website. This widget did absolutely nothing special, but the real problem we had was that, we didn&amp;#8217;t actually have a license for Flash, and the way the slideshow had been built, we needed to be able to build the SWF file from scratch in order to update the order. Since our users rarely come to us with anything that isn&amp;#8217;t some sort of emergency, we had to take the flash files to another department to make our quick change and compile a new SWF. &lt;/p&gt;

&lt;p&gt;Of course, I knew there was no reason to continue to use unconfigurable Flash for this, but YUI didn&amp;#8217;t have a slideshow widget. So, I decided to start writing one. Due to the excellent widget framework, I had a quick-and-dirty example written in a mere couple of hours. Of course, that was not something I was really going to release, though I did push it up to my github.&lt;/p&gt;

&lt;p&gt;It was about a week before I was able to return to the project, but I have now submitted a very basic, but functional widget to the Y! CDN. 
&lt;style type="text/css"&gt;
.yui-slideshow 
{
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
}&lt;/p&gt;

&lt;p&gt;.yui-slideshow-content
{
    position: relative;
}
&lt;/style&gt;&lt;/p&gt;

&lt;div id="cat-slideshow"&gt;
&lt;/div&gt;

&lt;script type="text/javascript"&gt;
YUI({modules: {'gallery-slideshow': {fullpath: 'http://yui.yahooapis.com/gallery-2010.03.02-18/build/gallery-slideshow/gallery-slideshow-min.js',requires: ['widget'],optional: ['anim'],supersedes: []}}}).use('gallery-slideshow', 'anim', function(Y) {
    var ss = new Y.SlideShow({
        boundingBox: '#cat-slideshow',
        height: 384, width: 512,
        animation: new Y.Anim({from:{opacity:1.0}, to:{opacity:0.0}}),
        images: [
            { src: "/2010/03/04/S3010125.JPG" },
            { src: "/2010/03/04/S3010142.JPG" },
            { src: "/2010/03/04/S3010171.JPG" },
            { src: "/2010/03/04/S3010176.JPG" },
            { src: "/2010/03/04/S3010197.JPG" },
            { src: "/2010/03/04/S3010248.JPG" }
        ],
        delay: 4000
    });
    ss.render();
});
&lt;/script&gt;

&lt;p&gt;The javascript to run the above slideshow is simple, for the user:&lt;/p&gt;

&lt;p&gt;&lt;textarea class="code javascript"&gt;
YUI({
    modules: {
        &amp;#8216;gallery-slideshow&amp;#8217;: {
            fullpath: &amp;#8216;http://yui.yahooapis.com/gallery-2010.03.02-18/build/gallery-slideshow/gallery-slideshow-min.js&amp;#8217;,
            requires: [&amp;#8216;widget&amp;#8217;],
            optional: [&amp;#8216;anim&amp;#8217;],
            supersedes: []
      }
     }
}).use(&amp;#8216;gallery-slideshow&amp;#8217;, &amp;#8216;anim&amp;#8217;, function(Y) {
    var ss = new Y.SlideShow({
        boundingBox: &amp;#8216;#cat-slideshow&amp;#8217;,
        height: 500, width: 500,
        animation: new Y.Anim({from:{opacity:1.0}, to:{opacity:0.0}}),
        images: [
            { src: &amp;#8220;/2010/03/04/S3010125.JPG&amp;#8221; },
            { src: &amp;#8220;/2010/03/04/S3010142.JPG&amp;#8221; },
            { src: &amp;#8220;/2010/03/04/S3010171.JPG&amp;#8221; },
            { src: &amp;#8220;/2010/03/04/S3010176.JPG&amp;#8221; },
            { src: &amp;#8220;/2010/03/04/S3010197.JPG&amp;#8221; },
            { src: &amp;#8220;/2010/03/04/S3010248.JPG&amp;#8221; }
        ],
        delay: 4000
    });
    ss.render();
});
&lt;/textarea&gt;&lt;/p&gt;

&lt;p&gt;The CSS that it requires is straightforward, and is part of the widget&amp;#8217;s assets:&lt;/p&gt;

&lt;p&gt;&lt;textarea class="code css"&gt;
.yui-slideshow 
{
    overflow: hidden;
}&lt;/p&gt;

&lt;p&gt;.yui-slideshow-content
{
    position: relative;
}
&lt;/textarea&gt;&lt;/p&gt;

&lt;p&gt;The widget will automatically take care of placing the images in the upper-left hand corner of the widget&amp;#8217;s content box, as well as cycling through all the images using the transition sent in via the animation configuration option.&lt;/p&gt;

&lt;p&gt;The core of slideshow is &lt;em&gt;mostly&lt;/em&gt; done at this point. I plan to add support for the an image to transition in, instead of only having the top image transition out. Most functionality will likely be added via the plugin framework. And I have several plugins planned.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Titles - Adds the widget header which will be populated with the &amp;#8216;title&amp;#8217; value from the images array.&lt;/li&gt;
&lt;li&gt;Descriptions - Like Titles, but in the footers. I&amp;#8217;m thinking this will take either a string or a function to generate the content of the footer div.&lt;/li&gt;
&lt;li&gt;Image Centering - This will center all the images in the content box, allowing the slideshow to consist of images of different sizes.&lt;/li&gt;
&lt;li&gt;Image Navigation - Buttons (probably images with click events, but you get the idea) which will allow the user to force transition between images.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The plugin framework is great because it allows you to customize a widget with exactly the kind of features you need. There are a lot of other kinds of plugins that would be appropriate, and I&amp;#8217;m certainly open to feature requests, or pull requests would be better!&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JK8thANqEaJXiibz7zH1AJu3pOA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JK8thANqEaJXiibz7zH1AJu3pOA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JK8thANqEaJXiibz7zH1AJu3pOA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JK8thANqEaJXiibz7zH1AJu3pOA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/UqDp0rk1qSw" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/03/introducing-gallery-slideshow-for-yui3.html</feedburner:origLink></entry>

<entry>
    <title>Integrated Circuit Design as a Game</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/ev1adBkD50g/integrated-circuit-design-as-a-game.html" />
    <id>tag:blog.foxxtrot.net,2010://1.398</id>

    <published>2010-03-03T02:27:58Z</published>
    <updated>2010-03-03T03:11:19Z</updated>

    <summary>Saw this on the Make Magazine Blog today, but it’s a little game called KOHCTPYKTOP, which is Russian, and loosely pronounced ‘Constructor’. It’s centered around the idea of creating simple integrated circuits by laying metal and silicon down on a...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Games" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="design" label="Design" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="electronics" label="Electronics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="Games" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Saw this on the &lt;a href=""&gt;Make Magazine Blog&lt;/a&gt; today, but it&amp;#8217;s a little game called &lt;a href="http://www.zachtronicsindustries.com/?p=710"&gt;KOHCTPYKTOP&lt;/a&gt;, which is Russian, and loosely pronounced &amp;#8216;Constructor&amp;#8217;. It&amp;#8217;s centered around the idea of creating simple integrated circuits by laying metal and silicon down on a design surface and running them against expected voltage readouts.&lt;/p&gt;

&lt;p&gt;This is a great little puzzle game, and I know that if you&amp;#8217;ve any interest in electronics, you&amp;#8217;ll probably enjoy it. When you&amp;#8217;re not pulling your hair out in frustration that is&amp;#8230;&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZvJHC-XdwHvm3NK6CJZUYGp8DFM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvJHC-XdwHvm3NK6CJZUYGp8DFM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZvJHC-XdwHvm3NK6CJZUYGp8DFM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvJHC-XdwHvm3NK6CJZUYGp8DFM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/ev1adBkD50g" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/03/integrated-circuit-design-as-a-game.html</feedburner:origLink></entry>

<entry>
    <title>Genetically Modified Organisms to Destroy Organics?</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/vum9Zk9ZE1g/genetically-modified-organisms-to-destroy-organics.html" />
    <id>tag:blog.foxxtrot.net,2010://1.396</id>

    <published>2010-03-01T23:46:11Z</published>
    <updated>2010-03-01T23:47:22Z</updated>

    <summary>The USDA is currently accepting public comments on the issue of allowing a Genetically Modified Alfalfa plant developed by Monsanto, which could, by the USDA’s own research, infect organic alfalfa farms, potentially causing them to lose their ‘organic’ labeling. Needless...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Food" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="alfalfa" label="Alfalfa" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="democracy" label="Democracy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="food" label="Food" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gmo" label="GMO" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="usda" label="USDA" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;The USDA is currently accepting public comments on the issue of allowing a Genetically Modified Alfalfa plant developed by Monsanto, which could, by the USDA&amp;#8217;s own research, infect organic alfalfa farms, potentially causing them to lose their &amp;#8216;organic&amp;#8217; labeling. Needless to say, many people are upset about it, not the least of which are the people at Food Democracy NOW!, who &lt;a href="http://fdn.actionkit.com/cms/sign/make_a_stand_for_organics/"&gt;want your comments&lt;/a&gt;. Now, this product has made it past USDA environmental review, that, in theory, shows that the environmental impact of this GMO crop will fall within acceptable levels, however those are defined. &lt;/p&gt;

&lt;p&gt;FDN is calling this something that &amp;#8216;threatens the very fabric of the organic industry.&amp;#8217; Now, I think that battle was lost years ago, when Organic was defined in such a way that the biggest players in Organic are companies like Kraft and Heinz, but the real issue here, in my opinion, is the danger of these GMO crops. Not that they&amp;#8217;ll cause health issues with those who consume them, but rather the danger to the ecosystem, particularly when you &lt;a href="http://www.regulations.gov/search/Regs/home.html#docketDetail?R=APHIS-2007-0044"&gt;look at the docket&lt;/a&gt; and realize that this GMO is only meant to be herbicide-resistant. A so-called &amp;#8216;Roundup Ready&amp;#8217; crop.&lt;/p&gt;

&lt;p&gt;It is the nature of agriculture to support the cultivation of certain plants at the cost of others, however, with these &amp;#8216;roundup ready&amp;#8217; crops, it encourages wholesale dumping of these chemical plant-killers in manners that don&amp;#8217;t necessarily control the application of the chemical very well, which can kill plenty of plant life that is found in areas external of the GMO crop, further reducing plant diversity (and most likely insect/animal diversity by extension) in those areas. Plus, since the plant has been modified to be difficult to kill, when it does spread to non-GMO versions, it becomes impossible to seperate the GMO version from the non-GMO version, further reducing biodiversity. It is this cross-breeding between GMO and non-GMO life, and the fact that the non-GMO life is almost guaranteed to be the dominant form over time, that worries many ecologists.&lt;/p&gt;

&lt;p&gt;The monoculture present in modern agrictulture is already worrying, but has, until recently, still been based on traditional selection, with change in an organism happening slowly over many generations, based solely on selecting traits based on what was most desirable in the current generation. With GMOs, we can greatly change very fundemental things about an organism in a single generation, and the question that hasn&amp;#8217;t been answered in a manner that is acceptable to macroecologists is if it&amp;#8217;s even possible to do that in a way that doesn&amp;#8217;t have potentially expensive ripples. I suspect that the answer to that question is that no, we can&amp;#8217;t have GMOs that don&amp;#8217;t have a severe impact on the ecosystem around them, and I don&amp;#8217;t think we&amp;#8217;re ready to be excercising those changes.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RzCFdXqXPb_F-MaaV43CyJqDwBA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RzCFdXqXPb_F-MaaV43CyJqDwBA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RzCFdXqXPb_F-MaaV43CyJqDwBA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RzCFdXqXPb_F-MaaV43CyJqDwBA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/vum9Zk9ZE1g" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/03/genetically-modified-organisms-to-destroy-organics.html</feedburner:origLink></entry>

<entry>
    <title>Blocking "Domain Smacks" in Apache</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/23S0C6HnxEc/blocking-domain-smacks-in-apache.html" />
    <id>tag:blog.foxxtrot.net,2010://1.395</id>

    <published>2010-02-25T16:00:00Z</published>
    <updated>2010-03-03T02:03:53Z</updated>

    <summary>Recently, some intrepid person decided to buy uwrejects.com and have it show Washington State University’s website. Frankly, I thought it was pretty amusing, but there were a fair number of concern by certain excecutives at the institution. However, it did...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="apache" label="Apache" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="http" label="HTTP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="redirection" label="Redirection" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="revision3" label="Revision3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Recently, some intrepid person decided to buy &lt;a href="http://uwrejects.com"&gt;uwrejects.com&lt;/a&gt; and have it show &lt;a href="http://www.wsu.edu"&gt;Washington State University&amp;#8217;s&lt;/a&gt; website. Frankly, I thought it was pretty amusing, but there were a fair number of concern by certain excecutives at the institution. However, it did seem to remind me of the concept, of the &amp;#8220;Domain Smack&amp;#8221;&lt;/p&gt;

&lt;p&gt;&lt;embed class="rev3PlayerEmbed" type="application/x-shockwave-flash" src="http://revision3.com/player-v4512" allowFullScreen="true" quality="high" allowScriptAccess="always" width="555" height="312" flashvars="startTime=356&amp;amp;endTime=403" /&gt;&lt;/p&gt;

&lt;p&gt;Alright, sorry for the ad (I&amp;#8217;m not even getting paid for that), but it explains what the hell a domain smack is.&lt;/p&gt;

&lt;p&gt;So, what do you do when some jokester decides to domain smack you, and you (or your boss) is really concerned with it? Just a few rules with mod&lt;em&gt;rewrite, and you&amp;#8217;ll be fine, on Apache at least. IIS and other servers can do this as well, and IIS can even import Apache &lt;a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html"&gt;mod&lt;/em&gt;rewrite&lt;/a&gt; rules easily.&lt;/p&gt;

&lt;p&gt;&lt;textarea class="code bash"&gt;
RewriteEngine on
RewriteCond %{HTTP_REFERER} smackingdomain.com
RewriteRule .+ [F] # Return 403 Forbidden
RewriteRule .+ http://jokestersite.com/ [R] # Redirect back on the joker.
&lt;/textarea&gt;&lt;/p&gt;

&lt;p&gt;The syntax is fairly straightforward. Turn the RewriteEngine on (if you haven&amp;#8217;t used it yet in the .htaccess file), check the Referer header (which is misspelled in the specification) for the smackingdomain, then rewrite ANY URL (the .+) to either return forbidden or redirect back at whomever has decided to make fun of you.&lt;/p&gt;

&lt;p&gt;At the end of the day, WSU is seriously considering doing nothing. Which is good, because it&amp;#8217;s better to have a sense of humour about such things. However, good mastery of conditional URL Rewriting rules are good to have, and I&amp;#8217;ll probably do some more advanced stuff with it later, since the documentation lacks a lot of examples which could be really nice to play with.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9qStG7nohQX9PSSmR6EFHxi0Emo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9qStG7nohQX9PSSmR6EFHxi0Emo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9qStG7nohQX9PSSmR6EFHxi0Emo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9qStG7nohQX9PSSmR6EFHxi0Emo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/23S0C6HnxEc" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/blocking-domain-smacks-in-apache.html</feedburner:origLink></entry>

<entry>
    <title>Genetically Engineered Pain Insensitivity Misses the Point</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/aVV__-rQGPA/genetically-engineered-pain-insensitivity-misses-the-point.html" />
    <id>tag:blog.foxxtrot.net,2010://1.394</id>

    <published>2010-02-22T23:39:46Z</published>
    <updated>2010-02-22T23:40:48Z</updated>

    <summary>As reported by the New York Times and Change.Org’s Sustainable Food Blog, researchers at the University of Toronto and Washington University have devised a means to make mammals insensitive to pain. So far, they’ve only worked on mice, but the...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Food" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cafo" label="CAFO" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="food" label="Food" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gmo" label="GMO" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="research" label="Research" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="safety" label="Safety" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="science" label="Science" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;As reported by the &lt;a href="http://www.nytimes.com/2010/02/19/opinion/19shriver.html"&gt;New York Times&lt;/a&gt; and &lt;a href="http://food.change.org/blog/view/neuroscientists_engineer_animals_insensitive_to_pain"&gt;Change.Org&amp;#8217;s Sustainable Food Blog&lt;/a&gt;, researchers at the &lt;a href="http://www.utoronto.ca/"&gt;University of Toronto&lt;/a&gt; and &lt;a href="http://www.wustl.edu/"&gt;Washington University&lt;/a&gt; have devised a means to make mammals insensitive to pain. So far, they&amp;#8217;ve only worked on mice, but the protien that they&amp;#8217;ve genetically engineered away from the mice is common to pretty much all mammals.&lt;/p&gt;

&lt;p&gt;The writers reporting on this are discussing the development due to how it could impact &lt;a href="http://en.wikipedia.org/wiki/CAFO"&gt;commercial animal production&lt;/a&gt; in the US, which is rife with animal cruely abuses, like &lt;a href="http://en.wikipedia.org/wiki/Veal#Production"&gt;veal production&lt;/a&gt; in boxes, or &lt;a href="http://www.depts.ttu.edu/liru_afs/pdf/CANNIBALISMINGROWINGPIGS.pdf"&gt;docking of pigs tails&lt;/a&gt; to keep them from biting each other&amp;#8217;s tails.  The argument is that by making the animals insensitive to pain, they are no longer as effected by the unpleasant conditions in which they live. Of course, it could cause issues with the animals not moving away from potentially dangerous situations because they are simply not bothered by pain. For instance, part of the reason pigs tails are docked as so that they&amp;#8217;ll fight back if their tail gets bit. Without sensitivity to pain, they&amp;#8217;re not likeyly to fight back, which raises the threat of infection to the animal.&lt;/p&gt;

&lt;p&gt;However, the biggest problem is that this research, while interesting, wouldn&amp;#8217;t actually solve the problem. From an animal rights perspective, it probably encourages even more egregious abuses, since poor handlers will likely be rougher with the animals than before, simply because the stimulus they were providing is no longer effective. Plus, how does the lack of perception of pain make the actions any less offensive? But ignoring the issue of animal rights and cruelty, this solution does &lt;em&gt;nothing&lt;/em&gt; to solve the problems that modern commercial animal production causes elsewhere.&lt;/p&gt;

&lt;p&gt;The environmental impact of CAFOs? Could get worse, since the animals insensitivity to pain encourages even higher densities. Which encourages greater centralization. Which increases the food safety risk. While the removal of this protien is unlikely to have any negative health effects on it&amp;#8217;s own, and animal breeding is easier to control than plant breeding, there isn&amp;#8217;t much risk of some of dangers of genetically modified food that are often raised, but the most likely end results of this technology are highly negative.&lt;/p&gt;

&lt;p&gt;The research is interesting, and the knowledge of the mammalian pain experience could be used to generate some new pain treatments. However, as a technology with reasonable application in modern commercial animal production&amp;#8230;.I don&amp;#8217;t see it. And I see it making things worse.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qGDCwNAmfpuWPilbT7AyIu9zGVs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qGDCwNAmfpuWPilbT7AyIu9zGVs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qGDCwNAmfpuWPilbT7AyIu9zGVs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qGDCwNAmfpuWPilbT7AyIu9zGVs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/aVV__-rQGPA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/genetically-engineered-pain-insensitivity-misses-the-point.html</feedburner:origLink></entry>

<entry>
    <title>Hacking MSTest out of Visual Studio</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/-GG_8m6gkTQ/hacking-mstest-out-of-visual-studio.html" />
    <id>tag:blog.foxxtrot.net,2010://1.393</id>

    <published>2010-02-19T16:00:00Z</published>
    <updated>2010-02-17T23:41:50Z</updated>

    <summary>For a while, we’ve been using Hudson as our Continuous Integration server for a while now, but we had a problem where the unit tests we had written were all in MSTest. However, MSTest doesn’t like to be installed without...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="hacking" label="Hacking" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="msbuild" label="MSBuild" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mstest" label="MSTest" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;For a while, we&amp;#8217;ve been using &lt;a href="http://hudson-ci.org/"&gt;Hudson&lt;/a&gt; as our Continuous Integration server for a while now, but we had a problem where the unit tests we had written were all in MSTest. However, MSTest doesn&amp;#8217;t like to be installed without all of Visual Studio. Luckily, Mark Kharitonov at &lt;a href="http://www.shunra.com/"&gt;Shunra&lt;/a&gt; has figured it out and &lt;a href="http://www.shunra.com/shunrablog/index.php/2009/04/23/running-mstest-without-visual-studio/"&gt;written up a post about it&lt;/a&gt;. I&amp;#8217;ll only note two things I had to do to make his solution work:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I had to add the VS2008Stub\Common7\IDE folder to the global PATH so that mstest.exe could be found (and restart Hudson so Hudson would update it&amp;#8217;s PATH)&lt;/li&gt;
&lt;li&gt;Hack MSTest to allow me to use the /testmetadata and /testlist options.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I had to do #2, because the &lt;a href="http://wiki.hudson-ci.org/display/HUDSON/MSTest+Plugin"&gt;MSTest plugin for hudson&lt;/a&gt; seems to only want a single TRX file, which would have required me writing a bunch of MSBuild stuff I didn&amp;#8217;t feel up to writing so that MSTest would run once for the entire build, instead of once per Test DLL file. By using the /testmetadata option, I can set up a vsmdi file and tell it which tests to run, which also provides me the added benefit of disabling certain tests that I might not want to run for some reason or another. In my case, I had a few tests that went against the database that really need to be rebuilt using a Mocking framework. They can&amp;#8217;t run on the CI server (the CI server doesn&amp;#8217;t have access to the Database), but they have some mild use currently on my local machine, so I don&amp;#8217;t want to simply exclude them.&lt;/p&gt;

&lt;p&gt;Anyway, MSTest, it turns out, actually checks your Visual Studio license to determine how it should function. Basically, it offers a few more options if you have a Visual Studio license, and a few more options if you have a Team System license. We don&amp;#8217;t have Team System (or we&amp;#8217;d probably be using Team Build anyway), but we do have Visual Studio licenses. Of course, they don&amp;#8217;t tell you that the binary does different things based on a registry key, that&amp;#8217;s what my good friend &lt;a href="http://www.red-gate.com/products/reflector/"&gt;.NET Reflector&lt;/a&gt; is for.&lt;/p&gt;

&lt;p&gt;Due to the fact that Reflector actually displays disassembled code, code I didn&amp;#8217;t write, and I sure don&amp;#8217;t have permission to redistribute, I&amp;#8217;m going to gloss over what exactly I did to figure out what to do in the next paragraph. I&amp;#8217;ll likely put together a new post in the future about hacking .NET using Reflector, but it will be on non-encumbered code.&lt;/p&gt;

&lt;p&gt;It turns out there are five special codes that MSTest looks for to enable or disable features, namely the Test List Editor (what I was interested in), Team Developer Tools, Tfs Integration, Remote Execution, and Authoring Non Core Tests. I&amp;#8217;m not entirely sure what those last four are (though I plan to investigate), since as I said, I only really need the first one. Interestingly enough, the way they&amp;#8217;ve implemented this security, it&amp;#8217;s a pretty simple hack to enable the ones that you aren&amp;#8217;t licensed to use. Which wouldn&amp;#8217;t be the right thing to do, which is why I&amp;#8217;m not providing those codes, or even the actual location of the codes you shouldn&amp;#8217;t have, to you, my reader. I&amp;#8217;m covering my own ass.&lt;/p&gt;

&lt;p&gt;Open up Regedit on your development box, and point it to HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\Licenses, and you&amp;#8217;ll see a list of keys (probably only one, but it could be more than one). Export the keys you see under this hive, and then import them into your CI server, and it should automagically unlock the features you were missing on CI, check the /help output to be sure. Note: On a 64-bit system, the Hive is HKLM\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Licenses. Just make sure you export and import to and from the correct location, if there is a difference in bit-width between your two boxes.&lt;/p&gt;

&lt;p&gt;Now, you should have all the MSTest features you had on your development box on your CI box, and you didn&amp;#8217;t have to do a full install of Visual Studio in CI.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HfNkQYP1SxyKgAv-12mt_07OsfQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HfNkQYP1SxyKgAv-12mt_07OsfQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HfNkQYP1SxyKgAv-12mt_07OsfQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HfNkQYP1SxyKgAv-12mt_07OsfQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/-GG_8m6gkTQ" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/hacking-mstest-out-of-visual-studio.html</feedburner:origLink></entry>

<entry>
    <title>Copying Files out of the Windows GAC</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/zoWqX_AWwco/copying-files-out-of-the-windows-gac.html" />
    <id>tag:blog.foxxtrot.net,2010://1.392</id>

    <published>2010-02-18T16:00:00Z</published>
    <updated>2010-02-17T23:39:49Z</updated>

    <summary>Sometimes you need to get a file out of the GAC on Windows, either to look at in someting like .NET Reflector, or maybe to copy a DLL (licensed, of course) to a server when you don’t need (or want)...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="gac" label="GAC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="terminal" label="Terminal" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Sometimes you need to get a file out of the GAC on Windows, either to look at in someting like &lt;a href="http://www.red-gate.com/products/reflector/"&gt;.NET Reflector&lt;/a&gt;, or maybe to copy a DLL (licensed, of course) to a server when you don&amp;#8217;t need (or want) all the other cruft that the installer might drop on the box. I&amp;#8217;m not going to judge.&lt;/p&gt;

&lt;p&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="GAC View in Windows Explorer" src="http://blog.foxxtrot.net/2010/02/17/gac_copy_1.png" width="599" height="419" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The GAC can be viewed on a Windows box by heading pointing Explorer to %windir%\assembly, but Explorer abstracts that folder away so that you can only do limited things with items in the GAC. They&amp;#8217;ve even gone so far as to make it impossible using any of the GUI filesystem tools in Windows to navigate into the subfolder heirarchy. So, when faced with a GUI that just won&amp;#8217;t cooperate, I turn to my trusty friend, the command line.&lt;/p&gt;

&lt;p&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="GAC Directory Structure from Command Prompt" src="http://blog.foxxtrot.net/2010/02/17/gac_copy_2.png" width="531" height="279" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Now, I can see the structure of the files that I&amp;#8217;m looking for, and if I look back at the Explorer view, it even provides me clues on where to look. For instance, the fifth column, Processor Architecture, tells me which GAC_ folder I need to look in. For me, I&amp;#8217;m almost always interested in GAC&lt;em&gt;MSIL. Once in that folder, there is a new folder for each unqiue entry in the Assembly Name column for the given Architecture, followed by a group of folders following the naming scheme {Version}&lt;/em&gt;_{PublicKeyToken} (that&amp;#8217;s two underscores between Version and Public Key Token). Inside of this last folder, is my DLL, which I can copy out to another location.&lt;/p&gt;

&lt;p&gt;For instance, System.Core, the core DLL for .NET that everyone has anyway, can be found at: %windir%\assembly\GAC&lt;em&gt;MSIL\System.Core\3.5.0.0&lt;/em&gt;_b77a5c561934e089\System.Core.dll&lt;/p&gt;

&lt;p&gt;&lt;span class="mt-enclosure mt-enclosure-image" style="display: inline;"&gt;&lt;img alt="GAC Directory Drilldown from Command Prompt" src="http://blog.foxxtrot.net/2010/02/17/gac_copy_3.png" width="638" height="298" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Now that you know how to find the files, it&amp;#8217;s trivial to copy them to wherever you need to, for whatever you&amp;#8217;re looking to do. Of course, if you use this to break a license or anything else shitty, it&amp;#8217;s not my fault.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-jd9WMB6UrUeJnIiJN4_s_P5-wA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-jd9WMB6UrUeJnIiJN4_s_P5-wA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-jd9WMB6UrUeJnIiJN4_s_P5-wA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-jd9WMB6UrUeJnIiJN4_s_P5-wA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/zoWqX_AWwco" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/copying-files-out-of-the-windows-gac.html</feedburner:origLink></entry>

<entry>
    <title>BackTrack4 SD Card with Asus Eee PC</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/yBheSKSLeK8/backtrack4-sd-card-with-asus-eee-pc.html" />
    <id>tag:blog.foxxtrot.net,2010://1.391</id>

    <published>2010-02-12T17:13:00Z</published>
    <updated>2010-02-12T17:38:23Z</updated>

    <summary>I’ve been watching Hak5 since it hit Revision3 last year, and I’ve generally enjoyed the show. Recently, host Darren Kitchen talked about creating a persistent Backtrack boot-able flash device. Since I’d be using this with my EeePC (or another laptop),...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="backtrack" label="Backtrack" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="eeepc" label="Eee PC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hacking" label="Hacking" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="hak5" label="Hak5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="revision3" label="Revision3" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="security" label="Security" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;I&amp;#8217;ve been watching &lt;a href="http://www.hak5.org/"&gt;Hak5&lt;/a&gt; since it hit &lt;a href="http://www.revision3.com/"&gt;Revision3&lt;/a&gt; last year, and I&amp;#8217;ve generally enjoyed the show. Recently, host &lt;a href="http://darrenkitchen.net/"&gt;Darren Kitchen&lt;/a&gt; talked about &lt;a href="http://revision3.com/hak5/bt4#rev3Player"&gt;creating a persistent&lt;/a&gt; &lt;a href="http://www.backtrack-linux.org/"&gt;Backtrack&lt;/a&gt; boot-able flash device. Since I&amp;#8217;d be using this with my EeePC (or another laptop), I decided that the idea of running an OS off a thumb drive for any period of time was scary, so I decided to go the SD Card route.&lt;/p&gt;

&lt;p&gt;Unfortunately, Revision 3 doesn&amp;#8217;t provide good show notes for how this was done, Hak5.org is down, and Backtrack&amp;#8217;s own page on a persistent USB drive is completely empty. The provided content is taken almost verbatim from Darren&amp;#8217;s presentation on the linked video above, and I&amp;#8217;ll embed the video after the instructions. I just felt that a write-up would be convenient.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the &lt;a href="http://www.backtrack-linux.org/downloads/"&gt;Backtrack4 ISO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Set up bootable media with Backtrack, either burn a CD, or a thumb drive using &lt;a href="http://unetbootin.sourceforge.net/"&gt;unetbootin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Boot BT4, put your SD Card in your computer and find out what device it mounted as. Enter &lt;code&gt;dmesg | grep hd.\|sd.&lt;/code&gt; at the command prompt, the bottom entries will likely be the correct ones. On my system, it was /dev/sdc so that&amp;#8217;s what I use.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;parted /dev/sdc&lt;/code&gt; (I vary from Darren on this)&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;print&lt;/code&gt; at the command prompt, odds are you&amp;#8217;ll have 1 partition. Delete all the numbered partitions with the &lt;code&gt;rm&lt;/code&gt; command.&lt;/li&gt;
&lt;li&gt;Create the first filesystem with &lt;code&gt;mkpartfs primary fat32 0 2.5GB&lt;/code&gt; This will create a two and a half gigabyte, fat32 partition as your main data store.&lt;/li&gt;
&lt;li&gt;Make Partition 1 bootable with &lt;code&gt;set 1 boot on&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Create Partition 2 with &lt;code&gt;mkpart primary ext3 2.5GB 100%&lt;/code&gt;. This will fill the rest of the device with a empty partition. I used an 8GB drive, but the 100% will fill the rest of the drive.&lt;/li&gt;
&lt;li&gt;Exit parted with &lt;code&gt;quit&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;mkfs.ext3 -b 4096 -L casper-rw /dev/sdc&lt;/code&gt; to create the persistent area on the storage.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;mkdir /mnt/sdc1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;mount /dev/sdc1 /mnt/sdc1&lt;/code&gt; to mount the first partition you created.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;rsync -r /media/cdrom0/ /mnt/sdc1&lt;/code&gt; to copy all the files from the boot media to the boot partition. This will take some time.&lt;/li&gt;
&lt;li&gt;Rum &lt;code&gt;grub-install --no-floppy --root-directory=/dev/sdc1 /dev/sdc&lt;/code&gt; to install grub on your sd card.&lt;/li&gt;
&lt;li&gt;Edit /mnt/sdc1/boot/grub/menu.lst in your favorite editor&lt;/li&gt;
&lt;li&gt;Change the line &amp;#8216;default 0&amp;#8217; to &amp;#8216;default 4&amp;#8217; to load in persistent mode by default.&lt;/li&gt;
&lt;li&gt;To the end of the kernel line for the Persistent Live CD option, add &amp;#8216;vga=0x317&amp;#8217;&lt;/li&gt;
&lt;li&gt;Shutdown and reboot.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;embed class="rev3PlayerEmbed" type="application/x-shockwave-flash" src="http://revision3.com/player-v4452" allowFullScreen="true" quality="high" allowScriptAccess="always" width="555" height="312" flashvars="startTime=508&amp;amp;endTime=1169" /&gt;&lt;/p&gt;

&lt;p&gt;EeePC Notes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;My EeePC is an original 8G, meaning that it&amp;#8217;s running a Celeron M, not an Atom, and it has the smaller (6&amp;#8221;) screen. &lt;/li&gt;
&lt;li&gt;To select your boot device from the Eee PC Menu, hit the ESC key when the system starts to boot (these things boot fast, so hit it quick) and choose the &amp;#8216;USB2.0CardReader&amp;#8217; option to boot from SD. If you&amp;#8217;re booting from a thumbdrive and your thumbdrive has a &lt;a href="http://en.wikipedia.org/wiki/U3"&gt;U3&lt;/a&gt; partition, odds are you&amp;#8217;ll want the first one on the list. If it refuses to boot it, reboot and try the other.&lt;/li&gt;
&lt;li&gt;The system is currently booting into a text console for me, not the GUI. If I want the GUI, I can just type &amp;#8216;startx&amp;#8217; and it comes right up. I&amp;#8217;m trying to solve this issue, and when I do, I&amp;#8217;ll update this post.&lt;/li&gt;
&lt;/ol&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Pb2GTWUuvQZeBYsJb1ELlcND7sI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pb2GTWUuvQZeBYsJb1ELlcND7sI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Pb2GTWUuvQZeBYsJb1ELlcND7sI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Pb2GTWUuvQZeBYsJb1ELlcND7sI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/yBheSKSLeK8" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/backtrack4-sd-card-with-asus-eee-pc.html</feedburner:origLink></entry>

<entry>
    <title>Software Testing Club Magazine</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/U4Q7nSGCjjY/software-testing-club-magazine.html" />
    <id>tag:blog.foxxtrot.net,2010://1.390</id>

    <published>2010-02-11T16:00:00Z</published>
    <updated>2010-02-10T22:34:40Z</updated>

    <summary>The Software Testing Club, an organization I had never heard of before Ara Pulido who works for Canonical on the QA Team, mentioned it on her blog, recently released the first issue of the own Community Magazine. Having downloaded and...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Programming" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="community" label="Community" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="magazines" label="Magazines" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="Software" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="testing" label="Testing" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;The &lt;a href="http://wiki.softwaretestingclub.com/"&gt;Software Testing Club&lt;/a&gt;, an organization I had never heard of before &lt;a href="http://ubuntutesting.wordpress.com/"&gt;Ara Pulido&lt;/a&gt; who works for &lt;a href="http://canonical.com/"&gt;Canonical&lt;/a&gt; on the &lt;a href="https://wiki.ubuntu.com/QATeam"&gt;QA Team&lt;/a&gt;, mentioned it on her blog, recently released the first issue of the own &lt;a href="http://wiki.softwaretestingclub.com/The+Software+Testing+Club+Magazine+-+No+1"&gt;Community Magazine&lt;/a&gt;. Having downloaded and read it over the last few days, I was pretty pleased with the content, and will likely continue to read, especially since my testing chops could use some improvement as I&amp;#8217;m expected to be a developer and tester in my current position.&lt;/p&gt;

&lt;p&gt;And I would argue that even developers not in dedicated test roles should read this magazine, since it provides good feedback, especially on bug reporting and the mechanisms (and importance) of testing. Unfortunately, the Magazine doesn&amp;#8217;t seem to have made any efforts to sort of bridge that gap between developers and testers. To be fair, it was written by people focusing on test, and developers have often been harsh toward testers, so I&amp;#8217;m not necessarily &lt;em&gt;blaming&lt;/em&gt; them for the making fun of developers that&amp;#8217;s done. I merely found it interesting how prevalent media around this conflict are.&lt;/p&gt;

&lt;p&gt;The only real complaint I have with the magazine is that it does have some editing issue. Sentences getting cut off at page breaks, obvious typos, etc. I hope that the STC can improve their processes and put out a more polished community magazine in the future. Still, for a first effort it&amp;#8217;s a good read, and it has plenty of information I&amp;#8217;m still mulling over.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hAPDI6-V3nXoUpUF6r_Z-mmi7a4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAPDI6-V3nXoUpUF6r_Z-mmi7a4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hAPDI6-V3nXoUpUF6r_Z-mmi7a4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAPDI6-V3nXoUpUF6r_Z-mmi7a4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/U4Q7nSGCjjY" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/software-testing-club-magazine.html</feedburner:origLink></entry>

<entry>
    <title>Michael Pollan Speech at WSU</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/lNWy6Hzf4rk/michael-pollan-speech-at-wsu.html" />
    <id>tag:blog.foxxtrot.net,2010://1.389</id>

    <published>2010-02-08T16:00:00Z</published>
    <updated>2010-02-08T15:31:57Z</updated>

    <summary>Several weeks back, on January 13, Michael Pollan spoke at Washington State Univeristy as part of this years Common Reading program. Having read both The Omnivore’s Dilemma and The Eater’s Manifesto, I was excited to have the opportunity to listen...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Food" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="agribusiness" label="Agribusiness" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="agriculture" label="Agriculture" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="food" label="Food" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="michaelpollan" label="Michael Pollan" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="policy" label="Policy" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Several weeks back, on January 13, Michael Pollan spoke at Washington State Univeristy as part of this years &lt;a href="http://commonreading.wsu.edu"&gt;Common Reading&lt;/a&gt;  program. Having read both &lt;a href="http://www.amazon.com/Omnivores-Dilemma-Natural-History-Meals/dp/0143038583/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1265533308&amp;amp;sr=8-1"&gt;The Omnivore&amp;#8217;s Dilemma&lt;/a&gt;  and &lt;a href="http://www.amazon.com/Defense-Food-Eaters-Manifesto/dp/0143114964/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1265533344&amp;amp;sr=8-1"&gt;The Eater&amp;#8217;s Manifesto&lt;/a&gt;,  I was excited to have the opportunity to listen to the man speak (though, like an idiot, I forgot to bring my physical copy of the Manifesto for signing). I&amp;#8217;ve failed to write about this sooner, primarily because I haven&amp;#8217;t taken the time, but I did post during the event to my &lt;a href="http://twitter.com/foxxtrot/"&gt;twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At it&amp;#8217;s source, there wasn&amp;#8217;t a whole lot of surprises in his talk to people who&amp;#8217;ve read his work. He&amp;#8217;s been beating the same drum for quite a while, that modern food production is simply unsustainable.&lt;/p&gt;

&lt;p&gt;However, it was really interesting for him to be talking to a research institution with a rich history of agricultural research. He focused a lot on the role that an organization like WSU could play in reinventing agriculture, moving away from modern industrial practices to a method that is at the same time more traditional but also based on new, as yet undone, research into what makes the most effective post-Organic farming.&lt;/p&gt;

&lt;p&gt;In the agri-system Pollan envisions the farmer becomes an intimately involved steward of the land, ensuring balance between plant and livestock raising. For instance, one Argentian farm he described had found that growing several years of nitrogen-fixing cover crops, and raising grazing stock on those fields, allowed several years of nitrogen-stripping crops (wheat and others) to be planted in a field without requiring any additional chemical support for the farm.&lt;/p&gt;

&lt;p&gt;He spoke of an Urban Farm in Detroit that employs (with good wages) over a half-dozen people, and feeds many more, which is run mostly in greenhouses, using &lt;a href="http://en.wikipedia.org/wiki/Vermicomposting"&gt;vermicomposting&lt;/a&gt; to heat their facilities. They are even able to raise fish and watercress in a symbiotic system that, according to Pollan, produces nearly zero waste (I&amp;#8217;d have to see it to believe it, but it&amp;#8217;s an interesting thought). That particular farm is also covered in the most recent &lt;a href="http://www.hobbyfarms.com/urban-farm/home.aspx"&gt;Urban Farm&lt;/a&gt; magazine, which looks to be a promising publication.&lt;/p&gt;

&lt;p&gt;Pollan spoke often about creating a &amp;#8216;post-industrial&amp;#8217; form of agriculture based on this research, but I think that he might be downplaying the fundamental understanding of land management that almost all farmers had before the agri-revolution post-World War II. Still, codifying that understanding through the scientific process will be necessary to prove the viability of these methods.&lt;/p&gt;

&lt;p&gt;Pollan did discuss this briefly, but I think it needs to be focused greater on the necessity of changing the overall structure of the Western Diet. We need more farmers. We need to spend more on our food. And we need to eat less meat. Meat production is always going to be more resource intensive than growing vegetables. Catherine and I have tried to have at least two meals a week vegetarian. It&amp;#8217;s been working well, though I&amp;#8217;m not terribly well versed in cooking without meat.&lt;/p&gt;

&lt;p&gt;What Pollan didn&amp;#8217;t focus on as much as I thought he should, was the message that our expectations about food are not reasonable. We can&amp;#8217;t eat meat every day of the week. We can&amp;#8217;t expect to get any produce at any time. It&amp;#8217;s about expectation management, and I don&amp;#8217;t think Pollan expressed that enough. He did talk about it a bit, but fundamentally, it&amp;#8217;s the biggest problem, and the one that needs to be addressed to most.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z8f5iSZHpiZulrDLnBYbPbwvCO4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z8f5iSZHpiZulrDLnBYbPbwvCO4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z8f5iSZHpiZulrDLnBYbPbwvCO4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z8f5iSZHpiZulrDLnBYbPbwvCO4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/lNWy6Hzf4rk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/02/michael-pollan-speech-at-wsu.html</feedburner:origLink></entry>

<entry>
    <title>iPad Thoughts</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/CvxXEwL2tQg/ipad-thoughts.html" />
    <id>tag:blog.foxxtrot.net,2010://1.388</id>

    <published>2010-01-29T21:46:09Z</published>
    <updated>2010-01-29T21:47:32Z</updated>

    <summary>Alright, so I know everyone has heard of the iPad by now, but I thought I’d take a few moments to address the hype. First off, in the interest of full disclosure, I never had any intention of buying this...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Computing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="apple" label="Apple" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipad" label="iPad" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Alright, so I know everyone has heard of the &lt;a href="http://www.apple.com/ipad/"&gt;iPad&lt;/a&gt; by now, but I thought I&amp;#8217;d take a few moments to address the hype.&lt;/p&gt;

&lt;p&gt;First off, in the interest of full disclosure, I never had any intention of buying this device, even before the announcement, and I&amp;#8217;m much more interested in Android as a platform than iPhone. That said, it&amp;#8217;s the reasons I favor Android over iPhone that is behind a fair number of my complaints with the iPad.&lt;/p&gt;

&lt;p&gt;At the end of the day, the iPad is nothing more than a giant iPhone. And for a lot of people, that&amp;#8217;s all they wanted. Certainly there are experiences that can be realized on the device now that it has the larger display, the e-mail app (at least in landscape mode) was far more interesting. And there are plenty of more apps that will really shine on this display. But, the iPad has some problems that make it not just a non-starter for &lt;em&gt;me&lt;/em&gt;, but in my opinion, a completely waste of time for &lt;em&gt;everyone&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First, the &lt;a href="http://theflashblog.com/?p=1703"&gt;lack of Flash support&lt;/a&gt;. This even became an issue &lt;em&gt;during the presentation&lt;/em&gt;. I&amp;#8217;m not a huge fan of Flash, by any means, and I understand why it was left out of the iPhone. But, for a device of this class, it is simply inexcusable. There are thousands of games, videos, and other widgets dependent on Flash, rightly or wrongly. This may well change (I sincerely hope it does), but until then, this is required support. Especially for a device claiming to offer the &lt;em&gt;ultimate browsing experience&lt;/em&gt;. At the end of the day, if it can&amp;#8217;t run Hulu, it&amp;#8217;s a no buy.&lt;/li&gt;
&lt;li&gt;Closed app distribution mechanism. Especially since the mechanism that is available is controlled entirely by the whims of one organization, one with a history of poor definition of standards and practices, is inexcusable. Just because Apple doesn&amp;#8217;t want it on the iPad, doesn&amp;#8217;t mean that &lt;em&gt;I&lt;/em&gt; don&amp;#8217;t.&lt;/li&gt;
&lt;li&gt;Lack of support for development tools. Requiring all developers to be on Mac, specifically one running the latest software, cuts out a huge pool of potential developers. &lt;/li&gt;
&lt;li&gt;iPad and iPhone apps are completely separate. Porting an App to iPad isn&amp;#8217;t going to require building a completely new application. Yes, the code should port cleanly, but it still leads toward two divergent code bases that is going to require some work to keep in sync, if you intend to continue upgrading the software for both platforms with new functionality. You should simply be able to design new UI, and bind it up. Admittedly, Android can&amp;#8217;t do this yet (I don&amp;#8217;t think, though Android does have better support for multiple screen sizes). &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, most of those complaints don&amp;#8217;t matter to the &lt;em&gt;average&lt;/em&gt; user, but they do cement my decision to not be interested in buying this product. It&amp;#8217;s unfortunate, because it is nice hardware, but with a device like that, good hardware isn&amp;#8217;t enough when there are such fundamental problems with the software.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-2iSxl1fXr3Bw9pI2faAZAFoi8I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-2iSxl1fXr3Bw9pI2faAZAFoi8I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-2iSxl1fXr3Bw9pI2faAZAFoi8I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-2iSxl1fXr3Bw9pI2faAZAFoi8I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/CvxXEwL2tQg" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/01/ipad-thoughts.html</feedburner:origLink></entry>

<entry>
    <title>Thought's on Conan and NBC</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/tSYSAFRDV2U/thoughts-on-conan-and-nbc.html" />
    <id>tag:blog.foxxtrot.net,2010://1.387</id>

    <published>2010-01-22T16:00:00Z</published>
    <updated>2010-01-22T01:56:33Z</updated>

    <summary>As you’ve most likely heard by now, Conan O’Brien and NBC have reached a deal, wherein Conan will be off NBC as of Friday, and Conan will recieve $33 million, while his staff (some 200 people), split $12 million. I’m...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Television" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="conanobrien" label="Conan O'Brien" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nbc" label="NBC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="television" label="Television" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;As you&amp;#8217;ve most likely heard by now, &lt;a href="http://tv.msn.com/tv/article.aspx?news=453175&amp;amp;GT1=28103"&gt;Conan O&amp;#8217;Brien and NBC have reached a deal&lt;/a&gt;, wherein Conan will be off NBC as of Friday, and Conan will recieve $33 million, while his staff (some 200 people), split $12 million. I&amp;#8217;m guessing that constitutes some 6 months of severance for each staffer, but that&amp;#8217;s conjecture. Conan, being the classy man that he is, has said he&amp;#8217;ll be chipping in some of his severance to his staff.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve watched Conan for years on Late Night, and I haven&amp;#8217;t missed an episode his Tonight Show since it began seven months ago (thanks largely to &lt;a href="http://hulu.com/"&gt;Hulu&lt;/a&gt;. Needless to say, I&amp;#8217;m sad to see the end of Conan&amp;#8217;s time on NBC, but it is exciting to think of what he&amp;#8217;ll do next.&lt;/p&gt;

&lt;p&gt;NBC justifies their decision because Conan&amp;#8217;s been doing poor in the [Neilsen ratings]http://en.wikipedia.org/wiki/Nielsen_ratings) against David Letterman, compared to how Jay Leno was doing. Frankly, this isn&amp;#8217;t much of a surprise, since Dave and Jay both served a similar demographic, and Conan was attractive to a younger crowd. However, this is based &lt;em&gt;solely&lt;/em&gt; on the Neilsen Ratings, which frankly, I don&amp;#8217;t think are likely to be very accurate for Conan&amp;#8217;s demographic.&lt;/p&gt;

&lt;p&gt;Frankly, while I&amp;#8217;ve watched every single episode of The Tonight Show with Conan O&amp;#8217;Brien, the number that I&amp;#8217;ve watched live I can probably count on one hand. People my age, more and more, have decided to consume television differently, and in such a way that Neilsen&amp;#8217;s rating system simply can&amp;#8217;t measure. TV Executive&amp;#8217;s (or more accurately, advertising executives) are incapable of measuring success of programming by any measure other than (and frankly more reliable than) Neilsen&amp;#8217;s methods. Plus, though advertising on the Internet is getting more valuable, it&amp;#8217;s still a fraction of what advertisers are willing to spend on TV, even though the data to support the advertising is far worse.&lt;/p&gt;

&lt;p&gt;In the long run, I think NBC is betting on the wrong horse. Jay&amp;#8217;s well established, but his demographic is getting older, while Conan&amp;#8217;s demographic is still on it&amp;#8217;s way up. Mostly though, as Media changes, Conan&amp;#8217;s demographic is more willing to follow it where it&amp;#8217;s going, which in the long run is the real story here. However, despite &lt;a href="http://revision3.com/blog/2010/01/18/an-open-letter-to-conan-obrien/"&gt;Revision3&amp;#8217;s generous offer&lt;/a&gt;, I just don&amp;#8217;t see Conan taking the plunge to a fully Internet-based show, even though I believe there is a &lt;em&gt;very&lt;/em&gt; good chance Conan could make it work with the aide of savvy people like the folks at Rev3.&lt;/p&gt;

&lt;p&gt;I look forward to seeing where Conan goes next, though I&amp;#8217;d love if Letterman announced his retirement and Conan took over the Late Show, once again cementing that program&amp;#8217;s status as the &amp;#8216;Fuck NBC&amp;#8217; late night program (remember, NBC basically screwed Letterman out of the Tonight Show nearly twenty years ago). However, wherever Conan goes next, I know I&amp;#8217;ll be watching.&lt;/p&gt;

&lt;p&gt;Can&amp;#8217;t say I&amp;#8217;ll watch Jay though.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DrfG0sf2bRPyio51eB4REi-M17E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DrfG0sf2bRPyio51eB4REi-M17E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DrfG0sf2bRPyio51eB4REi-M17E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DrfG0sf2bRPyio51eB4REi-M17E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/tSYSAFRDV2U" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/01/thoughts-on-conan-and-nbc.html</feedburner:origLink></entry>

<entry>
    <title>Independent Game Competitions</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MadBeautifulIdeas/~3/LHRiIRPxKYA/independent-game-competitions.html" />
    <id>tag:blog.foxxtrot.net,2010://1.386</id>

    <published>2010-01-22T01:30:05Z</published>
    <updated>2010-01-22T01:30:48Z</updated>

    <summary>Since Revision 3 picked up Bytejacker about four months ago, I’ve been watching it weekly, and really enjoying the show. Bytejacker is a web show, that’s been on for over a year now, that every week takes a look at...</summary>
    <author>
        <name>Jeff Craig</name>
        
    </author>
    
        <category term="Games" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="Games" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="independentgames" label="Independent Games" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pygame" label="PyGame" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="python" label="Python" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pyweek" label="PyWeek" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tigsource" label="TIGSource" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blog.foxxtrot.net/">
        &lt;p&gt;Since &lt;a href="http://revision3.com/"&gt;Revision 3&lt;/a&gt; picked up &lt;a href="http://bytejacker.com/"&gt;Bytejacker&lt;/a&gt; about four months ago, I&amp;#8217;ve been watching it weekly, and really enjoying the show. Bytejacker is a web show, that&amp;#8217;s been on for over a year now, that every week takes a look at what&amp;#8217;s going on in the world of independent games. Part of the reason I took interest, was because a lot of these games are playable in Linux, either via native builds, or that they&amp;#8217;re flash-based browser games. It&amp;#8217;s been a great source of cool little games I probably would have never found otherwise.&lt;/p&gt;

&lt;p&gt;Part of why it&amp;#8217;s so cool, is that a fair number of the episodes highlight the games from &lt;a href="http://www.tigsource.com/"&gt;The Independent Gaming Source&lt;/a&gt;&amp;#8217;s &lt;a href="http://forums.tigsource.com/index.php?board=9.0"&gt;competitions&lt;/a&gt;, which they&amp;#8217;ve been doing for a little over a year now. These games are typically created by very small teams (or individuals), and while most aren&amp;#8217;t going to be blockbuster titles, there are some really awesome games available there.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m a fan of these sorts of competitions, having usually watched &lt;a href="http://www.pyweek.org/"&gt;PyWeek&lt;/a&gt; fairly closely, though I have yet to participate. PyWeek is cool because developers have 1 week to create their game using &lt;a href="http://www.pygame.org/"&gt;PyGame&lt;/a&gt;, &lt;a href="http://www.pyglet.org/"&gt;pyglet&lt;/a&gt;, or &lt;a href="http://pyopengl.sourceforge.net/"&gt;PyOpenGL&lt;/a&gt;.. TIGSource&amp;#8217;s games tend to be a bit more polished, since they don&amp;#8217;t have the week-long deadline, but PyWeek&amp;#8217;s entries are a pretty exciting example of what&amp;#8217;s possible in a short period of time.&lt;/p&gt;

&lt;p&gt;To date, I haven&amp;#8217;t seen any competitions like this targetting the iPhone (which would be hard to do, given the cost of entry and difficulty deploying), or Android (which would be much easier), but I expect as mobile devices become more and more common we&amp;#8217;ll start seeing them as well, and frankly, that&amp;#8217;s pretty exciting.&lt;/p&gt;

        

    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BJrv4b6RGVmB_v6fnetSq8bImbA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BJrv4b6RGVmB_v6fnetSq8bImbA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BJrv4b6RGVmB_v6fnetSq8bImbA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BJrv4b6RGVmB_v6fnetSq8bImbA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/MadBeautifulIdeas/~4/LHRiIRPxKYA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://blog.foxxtrot.net/2010/01/independent-game-competitions.html</feedburner:origLink></entry>

</feed>
