<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>sowbug.org</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/" />
    <link rel="self" type="application/atom+xml" href="http://www.sowbug.org/mt/atom.xml" />
    <id>tag:www.sowbug.org,2007-07-24:/mt//1</id>
    <updated>2012-03-02T15:59:39Z</updated>
    <subtitle>If all you have is a Bloom filter, everything looks like a set whose membership you wish to test with a possibility of false positives. Follow me on Twitter!</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.2-en</generator>

<entry>
    <title>Where to find me</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2012/03/where-to-find-me.html" />
    <id>tag:www.sowbug.org,2012:/mt//1.443</id>

    <published>2012-03-02T15:51:38Z</published>
    <updated>2012-03-02T15:59:39Z</updated>

    <summary>I&apos;m reorganizing my online presence, but I haven&apos;t stopped writing! Here&apos;s where to find me: Follow me on Twitter Enjoy my geek endeavors on my project blog Spam me about engineering management positions on LinkedIn Be friends with me on...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="code" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="home" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="work" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>I'm reorganizing my online presence, but I haven't stopped writing! Here's where to find me:</p>
<ul>
	<li><a href="https://twitter.com/sowbug">Follow me</a> on Twitter</li>
	<li>Enjoy my geek endeavors on <a href="http://www.sowbug.com/">my project blog</a></li>
	<li>Spam me about engineering management positions on <a href="http://www.linkedin.com/in/miketsao">LinkedIn</a></li>
	<li>Be friends with me on <a href="https://www.facebook.com/mike.tsao">Facebook</a></li>
	<li>Stalk me on <a href="http://www.reddit.com/user/sowbug/">Reddit</a></li>
</ul>

<p>I haven't decided the fate of <a href="http://www.sowbug.org">sowbug.org</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Improvements to Adafruit Standalone ISP</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/12/improvements-to-adafruit-stand.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.442</id>

    <published>2011-12-13T18:31:55Z</published>
    <updated>2011-12-13T18:36:03Z</updated>

    <summary>The Adafruit Standalone AVR ISP Programmer Shield Kit is a bit of a niche product. It converts an Arduino into an AVR in-system programmer that doesn&apos;t require a PC to supply the target hex image. I added some improvements to...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="code" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>The <a href="http://www.adafruit.com/products/462">Adafruit Standalone AVR ISP Programmer Shield Kit</a> is a bit of a niche product. It converts an Arduino into an AVR in-system programmer that doesn't require a PC to supply the target hex image. I added some <a href="https://github.com/sowbug/adaStandalone">improvements to the firmware</a>: it no longer has the 2x space overhead for ASCII hex files, instead working with pure binary; it fixes a bug with certain kinds of hex files; and it has better sounds to report success and failure.</p>]]>
        
    </content>
</entry>

<entry>
    <title>GE G-35 Color Effects lights</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/12/ge-g-35-color-effects-lights.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.441</id>

    <published>2011-12-05T18:46:59Z</published>
    <updated>2011-12-05T18:52:38Z</updated>

    <summary>I&apos;ve been hacking pretty hard on these Christmas lights lately. Here&apos;s my GitHub repository, which several people have reported they&apos;re using happily on their own homes. My own installation is based on a Teensy that I&apos;ve updated with the Arduino...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>I've been hacking pretty hard on these Christmas lights lately. Here's my <a href="http://github.com/sowbug/G35Arduino">GitHub repository</a>, which several people have reported they're using happily on their own homes. My own installation is based on a <a href="http://www.pjrc.com/store/teensy.html">Teensy</a> that I've updated with the <a href="http://arduino.cc/">Arduino</a> <a href="https://github.com/arduino/Arduino/tree/master/hardware/arduino/bootloaders/diskloader">Leonardo bootloader</a>. I'm running two strings directly from a USB power source (an old Kodak Zi8 wall adapter). My G35Arduino library is able to synchronize multiple strings of lights, and that's what I'm doing on my house. I'll post videos later.</p>]]>
        
    </content>
</entry>

