<?xml version="1.0" encoding="utf-8"?>
        <?xml-stylesheet type="text/css" href="http://bbot.org/blog/styles/feed.css"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title>the bblog</title>
<atom:link href="http://bbot.org/blog/rss.xml" rel="self" type="application/rss+xml" />
<link>http://bbot.org/blog</link>
<description>complaining, nerdery, errata</description>
<dc:language>en-us</dc:language>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:date>2013-05-23T02:50:51-07:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />

<item>
<link>http://bbot.org/blog/archives/2013/05/23/bad_transcript_star_trek_into_darkness_2013/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2013/05/23/bad_transcript_star_trek_into_darkness_2013/</guid>
<title>Bad Transcript: Star Trek Into Darkness (2013)</title>
<dc:date>2013-05-23T02:50:48-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, Meta</dc:subject>
<description><![CDATA[<p><img src="//bbot.org/blog-images/startrek2.png">

<p>I wrote a Bad Transcript for the new Star Trek movie. <a href="http://bbot.org/badtranscript-startrek2.html">It's pretty good, you should read it.</a>

<p>The transcript, that is. The movie isn't good.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2013/01/04/building_dtwenty_org/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2013/01/04/building_dtwenty_org/</guid>
<title>building dtwenty.org</title>
<dc:date>2013-01-04T21:03:31-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, Linux</dc:subject>
<description><![CDATA[<p><a href="https://news.ycombinator.com/item?id=1946405">767 days ago,</a> I commented on a HN submission about a random number
  generator:

  <blockquote>3.) Providing random numbers as an advertisement for your fine
  line of hardware random number generators. Here it doesn't matter how much
  money you make [providing the numbers], you just want people to buy the hardware that made
  them. Oddly enough, none of the random number services (and there are quite
  a few) do this, for some inexplicable reason. There's not even an
  argument-from-proprietary technology, since HRNGs are supposed to generate
  perfectly random noise, and there's no way an attacker could stage a replay
  attack.</blockquote>

<p>I left it there, because I was lazy. But last month, notorious badass
  Maciej Cegłowski
  created <a href="http://static.pinboard.in/prosperity_cloud.htm">The
  Pinboard Co-Prosperity Cloud.</a>

<blockquote>
<p><b>What is it?</b>

<p>The Pinboard Co-Prosperity Cloud is a startup self-incubator. Six successful applicants will receive a modest amount of funding and as much publicity as I can provide for their sustainable and useful business idea.

<p><b>Is this a joke?</b>

<p>It is not a joke.

<p><b>What are the requirements?</b>
<p>You must have a good idea that you are capable of building, a willingness to build it, and a plan for making it mildly profitable.

<p><b>How much funding will I get?</b>

<p>Each successful applicant will receive $37. This will cover the cost of six
  months of hosting at prgmr.com and a productivity-enhancing hot
  beverage.</blockquote>

<p>So I entered. Ha ha why not?

<p>The more I thought about it though, the more I realized that I wasn't getting the
  joke. The idea was trivially simple. I already had a web server. I didn't
  need all that mad cash. I could just... build it.

<p>So I did. <a href="//bbot.org/dtwenty">It's right here.</a> (<b>EDIT 2013/3/22:</b> I let the domain name lapse, and moved the content to bbot.org)

<p>It was amazingly easy, even though this was pretty much my first major (har) piece
  of programming. I had never used python, javascript, or jquery before.

<p>Web programming in the year 2012 has the smooth, well polished feel of
  something that has had the sharp edges worn off by the passage of thousands
  of other people. Getting nginx to talk to the WSGI
  server was a snap. Installing bottle.py was easy. JQuery was no problem. 

<p>Any time I had a problem, googling the error message would return a helpful,
  relevant page, explaining how my "build it as fast as possible, while learning
  as little as possible" design methodology had screwed me over again.

<p>At the time, of course, it seemed a vast edifice
  of impossible complexity, but in retrospect it was painless. "It's easy to
  do if you know how to do it", maybe.

<p>The only difficulty I faced was the hardware random number generator. The
  numbers had to come from it, since that was the whole point of the site; but
  my server was a virtual machine on the east coast, and my HRNG was sitting
  on my desk.

<p>The "money" solution would be to buy a rackmount server, plug the widget
  into it, then slot it into a colo, but I didn't have money, and instead I had to be
  creative.

<p>I couldn't just run the web server locally, since my ISP blocks port
  80. Enter the ugly hack: I plugged the entropykey into a spare laptop, ran
  the application server on that, then ran a SSH tunnel to my web server, which communicates with the front end via JSON. It
  works, at the cost of an extra 150ms of latency per roll.

<p>There's room to improve, of course. You could probably list off a dozen
  features dtwenty.org needs without pausing to draw breath, (starting with "make it
  less ugly") but, the ideal of
  the <a href="https://en.wikipedia.org/wiki/Minimum_viable_product">minimum
  viable product</a> shines bright.

<p>The second biggest problem after integrating the HRNG was the ad copy that
  makes up most of the page. It was originally twice as long-- ruthless
  editing has reduced to it merely "too long" from "far, far too long." This
  too could use improvement.

<p>But! It's done and it works! Programming is fun.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/12/09/how_would_i_get_started_and_the_problem_of_truth/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/12/09/how_would_i_get_started_and_the_problem_of_truth/</guid>
<title>&quot;How would I get started&quot; and the problem of truth</title>
<dc:date>2012-12-09T23:49:30-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, nerdery</dc:subject>
<description><![CDATA[<p>I've been meaning to write about Hacker News again, but have held back,
  since it's a pretty boring subject outside of HN's rather shallow pool of
  users. But recent events have forced my hand.

<p><a href="http://hackertourism.com/post/37555787943/how-would-i-get-started">"How
    would I get started?"</a>

<blockquote>Last night on Hacker News, someone asked a simple question with a complicated answer: “I want to build a cable company. How would I get started?”

<p>I’m really disappointed in the universally pessimistic and generally unhelpful answers this question received. Some people pitched some interesting ideas and helpful analysis, but most of the replies reinforced the notion that Hacker News readers are predominantly male know-it-alls and on the average, a bunch of snarky dicks.</p></blockquote>

<p>Lots of emotional content here, but not much meaning. The attitude behind
  these two paragraphs becomes clearer if we look at some other quotes:

<p><a href="http://www.paulgraham.com/swan.html">"Black Swan Farming"</a>

<blockquote>
In startups, the big winners are big to a degree that violates our expectations about variation. I don't know whether these expectations are innate or learned, but whatever the cause, we are just not prepared for the 1000x variation in outcomes that one finds in startup investing.

<p>That yields all sorts of strange consequences. For example, in purely financial terms, there is probably at most one company in each YC batch that will have a significant effect on our returns, and the rest are just a cost of doing business. [1] I haven't really assimilated that fact, partly because it's so counterintuitive, and partly because we're not doing this just for financial reasons; YC would be a pretty lonely place if we only had one company per batch. And yet it's true.

<p>To succeed in a domain that violates your intuitions, you need to be able to turn them off the way a pilot does when flying through clouds. [2] You need to do what you know intellectually to be right, even though it feels wrong.

<p>It's a constant battle for us. It's hard to make ourselves take enough risks. When you interview a startup and think "they seem likely to succeed," it's hard not to fund them. And yet, financially at least, there is only one kind of success: they're either going to be one of the really big winners or not, and if not it doesn't matter whether you fund them, because even if they succeed the effect on your returns will be insignificant. In the same day of interviews you might meet some smart 19 year olds who aren't even sure what they want to work on. Their chances of succeeding seem small. But again, it's not their chances of succeeding that matter but their chances of succeeding really big. The probability that any group will succeed really big is microscopically small, but the probability that those 19 year olds will might be higher than that of the other, safer group.

<p>The probability that a startup will make it big is not simply a constant fraction of the probability that they will succeed at all. If it were, you could fund everyone who seemed likely to succeed at all, and you'd get that fraction of big hits. Unfortunately picking winners is harder than that. You have to ignore the elephant in front of you, the likelihood they'll succeed, and focus instead on the separate and almost invisibly intangible question of whether they'll succeed really big.</blockquote>

<p><a href="https://news.ycombinator.com/item?id=4396747">"Why I now,
    unfortunately, hate Hacker News"</a>

<blockquote>raffi 114 days ago | link

<p>Most companies fail. It's a safe bet to predict failure. It's pretty lame to celebrate that failure from the sidelines.

<p>Vision is not "how is this guaranteed to fail?" but how could it possibly succeed despite the odds?</blockquote>

<p>A core tenet
  of <a href="https://en.wikipedia.org/wiki/Hacker_ethic">hacker ethics,</a>
  the zeroeth law perhaps, is <i>being right,</i> having correct
  perceptions regarding the universe. A map that matches the territory.

<p>Under this ethical system, the above statement makes less than no
  sense. The most likely outcome is failure... but you shouldn't predict
  failure?

<p>However, the way startup financing is currently organized, a VC fund can shrug
  off a dozen miserable failures to chase the one Google or Intel.

<p>The purpose of Hacker News is to advertise Y Combinator
  startups, such as <a href="http://techcrunch.com/2012/08/21/yc-demo-day-s12/">9gag.</a> The purpose is <i>not</i> to act as a prediction market. In fact, since one of the major routes of of startup profitability is <a href="http://www.pcmag.com/article2/0,2817,2407404,00.asp">being purchased</a> by <a href="https://www.nytimes.com/2010/01/11/business/media/11merger.html?pagewanted=all">another company,</a> accurate predictions of value are <i>contrary</i> to Y Combinator's interests. Y Combinator wants valuations <a href="http://techcrunch.com/2011/03/23/color-looks-to-reinvent-social-interaction-with-its-mobile-photo-app-and-41-million-in-funding/">as high as possible.</a>

<p>Someone starting a new cable company in 2012 is very likely to fail. This is the correct prediction: it is the outcome with the highest probability.

<p>But a new cable company which somehow isn't immediately crushed, would have an enormous customer base, and could potentially make billions and billions of dollars.

<p>To someone steeped in the Bay Area Startup lottery culture, this isn't an insanely stupid idea at all. It's almost a safe bet. With the force of millions of dollars behind you, being right is irrelevant.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/10/15/why_does_nanoblogger_generate_broken_links/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/10/15/why_does_nanoblogger_generate_broken_links/</guid>
<title>why does nanoblogger generate broken links</title>
<dc:date>2012-10-15T18:24:59-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> Linux</dc:subject>
<description><![CDATA[<p><i>(Attention conservation notice:</i> I found an obscure bug in my blog
  publishing software. You are unlikely to care about it.)

<p><img alt="google 404 errors" src="//bbot.org/blog-images/404.png">

<p>Why the hell does my site have so many broken links?

<p>I'll spare you the grimy details of the hour of troubleshooting, and jump right to the
  punchline. <b>Nanoblogger 3.4.2 has a bug which generates bad relative links
  when you do <code>./nb update all</code></b>

<p>Nanoblogger is no longer updated, so this isn't a problem that can be
  solved by upgrading. I didn't want to dive into the parsing engine, so I had
  to find a workaround, which turned out to be pretty simple: just update it a
  year at a time. <code>./nb update YYYY</code> works
  perfectly. (ex. <code>./nb update 2012</code>) I've only got six years of
  archives, so all I had to do was run it six times.

<p>I'm posting this incredibly boring post in the hopes it'll save one of the
  six other users of nanoblogger some confusion in the future.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/10/06/wherein_i_write_a_guest_post/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/10/06/wherein_i_write_a_guest_post/</guid>
<title>wherein I write a guest post</title>
<dc:date>2012-10-06T15:26:52-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> nerdery</dc:subject>
<description><![CDATA[<p><a href="http://armchair-brandology.tumblr.com/post/33023079476/politics-is-just-high-stakes-branding">I just did a guest post for the Armchair Brandology blog:</a>

<blockquote><p id="nation">A modern nation, like a
  corporation, is a machine made of humans. Its genetic code is ideas, encoded
  as words on paper. 

<p>Such immaterial entities are exquisitely sensitive to language, and how
  it's used. Sticks and stones may break your bones, but words can kill a
  nation.

<p>So the Senkaku/Diaoyu Islands are purposely branded so that there's <em>no way
    to refer</em> to them without implictly taking a stand. Like how the abortion
  debate is framed as "pro-choice/pro-life", except that both sides in this
  argument have nuclear weapons.</blockquote>

<p>You should check it out!]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/09/30/escape_sh/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/09/30/escape_sh/</guid>
<title>escape.sh</title>
<dc:date>2012-09-30T07:13:13-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> Linux</dc:subject>
<description><![CDATA[<p>I've pasted a lot of IRC logs into a lot of HTML documents, which is always
  a pain, since angle brackets are obviously a special character in HTML,
  which means I have to do a search and replace with the equivalent entity
  codes. I usually did this manually, using whatever graphical text editor was
  handy.

<p>But
  that's <a href="http://www.catb.org/esr/faqs/hacker-howto.html#believe3">Not
    The Hacker Way.</a> I'm editing a text file produced by one program, so
  another program will accept it. String processing isn't a job fit for a
  human. This is something that should be done by a <i>third</i> program.

<p>Thus:

<pre class=prettyprint>#!/bin/sh
#
# escape.sh - Escapes angle brackets in text files
#
# Turns angle brackets into &amp;lt; and &amp;gt; HTML entities.
# With --irc, replaces the first 8 columns (the timestamp) with an 
# opening angle bracket, using an ugly hack.
#
# This is free and unencumbered software released into the public domain.

if [[ $* == *--irc* ]]
then
    sed -i 's/&gt;/\&amp;gt;/g' $2
    sed -i 's/^......../\&amp;lt;/g' $2
else
    sed -i 's/&lt;/\&amp;lt;/g' $1
    sed -i 's/&gt;/\&amp;gt;/g' $1
fi</pre>

<p><a href="https://github.com/bbot/sitetools/blob/master/escape.sh">(Github)</a> 

<p>Then I stuck it in my $PATH with <code>sudo cp escape.sh
    /usr/local/bin/escape</code> This way you can run it from any directory
  just by doing <code>escape example.txt</code>

<p>(It's not actually very Unixy-- it doesn't play well with pipes, and
	 wildcard expansion in a directory will blow it up.)

<p>Have fun!]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/08/25/ntpblogging_ii/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/08/25/ntpblogging_ii/</guid>
<title>ntpblogging II</title>
<dc:date>2012-08-25T19:00:25-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, Linux</dc:subject>
<description><![CDATA[<p><a href="//bbot.org/blog/archives/2012/08/04/ntpblogging/">(previously)</a>

<p>So now bbot.org is <a href="http://www.pool.ntp.org/scores/76.72.161.27">a Stratum 2 NTP Pool server.</a> <a href="http://support.ntp.org/bin/view/Servers/BbotOrg">(Its wiki page.)</a>

<p>Joining the pool is pretty easy: You create an account, give them your server's IP address, wait for the monitoring server to decide you're stable enough (~8 hours) and boom, you're in.

<p><img src="//bbot.org/blog-images/ntp-pool-adding.png">

<p>(The interface is a bit awkward: you paste the address in there, you <i>don't</i> click the "Add a server" link, which apparently doesn't do anything.)

<p>I found four upstream servers by pinging 0.us.pool.ntp.org repeatedly, and choosing the one that were closest to me. Since bbot.org is in a datacenter right on the internet backbone, close can be <i>very</i> close:

<pre># ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-72.26.198.240   209.51.161.238   2 u  273 1024  377    2.320    3.100   1.201
+69.164.217.193  128.59.59.177    3 u  825 1024  377    3.713    0.239   0.371
-108.61.73.243   209.51.161.238   2 u  237 1024  377    3.174   -1.069   0.398
+128.113.28.67   18.26.4.105      2 u  383 1024  377    6.828    0.382   0.141
*128.118.25.5    .WWV.            1 u  426 1024  377   11.537    0.225   0.310</pre>

<p>I had hoped that <10ms ping times would result in magically low offset numbers, measured in the tens of microseconds, but apparently jitter becomes a bigger problem when you get that low.

<p>My reference stratum 1 server is <a href="http://support.ntp.org/bin/view/Servers/WwvTnsItsPsuEdu">wwv.tns.its.psu.edu,</a> an open-access tier 1 server that John Balogh runs. Thanks John!]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/08/04/ntpblogging/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/08/04/ntpblogging/</guid>
<title>ntpblogging</title>
<dc:date>2012-08-04T06:52:57-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> Linux</dc:subject>
<description><![CDATA[<p>So I was farting about trying to figure out how to ask a NTP server what it thinks the time is without having to edit ntp.conf on the client machine, when I discovered that NTP is like SSH&#8212; any machine with it installed acts as a server.</p>
<p>So now both of my machines get their time from bbot.org:</p>
<pre>magnesium:~ $ ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+76.72.161.27    138.236.128.112  3 u   44   64  377   81.174   -2.459   1.158
+209.177.158.233 134.21.35.167    3 u   42   64  377   62.137   -3.428   1.459
-64.34.171.122   198.60.22.240    2 u   42   64  377   85.527   -7.019   2.248
*69.50.219.51    209.51.161.238   2 u   36   64  377   54.501    0.361  45.780</pre>
<pre>bbot@neon:~ $ ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+76.72.161.27    138.236.128.112  3 u   60  128  377   80.328    0.690  10.561
*67.23.181.241   128.4.1.1        2 u   35  128  377   82.895    1.003   7.373
+69.167.160.102  204.9.54.119     2 u   70  128  377   75.712    4.162  12.724
+50.16.231.185   192.5.41.40      2 u   26  128  377   87.617   -0.344  64.595</pre>
<p>(The legend for the inscrutable linux bullshit can be found in <a href="http://linux.die.net/man/8/ntpq">ntpq&#8217;s manual file</a>)</p>
<p>(Of <em>course,</em> at the moment I took these screenshots, neither neon or magnesium were syncing to bbot.org&#8230;)</p>
<p>The magic incantation to ask a NTP server for the time is <code>sntp</code>,</p>
<pre>$ sntp 0.pool.ntp.org
2012 Aug 04 01:30:15.000857 + 0.001475 +/- 0.083787 secs</pre>
<p>Which will return, (if you&#8217;ve got a machine with accurate time) a tiny drift number (1.4ms) swamped by a giant lake of uncertainty. (83.7ms) This is because sntp can only request a single packet, which means it doesn&#8217;t have a good idea of the jitter between you and the remote machine. The NTP daemon manages to extract accurate time from the storm of random network noise by requesting lots of packets, <a href="http://www.ntp.org/ntpfaq/NTP-s-algo.htm">then doing a lot of clever things.</a> You can sanity-check <code>sntp</code> by going to <a href="http://time.is/">time.is</a>, which for any Linux machine will tell you that your clock is bang-on accurate. (NTP on Windows <a href="http://support.microsoft.com/kb/939322">will only get the clock within 1000ms of the true time, by design.</a> Microsoft assumes that their users aren&#8217;t pedantically obsessive nerds who absolutely positively must have the most accurate computer clocks possible. The same assumption can&#8217;t be made of Linux users.)</p>]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/07/17/how_to_pass_the_washington_state_drivers_test_on_your_second_try/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/07/17/how_to_pass_the_washington_state_drivers_test_on_your_second_try/</guid>
<title>how to pass the washington state driver's test on your second try </title>
<dc:date>2012-07-17T05:00:18-07:00</dc:date>
<dc:creator><a href=&quot;//bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Etc</dc:subject>
<description><![CDATA[<p><a href="http://bbot.org/blog-images/license-cards.jpg"><img src="http://bbot.org/blog-images/license-cards-thumb.jpg"></a>

<p>I've been spending a lot time recently negotiating various state agencies
  to acquire licenses, and I figured I would write up what I did,
  because this is a goddamn blog.

<p><b>Electrician's License</b>

<p>This was <a href="http://www.lni.wa.gov/TradesLicensing/Electrical/LicenseExamEd/LicenseCert/Electrician/">more or less easy.</a> I have a weirdo subtype: Nonresidential
  lighting maintenance and lighting retrofit (7A). Getting this required two
  years of on-the-job experience, having the supervising electrician witness
  that I had that experience on a form, getting that form notarized, paying a
  fee, and then taking two tests.

<p>In the United States, all the states have been bullied into adopting a
  uniform electrical code, imaginatively titled
  the <a href="http://en.wikipedia.org/wiki/National_Electrical_Code">National
  Electrical Code.</a> Every couple years it is updated to phase out certain
  old practices of electrical work, and institute new safety methods. The
  individual states often lag by a year or two when adopting: the latest
  version is NEC 2011, but Washington is still on NEC 2008, for various
  amusing political reasons.

<p>One of those is <i>money.</i> The NEC, despite being, essentially, law; is
  actually produced by a for-profit industry association, which means the code
  will cost you <i>money,</i> and not a small amount of it: NEC 2011
  costs $75. Perniciously, when a state updates to the
  latest version of the code, <i>every single electrician in the state</i> has
  to buy a new copy, and take various courses on the updated rules. The
  perverse incentive for the NFPA is to issue updates as often as possible, to
  extract the maximum amount of rent from their legal monopoly.

<p>The licensing tests are open-book, but I didn't want to give the NFPA my
  money, so I pirated a PDF copy of NEC 2008, and studied that.

<p>That's the first test. The second test is
  on <a href="http://www.lni.wa.gov/FormPub/Detail.asp?DocID=2162">19.28
  RCW,</a> the Washington State law governing electrical work.

<p>Both of these tests are administered
  by <a href="https://candidate.psiexams.com/">PSI Exams,</a> a company that
  apparently exists solely for state governments to outsource test
  administration to. Presumably there's all sorts of kickbacks and bribe-taking
  involved here too, I didn't really want to dig too deeply.

<p>So. I paid my fees, scheduled the test, and studied the Law. Finally, the
  big day came. I took the test, and passed the NEC portion, but failed the
  RCW portion.

<p>The proctor printed out the sad evidence of my laziness and incompetence,
  and handed it to me. I looked at the paper, read it, then instantly forgot
  the information.

<p>This was one of the most egregious failures of rationality in my adult
  life, so listen carefully: Somehow, after all that, I became convinced that
  I had failed the <i>NEC</i> portion, not the RCW.

<p>This is partially explainable by the fact that the NEC part had pitched a
  couple slowballs over the plate regarding wire marking trivia. These would
  have been really, really easy to answer if I had a paper copy of the NEC
  with me... but I was trying to save money! Whoops. So I got those wrong, but
  still passed the test. My failure haunted me, somehow metastasizing in
  my head to "I flunked the entire test".

<p>Wrong.

<p>There's a waiting period before you can retake the test. In the time
  I purchased a physical copy of NEC 2008, and studied the heck out of
  it. I show up for the retest, code in hand, ready to trounce this test. I
  sit down at the computer... and the test is for 19.28 RCW.

<p>I am confused. I complete the test, easily passing it. (It picked a
  different random set of questions, ones I knew the answers to this time,
  apparently.)

<p>I pick up my book, walk out of the testing room, and tell the proctor that
  there is A Problem. I've been given the wrong test! I am <i>absolutely,
    unshakably certain</i> that I had failed the NEC part the first time, not
  the RCW part. A Mistake Has Been Made.

<p>The proctor is not having a good day. To be precise, she is not having a
  good <i>first</i> day on the job. She is not familiar with PSI's computer
  system, but figures out that I had taken the test
  that had been assigned to me. She calls PSI technical support (for
  apparently, the fifth time that day) and we investigate. The conclusion is
  reached that everything is working fine.

<p>I am <i>still</i> not convinced, but this is obviously not the place to
  resolve it. (The PSI testing center is a single, two-room office suite in a
  office park in a Seattle suburb) I'm holding things up for other people who
  actually took the right test, so I drive home, dreading what is obviously
  going to be a couple hours of phone hell, navigating the bowels of a giant
  bureaucracy to correct a weird computer error. This is going to really,
  really suck.

<p>I get home, open a beer, and spend 10 minutes on hold. I finally
  get a rep, tell her my name, social security number, blood type, and secret
  fear; she accesses my file, and tells me that I've passed both tests. I am
  now a 7A licensed electrician.

<p>"Really?"

<p>"Really."

<p>"Oh."

<p>I thank her. I hang up. I feel like biggest idiot in the entire world, the
  dumbest man who has ever, or will ever, live.

<p>So that's how I got my electrician's license. How I got my driver's license
  is similar in the broad strokes.

<p><b>Driver's license.</b>

<p>In Washington state, if you're over 18, all you need to get a learner's
  permit is to pass a knowledge test, and pass a simple eye exam. I spend half
  an hour waiting for my number, while watching a lot of alarmingly old people
  renew their driver's licenses.

<p>I pass the knowledge test with ease, (It's taken on a computer, which uses
  a <i>CRT-based</i> touchscreen! Blast from the past.) and receive my
  learner's permit on April 3rd, 2012.

<p>I don't know much about learning to drive, but I've <a href="http://everything2.com/title/June+26%252C+2012?author_id=541199#The%20Custodian">read a little</a>
  about learning how to fly, so I keep a logbook.

<p><a href="http://bbot.org/blog-images/license-logbook.jpg"><img src="http://bbot.org/blog-images/license-logbook-thumb.jpg"></a>

<p>Over the next month, I rack up 269.35 miles, and a number of hours that I
  really don't want to go through and add up, watch
  the <a href="http://www.youtube.com/playlist?list=PL2F646107C3D95D87&feature=plcp">instructional
  videos</a> produced by the DoL,
  until finally I decide that
  I'm ready to take the test. It is scheduled for May 14th, 2012.

<p><a href="http://bbot.org/blog-images/license-test.jpg"><img src="http://bbot.org/blog-images/license-test-thumb.jpg"></a>

<p>This is what it looks like when you fail a driving test. I got a 78/100,
  the passing score is 80/100.

<p>Highlight: 

<blockquote><p>"So, have you ever conducted a test where the guy hit someone?"

<p>"I can't answer that."

<p>"Oh."</blockquote>

<p>So how did I fail the driving test? It's easy: during the test, a specific
  phrase is used. It is, "rejoin traffic."

<p>When I took the test, it was a beautiful, sunny summer day. 70F, not a
  cloud in the sky. Driving tests are (almost always) conducted on empty side
  streets, since of course this is a driving <i>test,</i> and the driver may
  fuck up.

<p>The street is empty. The proctor says, "rejoin traffic". I glance into a
  mirror and, duh, see nobody, so I just drive into the street.

<p>No! Wrong! You're supposed to be pretending <i>that there is traffic.</i>
  They are looking for three specific things:

<ol>
<li>Checks mirror.
<li>Physically turns around and checks blind spot.
<li>Turns on turn signal.
</ol>

<p>If you miss any of those, you lose the maximum 4 points on that test,
  failing the section entirely. Do that often enough, and you fail the test.

<p>Don't do that. Perform those three actions. Even better: say them out loud
  ("Mirror, blind spot, turn signal") Driving instructors like to be talked
  to, they want to hear you thinking through things. I also repeated
  instructions back to them, ("Turn left at the upcoming intersection" "Turning
  left, roger") which you probably don't have to do, but they didn't seem to
  mind.

<p>I passed parallel parking perfectly... except for signaling.

<p>Minor point loss: at a stop sign with a blind corner, you're supposed to
  come to a complete stop before the white line, creep forward until you have
  visibility, come to another complete stop, then go.

<p>Something I was warned about by a friend who also recently took the test:
  the rules for parking on a hill are somewhat esoteric. (You have to point
  your wheels in a certain direction, depending on circumstance) Study them
  carefully, or else you'll be dinged the full 4 points on that test.

<p>Note: a perfect score on the driving test means that they'll never touch
  the scoring form. If they write anything at all, it's because you screwed
  up, and they're deducting points. (If you ask the instructor what you did wrong, they may or may not answer. I think they're
  not <i>supposed</i> to, but if it's clear that you're going to pass, they
  may bend the rules. This means that they won't help you when you
  actually <i>need</i> it, but oh well.)

<p>There's a couple of commonsense tips: 

<ul>
<li><i>Drive slow.</i> By default, I
  drive slowly enough to annoy my mother, so that wasn't really an issue, but
  still. 

<li><i>Bring a book to the DMV.</i> Or something, anything. I had to keep
  myself entertained for a couple hours. Don't be like me. Be smart.

<li><i>Don't argue with the driving instructor.</i> That cannot possibly
  help. Unless it's a very obvious, and very trivial mistake, ("Your headlights
  aren't on." "Actually, they are." "Oh.") then disagreeing with them isn't
  going to end well for you.
</ul>

<p>Anyway, I passed the test with trivial ease on my second try. Anticlimax ending!]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/06/13/biolite_camp_stove/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/06/13/biolite_camp_stove/</guid>
<title>biolite camp stove</title>
<dc:date>2012-06-13T23:35:54-07:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, Engineering</dc:subject>
<description><![CDATA[<p>So <a href="http://johnbiehler.com/2012/06/13/biolite-camp-stove-first-impressions/">John Biehler just reviewed the Biolite camp stove.</a> The gist is that it's a little wood stove which uses a thermoelectic junction to generate electricity that could be used recharge your phone, or whatever. At $129, it's a cute little gadget, that also happens to demonstrate why the TEC effect isn't used for commericial power generation.

<p>Let's look at the numbers:

<pre>Fire power output (peak): 3.4 kw (lo) 5.5 kw (hi)
USB power output: Max continuous: 2W @5V, Peak: 4W @5V</pre>

<p>Assume that it only manages the maximum continuous power on the "hi" mode. This gives us 2W/5500W = a magnificent final thermodynamic efficency of .036%]]></description>

</item>
</channel>
</rss>