<entry>
    <title>TQW</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/08/tqw.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.440</id>

    <published>2011-08-05T15:57:26Z</published>
    <updated>2011-08-05T16:09:16Z</updated>

    <summary>Yipe! I discovered an orphan on my website. Rescuing now... The Quoting, Whirled is a Burning Man project I did in 2002. It was a bunch of wooden paint-stirring sticks with LEDs attached to them, spinning (&quot;whirling&quot;) around in the...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>Yipe! I discovered an orphan on my website. Rescuing now...</p>

<p><a href="/tqw/">The Quoting, Whirled</a> is a Burning Man project I did in 2002. It was a bunch of wooden paint-stirring sticks with LEDs attached to them, spinning ("whirling") around in the night and tracing out words using the persistence of vision illusion. I gathered the words ("quotings," get it?) through a webpage that friends and random strangers contributed to.</p>

<p>The <a href="/tqw/dev/">development</a> was intense, because I didn't know anything about digital circuit design at the time. Coming from a software background, I found it odd to have the edit-compile-debug cycle measured in weeks rather than seconds. The circuit was based on the Atmel AVR ATMega microcontroller. I used a hall sensor to detect when the apparatus had completed a revolution, which allowed it to time the advancement of columns in the display. There was an IR receiver on the board, but I didn't have time to implement the RC5 decoding needed to let people in the field control the displays with universal remotes.</p>

<p>Aside from the circuit design, the hardest tasks were sourcing parts and figuring out how to supply power to a rotating circuit. I solved the power problem by taking pairs of motors, taking one apart, and gluing its commutator-brush assembly onto the intact motor. That's the same approach that electric motors use to power up the electromagnets inside them.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Execute a single RSpec file</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/06/execute-a-single-rspec-file.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.439</id>

    <published>2011-06-29T21:03:57Z</published>
    <updated>2011-06-29T21:08:39Z</updated>

    <summary>A quickie for the Rails developers in the audience. Step 1: At the top of your spec file, add #!/usr/bin/env ruby -S bundle exec rspec Step 2: chmod +x spec/models/whatever_spec.rb Now it&apos;s easy to run that one specfile that&apos;s giving...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="code" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>A quickie for the Rails developers in the audience.</p>

<p>Step 1: At the top of your spec file, add <code>#!/usr/bin/env ruby -S bundle exec rspec</code><br />
Step 2: <code>chmod +x spec/models/whatever_spec.rb</code></p>

<p>Now it's easy to run that one specfile that's giving you trouble, without remembering the command-line magic to run a single test. Works (with modifications) with Cucumber files, and probably TestUnit, too.<br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>Mission. F*cking. Accomplished.</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/01/mission-fcking-accomplished.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.438</id>

    <published>2011-01-26T01:36:33Z</published>
    <updated>2011-01-26T02:01:09Z</updated>

    <summary>You&apos;ve probably seen this xkcd about coercing positive spammer behavior. Lately, it seems that this is starting to happen on my blog, and unfortunately it&apos;s not as rosy as xkcd hoped. I&apos;ve gotten a surge of spammy comments linking to...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="code" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>You've probably seen <a href="http://xkcd.com/810/">this xkcd about coercing positive spammer behavior</a>. Lately, it seems that this is starting to happen on my blog, and unfortunately it's not as rosy as xkcd hoped. I've gotten a surge of spammy comments linking to the usual weight-loss and drug sites, but the actual comments are pretty on-point:</p>

<ul>
	<li><strong>"Very impressive. It is not look like an amateur design. So, what about
the expert's design. I'm sure it will be more wonderful."</strong> <em>- comment on <a href="http://www.sowbug.org/mt/2009/05/white-house-photoshop-disaster.html">White House Photoshop Disaster</a></em></li>
	<li><strong>"The main problem I see when people try to diet is that they try to
change their entire diet.  It seems the first step people can take that is simple is just to control portions.  Just because you order the BigMac meal doesn't mean you have to eat every bite of it."</strong> <em>- comment on <a href="http://www.sowbug.org/mt/2011/01/how-i-ate-one-million-good-cal.html">How I Ate One Million Good Calories and Discovered My Personal Fountain of Youth </a></em></li>
</ul>

<p>... and so on. They're inane comments, but if it weren't for the spammy links in the metadata, as a moderator I wouldn't really have any complaint about them.</p>

<p>I have several theories how this is happening.</p>

<ul>
	<li>The spammer has developed a clever site that gives unwitting people incentives to write comments on blog posts (e.g., in exchange for seeing another porn image), and then uses their responses to post the spam links on my site (and thousands of other sites like mine). This is just another variation on an old hack that breaks CAPTCHAs.</li>
	<li>The spammer has developed a Markov text generator that steals comments from other, similar articles and adapts them. I don't think this is the case because I've searched for snippets of the comment text on the web and haven't found anything.</li>
	<li><em>(Shudder)</em> The spammer is paying or otherwise coercing real, English-speaking humans to read articles and comment on them. I don't believe this could possibly be cost-effective.</li>
</ul>

<p>No matter what the cause, I've switched comments to be quarantined by default.</p>]]>
        
    </content>
</entry>

<entry>
    <title>How I Ate One Million Good Calories and Discovered My Personal Fountain of Youth</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/01/how-i-ate-one-million-good-cal.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.437</id>

    <published>2011-01-16T16:33:16Z</published>
    <updated>2011-01-17T02:02:14Z</updated>

    <summary>It&apos;s been about a year since I read Good Calories, Bad Calories by Gary Taubes and decided to follow its advice. What a year it&apos;s been! I&apos;ve eaten well. I&apos;ve never been hungry. I&apos;m strong and alert. And measurable results?...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="misc" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>It's been about a year since I read <em><a href="http://www.amazon.com/gp/product/1400033462?tag=sowbug-20">Good Calories, Bad Calories</a></em> by Gary Taubes and decided to follow its advice. <b>What a year it's been!</b> I've eaten well. I've never been hungry. I'm strong and alert. And measurable results? Look at 'em:</p>

<ul>
	<li><strong>My weight is stable.</strong> As of this morning, I am within 2% of my lowest weight since freshman year of high school. To reiterate: <i>I weigh the same as I did when I was 14.</i></li>
	<li><strong>My lipid profile is amazing.</strong> Good cholesterol levels are high, bad ones are low, triglycerides are <i>half</i> the recommended limit of 150, and all the ratios are way better than recommended. They're better than the earliest personal measurement I have, which is from age 24.</li>
        <li><strong>My blood glucose is fine.</strong> Although I haven't measured it for about four months, it has always been on the high range of normal for fasting, random, and GTT. I have no reason to expect that they've changed.</li>
        <li><strong>My liver is in great shape.</strong> In 2009, several scans of my abdomen suggested fatty liver, which meant I likely had non-alcoholic fatty liver disease, or NAFLD. Another scan in October 2010 showed that my liver had returned to normal.</li>
        <li><strong>My energy level is incredible.</strong> In the twelve months of 2010, I designed, implemented, and shipped two iPhone apps, with a major update (an entire frickin' spaceship store) to one of them; as a contractor, I shipped another substantial e-commerce mobile application; I wrote a Django-based social networking prototype, learning a lot of Python and JQuery along the way; I got my pilot license current again; and I walked my kids 1.5 miles to school every morning.</li>
</ul>

<p>Now, I don't have hard pre-diet data to possibly show any improvement correlated with my diet changes. But <i>I feel better than I've felt in years</i>, and because nothing else changed, <i>I know it's because I'm eating better</i>.</p>

<p>What's my secret? It's simple: <strong>avoid refined carbohydrates and sugar</strong>. Ignore everything else about food -- calories don't matter, sodium doesn't matter, fat doesn't matter. Carbs (including sugar) raise blood glucose levels, which elevate triglyceride and insulin levels and eventually cause so-called "diseases of civilization" such as diabetes, heart problems, obesity, and even cancer and Alzheimer's. <strong>Avoid carbs and you will probably avoid these diseases, too.</strong></p>

<p>I said my secret was simple. But that doesn't mean it was easy, too. Just about everything in a typical American diet is full of sugar and refined carbohydrates. For example:</p>

<ul>
	<li><strong>Flour</strong>. That's bread, pizza, pasta, lots of soups, croutons, sandwiches, tortillas, wraps, anything with a bun, almost anything deep-fried (because it's usually battered or breaded, too)....</li>
	<li><strong>Rice</strong>. Combined with the flour/sugar rules, Chinese food is a thing of the past, as well as sushi.</li>
	<li><strong>Sugar, corn syrup, honey, agave</strong>, etc. Besides the obvious pastries and candy, this means soda, anything at Starbucks that costs more than $2.00, any salad dressing with a hint of sweetness, and (surprisingly) a whole lot of foods that come in a box.</li>
</ul>

<p>So what's left to eat? Mmmmm, lots!</p>

<ul>
	<li><strong>All the eggs you want.</strong> Fortunately there isn't any link between dietary cholesterol and cholesterol levels in the blood, so eggs are pretty much the perfect food.</li>
	<li><strong>All the meat and fish you want, especially including bacon.</strong> The "saturated fat is bad" claim is, to put it delicately, <em>a total lie</em>. (Read GCBC for the sad story that led to this common belief.) In 'N' Out "Protein Style" Double-Doubles are perfect, as is salmon with pesto butter.</li>
	<li><strong>Nuts.</strong> Raw almonds and pecans are my favorite snack.</li>
	<li><strong>Cheese and milk.</strong> These dairy products actually aren't zero-carb, but getting whole milk and delicious high-fat cheese will slow the absorption and keep blood glucose from spiking.</li>
	<li><strong>Low-carb tortillas are a lifesaver</strong> as a bread substitute. Mine are 6 grams net carbs after subtracting all the carbs from dietary fiber.</li>
	<li>At a soup & salad bar, get the chicken soup (no noodles), then head over to the baked potato bar and <strong>load up the soup with sour cream, grated cheese, bacon bits, and green onions</strong>. So good, and so good for you.</li>
	<li><strong>Salads!</strong> Just make sure you avoid high-carb vegetables such as carrots, corn, potatoes, raisins, and most beans. A good rule of thumb is if the vegetable tastes sweet or starchy, then it has a high glycemic index, which is bad. Go for ranch dressing or oil & vinegar. No croutons!</li>
        <li>If you're ever in a situation as a guest at a restaurant or home where the only choices include refined carbohydrates, <em>eat your food with oil and protein!</em> That means extra butter and sauce on your pasta, with a couple extra meatballs. If you can't avoid carbs, at least slow them down.</li>
</ul>

<p>Why did I embark on this dietary quest? Personal health reasons that I don't want to get into publicly, but let's just say that <strong>I am not a fan of <a href="http://en.wikipedia.org/wiki/Angiogenesis">angiogenesis</a></strong>. And now that I've tried it for a year, I can't imagine going back to my lethargic, occasionally overweight self. Even for pizza.</p>

<p>Interested? First, <a href="http://www.amazon.com/gp/product/1400033462?tag=sowbug-20">read the book</a>. You'll be surprised, perhaps a little put-out at media and government portrayal of healthy habits, and especially motivated to fix your diet. Get through the few days of low-carb induction. And if you make it, you'll never be hungry, you'll be able to eat as much as you want, you'll be healthier than you've ever been, and you'll accomplish more at work and in life than thought you could. <strong>Start today!</strong></p>]]>
        
    </content>
</entry>

<entry>
    <title>My #lessambitiousmovies contributions</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2011/01/my-lessambitiousmovies-contrib.html" />
    <id>tag:www.sowbug.org,2011:/mt//1.436</id>

    <published>2011-01-06T03:37:41Z</published>
    <updated>2011-01-15T23:49:21Z</updated>

    <summary> 12 Easily Persuaded Men A Streetcar Named The Bus A Tale Of No Cities Apollo 12: Houston, We Have A Problem Figuring Out The Coffee Maker Back To The Present Batman Naps Blair&apos;s Witch Project Cremating Miss Daisy Die...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<ul>
	<li>12 Easily Persuaded Men </li>
	<li>A Streetcar Named The Bus</li>
	<li>A Tale Of No Cities </li>
	<li>Apollo 12: Houston, We Have A Problem Figuring Out The Coffee Maker </li>
	<li>Back To The Present </li>
	<li>Batman Naps </li>
	<li>Blair's Witch Project</li>
	<li>Cremating Miss Daisy </li>
	<li>Die Immediately </li>
	<li>Drafting Private Ryan's Mom</li>
	<li>Easy Insurance Rider </li>
	<li>Edward Hands </li>
	<li>Friday The 6th  </li>
	<li>Gone in 60 Minutes </li>
	<li>Horton Hears A Honk From His Carpool </li>
	<li>How To Train Your Dragon Dictation </li>
	<li>Ironing Man </li>
	<li>Jaw </li>
	<li>Kramer vs. Kramer's Marriage Counselor's Billing Department </li>
	<li>Man On Wire With Parachute </li>
	<li>Mosquito-Man </li>
	<li>Pirates Of The Caribbean-Themed Bar Mitzvah </li>
	<li>Preserved In Translation </li>
	<li>Pulp Tweet</li>
	<li>Raiders Of The Last Beer</li>
	<li>Reason With Bill: Vol. 1 </li>
	<li>Schindler's Evite </li>
	<li>Scott Pilgrim vs. That Flu Bug That's Been Going Around At Work </li>
	<li>Several Weeks After The Devil Knows You're Dead </li>
	<li>Slumdog Disqualified During Audition </li>
	<li>The Accidental Modestly Successful Entrepreneurs </li>
	<li>The Blair Witch Costume </li>
	<li>The Bridges of Madison's Mouth  </li>
	<li>The Day The Earth Stood Normally  </li>
	<li>The Ethernet Network</li>
	<li>The Hurt Locket </li>
	<li>The Rapidly Ending Story  </li>
	<li>The Shawshank Acceptance  </li>
	<li>The Shawshank Acquittal </li>
	<li>The Treasure Of The Sierra Madre County Museum </li>
	<li>WALL-E Service Pack 2 (Improved Garbage Collection) </li>
	<li>Who Washed The Electric Car? </li>
	<li>Zack and Miri Make A Latte </li>
	<li>Zombielawn  </li>
</ul>

<p><a href="http://twitter.com/#!/search?q=%23LessAmbitiousMovies">Search Twitter</a> for more.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Digital cameras, 2011 edition, volume 2</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/12/digital-cameras-2011-edition-v.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.435</id>

    <published>2010-12-21T04:53:27Z</published>
    <updated>2010-12-31T18:14:01Z</updated>

    <summary>(See Volume 1.) My wife immediately claimed the SD1400IS. She swapped it with her SD1100IS, and is completely happy with it. Same case size, same battery type; easy switch. The SD4000IS went back to Amazon. I had two problems with...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>(<a href="/mt/2010/11/digital-cameras-2011-edition.html">See Volume 1</a>.)</p>

<p>My wife immediately claimed the SD1400IS. She swapped it with her SD1100IS, and is completely happy with it. Same case size, same battery type; easy switch.</p>

<p>The SD4000IS went back to Amazon. I had two problems with it, both related to focusing. First, in anything but bright light, AF sometimes missed, and missed badly. By "badly" I mean that it focused on a nonexistent close object, meaning that the entire picture was out of focus. In contrast, my Lumix sometimes misses, but when it does, it's because it didn't see something narrow or off-center, meaning it focuses to infinity. That leaves most of the picture (the background) in focus. Between the two mistakes, I'd rather have infinity focus (usually junk, occasionally artsy) than near focus (always junk).</p>

<p>Second, video focusing constantly hunted, just barely enough that most clips were junk. I did manage to take a few gorgeous clips of Union Square, San Francisco in perfect mid-day overcast lighting, but otherwise I couldn't trust the video enough to bother recording anything important.</p>

<p>It's possible that my camera was a bad sample, but I now see several user reviews on Amazon complaining about exactly the same focusing problems.</p>

<p>So I'm back to my old cheapo Lumix, and I'm in the market again. Possibilities:</p>

<ol>
	<li>Take back the SD1400IS from my wife. Or get another; it's only $149.</li>
	<li>Try the S95. Advantage: get to learn post production because it can output raw files. Disadvantage: 24p video (and fake 24p, at that).</li>
	<li>Spend my money instead on a DSLR lens and donate it to my wife's XT.</li>
	<li>Completely blow my couple-hundred-or-so budget and get a new entry-level DSLR, lenses, filters, pouches, fast memory cards, a copy of Lightroom, and a backpack to carry it all in.</li>
</ol>

<p>Option #3 might be the best choice. A good Canon EF lens is probably a long-term investment, or at least resellable. I won't get the HD video I wanted, but my phone can do that well enough.</p>

<p>Still thinking.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Back to yellow light</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/11/back-to-yellow-light.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.434</id>

    <published>2010-12-01T00:19:40Z</published>
    <updated>2010-12-01T00:29:48Z</updated>

    <summary>I got some 5000K CFL bulbs after reading the glowing (ha) reviews about how the higher-temperature blue light was more like real sunlight and made those on whom it shined happier and healthier. I installed two in the overhead globes...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="home" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>I got some <a href="http://www.amazon.com/gp/product/B00303FNRO?ie=UTF8&tag=sowbug-20">5000K CFL bulbs</a> after reading the glowing (ha) reviews about how the higher-temperature blue light was more like real sunlight and made those on whom it shined happier and healthier.</p>

<p>I installed two in the overhead globes in our kitchen and was instantly transported to a fluorescent-lit basement. It's odd that the bluish light is referred to as having a higher "temperature" than yellowish light, because it feels colder. After a few days, though, I got used to it. I started to appreciate that things were the same color during the day as they were at night. Yellow lights in the rest of the house started to feel artificial. The kids agreed, too; they thought the bluish-white lights were cool (again with the mismatched temperature names!).</p>

<p>But Mary runs this house, and she has a 50.1% majority voting stake. Today we went back to the regular yellow CFLs. I suppose I'll use the blue ones in my office.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Mystery Spot!</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/11/mystery-spot.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.433</id>

    <published>2010-11-30T18:37:30Z</published>
    <updated>2010-11-30T18:46:36Z</updated>

    <summary> This isn&apos;t a great picture because of the glossy screen. I was sitting in my local coffeeshop working this morning, and had to turn down the screen brightness on my laptop because I was getting low on batteries. I...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.sowbug.org/mt/assets_c/2010/11/mystery_spot-annotated.html" onclick="window.open('http://www.sowbug.org/mt/assets_c/2010/11/mystery_spot-annotated.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.sowbug.org/mt/assets_c/2010/11/mystery_spot-annotated-thumb-320x240.png" width="320" height="240" alt="mystery_spot-annotated.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></span></p>

<p>This isn't a great picture because of the glossy screen. I was sitting in my local coffeeshop working this morning, and had to turn down the screen brightness on my laptop because I was getting low on batteries. I noticed a bright area right in the middle of the screen, which persisted even when I turned off the screen backlight entirely. It wasn't a reflection.</p>

<p>Can you figure out what it was? (I eventually did.)</p>]]>
        
    </content>
</entry>

<entry>
    <title>Digital cameras, 2011 edition</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/11/digital-cameras-2011-edition.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.432</id>

    <published>2010-11-30T03:12:08Z</published>
    <updated>2010-11-30T23:52:26Z</updated>

    <summary>These are the digital cameras I&apos;ve owned. 1998: Epson PhotoPC 600. On high resolution it shot 1024x768, one whole megapixel. I remember raving about how nobody would be using film in a few years. My excitement made people uneasy. What...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="geek" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>These are the digital cameras I've owned.<br />
<ul><br />
	<li>1998: Epson PhotoPC 600. On high resolution it shot 1024x768, <em>one whole megapixel</em>. I remember raving about how nobody would be using film in a few years. My excitement made people uneasy. What good was a picture that wasn't printed on paper?</li><br />
	<li>August 2002: <a href="http://www.amazon.com/Toshiba-PDR-M25-Digital-Camera-Optical/dp/B000068V0G/">Toshiba PDR-M25</a>. A Costco impulse buy, totally research-free, right before Burning Man. Used thin SmartMedia cards. It worked, but that was about the best I could say about it.</li><br />
	<li>December 2005: <a href="http://boingboing.net/2005/12/12/cool-tools-reviews-t.html">Boing Boing</a> talked me into getting the Panasonic Lumix DMC-FZ5. It was a much better camera than I was a photographer. I tried the manual settings a few times to confirm they worked, but otherwise kept it on auto. Even though it was tiny compared to an SLR, it was still too big for me to carry it around, and as a result I didn't take many pictures in 2006 or 2007.</li><br />
	<li>January 2008: <a href="http://www.amazon.com/Panasonic-DMC-LZ7K-Digital-Camera-Stabilized/dp/B000MW7B0I">Panasonic Lumix DMC-LZ7</a>. Buying this camera was a reaction to being outgunned by the DMC-FZ5. Only $129, auto-mode-only, and the smallest camera I could find that still took regular AA batteries. I've used this camera a lot. It never runs out of batteries, and if it does, I can buy more anywhere. It's simple to use, and I'm not afraid of losing it.</li><br />
</ul></p>

<p>That brings us to today. This weekend I inexplicably got the urge to get a new camera. When I looked back at my camera-purchasing history, I was surprised to see that I've gotten a new one almost exactly every three years since 1998. Even better, my current camera is three years old! Time to shop.</p>

<p>Now, I'm still a rotten photographer. I can apply the <a href="http://en.wikipedia.org/wiki/Rule_of_thirds">Rule of Thirds</a> pretty well, and I exhale while pressing the shutter button so that my pictures turn out sharp. I use Picasa's Warmify filter. So I haven't yet earned the right to get anything fancier than a point-and-shoot. That's why I settled on the Canon SD1400IS, which is about a half-generation old and costs $149. I'm sure the SD1400 will take pictures that are at least as good as the LZ7, and it's small enough that I'll be even more likely to have it with me. I'm not too worried about picture quality; even with its 14.1 million noisy pixels, I'm sure this camera will exceed my abilities.</p>

<p>Looking to 2014 (my next scheduled camera purchase), here are my plans:<br />
<ul><br />
	<li>Keep the point-and-shoot in my pocket at all times. Work on composition, as well as learning how to do post-processing.</li><br />
	<li>Borrow my wife's Digital Rebel from time to time. Learn what an f-stop is.</li><br />
	<li>Try my hand at using the SD1400's 720p video capabilities. See whether I can stitch together a watchable home movie.</li><br />
</ul></p>

<p>If these plans succeed, then I might be ready for the 2014 version of the <a href="http://www.amazon.com/Canon-T2i-Digital-3-0-Inch-18-55mm/dp/B0035FZJHQ/">Digital Rebel t2i</a>. Check back here in three years.</p>

<p><strong>Update 11/30/2010</strong>: I made the mistake of continuing to browse camera sites. I now have the SD4000IS on order as well, and will probably return the SD1400IS. The SD4000IS has the lower megapixel count that I wanted, a CMOS sensor for better low-light performance and fewer video artifacts, Eye-Fi integration, and some manual controls (shutter and aperture). On the other hand, it has a $110 higher price, and it's a bit larger (though it's still small). I decided not to get the SD4500IS, which is supposed to be newer and better, but the lens isn't as bright or wide-angle, and they corrected the error of their ways from the SD4000IS by removing the manual controls.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Building an nginx RPM for Amazon Linux AMI</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/10/building-an-nginx-rpm-for-amaz.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.431</id>

    <published>2010-10-12T16:02:38Z</published>
    <updated>2010-10-12T16:58:02Z</updated>

    <summary>The current Amazon Linux AMI Beta doesn&apos;t include nginx, which is a shame because it&apos;s a great frontend. Here&apos;s what I did to solve the problem. All these commands are on the EC2 instance, running as a normal user. And...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>The current Amazon Linux AMI Beta doesn't include nginx, which is a shame because it's a great frontend. Here's what I did to solve the problem. All these commands are on the EC2 instance, running as a normal user. And just to be clear what I'm providing here, it's nothing more than "how to build a specific source RPM."</p>

<ol>
	<li>sudo yum install gcc rpm-build perl-ExtUtils-Embed</li>
	<li>mkdir $HOME/rpm $HOME/rpm/SOURCES $HOME/rpm/SPECS $HOME/rpm/BUILD $HOME/rpm/SRPMS $HOME/rpm/RPMS $HOME/rpm/RPMS/i386</li>
	<li>echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros</li>
        <li>wget http://download.fedora.redhat.com/pub/epel/5/SRPMS/nginx-0.6.39-5.el5.src.rpm</li>
	<li>rpm -Uvh nginx-0.6.39-5.el5.src.rpm</li>
	<li>cd ~/rpm/SPECS/</li>
	<li>rpmbuild -bb nginx.spec</li>
	<li>cd ~/rpm/RPMS</li>
	<li>sudo rpm  --nosignature --Uvh i386/nginx-0.6.39-5.amzn1.i386.rpm</li>
</ol>

<p>Now you should have the latest EPEL version of nginx, which you can chkconfig and /sbin/service start to your heart's content. I might try using this specfile to build the latest nginx (0.8.52). Will update post if I do.</p>

<p><b>Update</b>: I did it. Here's what I did:<br />
<ol><br />
	<li>Went to rpmfind.net and found a <a href="http://www.rpmfind.net//linux/RPM/fedora/devel/rawhide/src/nginx-0.7.67-1.fc14.src.html">reasonably current Fedora SRPM</a>. Downloaded and installed it.</li><br />
	<li>Edited the specfile to change the 7.67 reference to 8.52.</li><br />
	<li>Noted that the specfile downloads the nginx source directly from sysoev.ru, which at first looked a little scary but is actually the same site as the one referenced on the <a href="http://wiki.nginx.org/Install">Nginx wiki</a>.</li><br />
	<li>Duplicated, twice, the two lines toward the bottom of the specfile that install fastcgi and fastcgi_default config files. Changed one of the copies to install scgi, and the other to install uwsgi. These seem to be newer config files introduced in 0.8, so we need to package them into the RPM, too.</li><br />
	<li>Built the RPM following the same method described above.</li><br />
</ol></p>

<p>This seems to be working just fine. Note that because your RPM is unsigned, you'll need to install with the --nosignature option.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Apple TV &amp; laws of the universe</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/10/apple-tv-laws-of-the-universe.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.430</id>

    <published>2010-10-10T14:12:59Z</published>
    <updated>2010-10-10T14:35:45Z</updated>

    <summary>I recently tweeted about my displeasure with the long time it takes between the rental decision and actually getting to watch anything on the new Apple TV. My comparison was Netflix streaming (which is absolutely amazing and unbelievable that it&apos;s...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>I recently <a href="http://twitter.com/#!/sowbug/status/26183146389">tweeted</a> about my displeasure with the long time it takes between the rental decision and actually getting to watch anything on the new Apple TV. My comparison was Netflix streaming (which is absolutely amazing and unbelievable that it's only $9/month).</p>

<p>But I thought a little more about it and realized that Apple is making a big deal about HD quality. If that's the promise, then they have to stick to it; they can't ratchet down to lower video quality or pause for 30 seconds to let the buffer catch up, because that would ruin the  promised viewing experience. It's the usual tradeoff as in most projects. Cheap, fast, good: pick two. Apple chose cheap and good. Netflix chose cheap and fast.</p>

<p>So I retract my disappointment about the poor streaming experience, but I replace it with a different disappointment: that Apple TV probably can't replace both cable and Netflix. Apple TV requires planning ahead in exchange for a guaranteed viewing experience. Netflix and cable are good for watching something, anything, when I'm bored. Apple TV could replace my DVD player and my TiVo for the few programs I record (Hell's Kitchen, Master Chef, The Simpsons, Family Guy). But as long as Apple picks good over fast, it can't yet replace cable.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Stuffing bytes into source code</title>
    <link rel="alternate" type="text/html" href="http://www.sowbug.org/mt/2010/06/stuffing-bytes-into-source-cod.html" />
    <id>tag:www.sowbug.org,2010:/mt//1.429</id>

    <published>2010-06-11T18:06:28Z</published>
    <updated>2010-06-11T18:10:37Z</updated>

    <summary>You&apos;re writing a test case, or you want to embed an Easter Egg into your app that your PM won&apos;t notice. Or whatever. I&apos;m not judging you. You could write a 5-minute Python script, or you could do what I...</summary>
    <author>
        <name>Mike Tsao</name>
        <uri>www.sowbug.com</uri>
    </author>
    
        <category term="code" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.sowbug.org/mt/">
        <![CDATA[<p>You're writing a test case, or you want to embed an Easter Egg into your app that your PM won't notice. Or whatever. I'm not judging you. You could write a 5-minute Python script, or you could do what I did and waste half an hour trying to understand the hexdump manual. Here's what I came up with:</p>

<p><code>$ hexdump -v -e '"(byte)0x" 1/1 "%02X" ", "' image.png</code></p>

<p>This will spit out something close enough to Java or C++ source code that you can mostly copy and paste it.</p>]]>
        
    </content>
</entry>

</feed>

