<?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>Filed under: important | the bblog</title>
<atom:link href="http://bbot.org/blog/archives/important/index-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>2012-05-11T00:27:47-04:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />

<item>
<link>http://bbot.org/blog/archives/2012/05/01/come_on_up_get_your_extremely_impractical_ideas_here/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/05/01/come_on_up_get_your_extremely_impractical_ideas_here/</guid>
<title>come on up, get your extremely impractical ideas here</title>
<dc:date>2012-05-01T13:25:01-04:00</dc:date>
<dc:creator>Samuel Bierwagen</dc:creator>
<dc:subject> important, Engineering</dc:subject>
<description><![CDATA[<p>So I've got a dumb idea, and in the hopes of getting it out of my head, I'm going to write a blog post about it.

<p>In 2006, <a href="http://www.dansdata.com/modularcar.htm">Daniel Rutter wrote about the "genset" option for the t/zero vaporware electric car.</a> The basic idea was this: A plug-in hybrid, but with the gasoline engine on a trailer. If you're taking a short trip, then you don't take the genset with you, because you don't need the weight. If you're going on a long trip, then you hook up the trailer, and enjoy the long range and fast refueling that a gasoline engine gives you. (Note that this scheme means you'll have a fairly large genset sitting around at home, which spends most of its time not being used.) This is part one.

<p>Part two: Heat engines have a surprisingly low maximum theoretical efficiency. The endoreversible heat engine efficiency equation is thus: (units are absolute degrees, Kelvin or Rankine)

<p><img alt="Endoreversible heat engine effciency equation" src="http://bbot.org/blog-images/heat-eq.png" width=112 height=51>

<p>The problem is that the Earth just isn't <i>cold</i> enough. Room temperature is 300 Kelvin! You're not going to want <i>T<sub>h</sub></i> to go much above 830K, or else you'll be producing nitrogen oxides in the exhaust. This gives a final endoreversible efficiency of 0.40. That's the maximum thermodynamic efficiency, and there ain't no way to beat thermodynamics.

<p>You can bend the rules a little, though. It's impossible to extract any more mechanical work from the waste heat, but it's still <i>heat,</i> you can use it for things that don't need low-entropy heat sources. Like, say keeping a house warm, or heating water.

<p>This is called <a href="https://en.wikipedia.org/wiki/Cogeneration">Cogeneration,</a> and depending on how you do it, you can get up to 90% total thermal efficiency. A popular home cogeneration system is the <a href="http://www.marathonengine.com/intro_eco.html">MicroCHP furnace,</a> a natural gas turbine that provides hot water and forced-air heating from its waste heat outflow. It can also run as a backup generator during power outages, in which case it vents waste heat outside.

<p>The synthesis of these ideas is obvious: Make a plug-in hybrid whose engine is a cogenerating furnace built around a multi-fuel gas turbine.

<p>A brilliant idea! There are some problems.

<p><b>1.)</b> MicroCHP turbines are designed to run on natural gas only. The "multi-fuel" version would be a second generation product. The first gen would have problems: the natural gas fueling infrastructure in the United States is a lot more sparse than the liquid-fuels infrastructure.

<p><b>2.)</b> The turbine is going to want a lot of cooling. Does a trailer get enough airflow?

<p><b>3.)</b> How well does the turbine tolerate road vibration?

<p><b>4.)</b> There's a user design problem: for a cogenerating furnace to work well, you want it at the center of your house, where all the waste heat goes to keeping you warm. This essentially means that every user of this car has to have an insulated, attached garage, or else they'll be losing some efficiency.

<p><b>5.)</b> There's a user interface problem: You can drive out of the garage with the trailer attached easily enough, but you'll then have to back into the garage, trailer first, and then reattach all the connections. Manually. Every time you want to use it.

<p><b>6.)</b> There's a use-case problem: Every time you drive away with the turbine, you drive away with the house's sole source of heat and hot water. Fine with a single-occupancy home, might be a problem for a family.

<p><b>7.)</b> It is certain that in the near future, cripplingly heavy taxes will be applied to fossil-fueled vehicles. Will this count as one? Maybe?

<p><b>8.)</b> This idea isn't terribly original. There's a lot of prior art here. Getting a patent will be an uphill battle.

<p>So, there. Eight reasons why I'm talking about this idea in a blog post, rather than a room of serious men in suits.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/03/11/fun_with_spiders/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/03/11/fun_with_spiders/</guid>
<title>fun with spiders</title>
<dc:date>2012-03-11T22:00:39-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Game Design</dc:subject>
<description><![CDATA[<p>So I grepped my logs for everything that asks for robots.txt, <a href="http://bbot.org/spiders.txt">and the results were interesting.</a>

<p>Firstly, <b>there's a lot of spiders out there!</b>

<pre>$ grep "06/Mar" spiders.txt | wc -l
69</pre>

<p>When an article isn't trending, or I haven't posted lately, bbot.org does about 1200 hits and 300 uniques a day. Some spiders request robots.txt multiple times, but cloaked spiders don't request robots.txt at all, so it's a wash. This means that fully a fifth of my traffic is from machines.

<p>This is odd, because in terms of actual traffic, <b>Google is the only game in down.</b> 

<p>The traditional social contract between search engines and site owners is that you let them download your site, and in return, they drive traffic to you. This contract is broken, <a href=http://www.codinghorror.com/blog/2011/01/trouble-in-the-house-of-google.html>and has been for years.</a> <b>Google provides 99.98% of search traffic.</b>

<p>Microsoft, Yahoo, Gigablast and Blekko maintain fabulously comprehensive databases, updated regularly, which nobody ever uses. (DuckDuckGo strips referrer headers from their outgoing traffic, so they might be super popular, I have no way to know) This doesn't even count the <em>foreign-language</em> search engines, like Baidu, Soso Naver, Daum, or Yandex, who I also never ever see traffic from, since my site's in English.

<p>Now, <a href=http://www.archiveteam.org/index.php?title=Robots.txt>I don't use robots.txt,</a> but still. What a waste of time and money!

<p>Spiders can be roughly grouped into three groups: Google, Everybody else, and <b>spammers.</b> Brandwatch, Sitexploration, Seoprofiler, Linkdex, and Metadatalabs are all "SEO tools", which want to charge you money to get reports on their vague guess at how many people link to you. Spotinfluence even wants you to <i>sign in via Facebook</i> to begin using their site, and if you're dumb enough to do that, you deserve whatever they do to your profile.

<p>Some spiders don't take no for an answer.

<pre>208.115.113.85 - - [01/Mar/2012:14:09:51 -0500] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"
208.115.111.69 - - [01/Mar/2012:15:37:17 -0500] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"
208.115.113.85 - - [01/Mar/2012:18:24:34 -0500] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"
208.115.111.69 - - [01/Mar/2012:19:56:54 -0500] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"
208.115.113.85 - - [01/Mar/2012:22:02:14 -0500] "GET /robots.txt HTTP/1.1" 404 169 "-" "Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)"</pre>

<p>Some <i>really</i> don't.

<pre>107.21.161.122 - - [06/Mar/2012:09:46:53 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
107.21.161.122 - - [06/Mar/2012:09:46:53 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
184.73.70.151 - - [06/Mar/2012:14:31:17 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
184.73.70.151 - - [06/Mar/2012:14:31:17 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
107.20.100.1 - - [06/Mar/2012:22:27:30 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
107.20.100.1 - - [06/Mar/2012:22:27:31 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
107.20.100.1 - - [06/Mar/2012:22:54:24 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"
107.20.100.1 - - [06/Mar/2012:22:54:25 -0500] "GET /robots.txt HTTP/1.0" 404 169 "-" "linkdex.com/v2.0"</pre>

<p>I'm not sure what the rationale is for using such a short timeout is, or asking multiple times. Presumably if a robots.txt request returns a 404, and has been doing so for the last two years, one isn't going to appear five hours later. Google, on the other hand, only checks to see if I've changed my mind twice a day.

<p>While I've got my logs open, I'd like to complain about this: (original domain replaced with .su)

<pre>91.229.175.130 - - [11/Mar/2012:19:52:39 -0400] "GET /clubwearguru.su/blog/clubwearguru.su/archives/clubwearguru.su/2009/clubwearguru.su/07/clubwearguru.su/index.htmlhxxp://bbot.org/clubwearguru.su/blog/clubwearguru.su/archives/clubwearguru.su/2009/clubwearguru.su/07/clubwearguru.su/index.html HTTP/1.0" 404 169 "-" "Mozilla/4.0 (compatible; ICS)"</pre>

<p>This appears to request a valid page on my server, but with a domain inserted after every /. Does this actually work? Do people really automatically post their server logs online? The mind boggles.

<hr>

<p>If you liked this, you should donate! <a href=http://bbot.org/blog/archives/2012/03/09/donate_or_die_2012/>bbot.org is out of money,</a> and is not long for this world otherwise.

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick" /> <input type=
"hidden" name="hosted_button_id" value="47KW5AT4UX38E" />

<input type="image" src=
"https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif"
border="0" name="submit" alt=
"PayPal - The safer, easier way to pay online!" /> <img alt=""
border="0" src=
"https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1"
height="1" /></form>]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/03/09/donate_or_die_2012/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/03/09/donate_or_die_2012/</guid>
<title>donate or die 2012</title>
<dc:date>2012-03-09T19:27:50-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Meta</dc:subject>
<description><![CDATA[<p>Well. So it's come to this. (Again.)

<p><a href=http://bbot.org/blog/archives/2011/01/24/wherein_bbot_begs_for_money/>Last year</a> I ran out of server money, and had to beg for funds. However, I'm no more employed than I back then, and I'm out of cash. Again.

<p>Midnight and p4ch3c0 stepped up with incredibly generous donations, but in the intervening 14 months, they have ascended bodily into Heaven, to hang out with the other saints, and the Catholic church has canonized their Earthly remains. So I can't shake them down for any more money. I tried talking to the Pope, but I could feel the force of his disapproving frown over the telephone, so no dice there.

<p><form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="47KW5AT4UX38E">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form></p>

<p>Bitcoin address: 1MjsXQNNXJNTbqis7yWVsShTiLa95aV6Mv

<p>bbot.org has no ads. It is entirely reader-supported.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/03/06/not_to_mention_road_salts_going_to_kill_it_after_a_decade/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/03/06/not_to_mention_road_salts_going_to_kill_it_after_a_decade/</guid>
<title>not to mention road salt's going to kill it after a decade</title>
<dc:date>2012-03-06T20:27:23-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Engineering</dc:subject>
<description><![CDATA[<p>So <a href="http://www.cartalk.com/content/mike-nuts-wanting-car-thats-built-last-and-last-and-last">CarTalk recently featured a question</a> from a guy who wanted a diesel car that would last 60 years, and 500,000 miles. (804,000 kilometres) The Tappet Brothers said he was crazy, that it was a dumb idea, but didn't actually answer the question.

<p>Now, it <i>is</i> a dumb question, but I'd like to try a stab at it.

<p>First of all, forget diesel. In fact, forget anything fueled by hydrocarbons. If you've glanced at the television in the last decade, you'd know that fossil fuels are a real bad long-term bet.

<p>This means going electric, and (in 2012), paying a fairly steep price premium. Electric cars are also a mixture of good and bad news, from a maintenance standpoint.

<p><b>The good:</b> Many, many fewer moving parts. An internal combustion engine is an unholy pile of camshafts, crankshafts, pistons, gears, and fans; many of which run at high speeds, close tolerances, and very high temperatures. Maintenance is ongoing, and nontrivial.

<p>In comparison, an induction motor has one moving part: the rotor. Over the course of 804,000 kilometres, you'll be going through a bunch of shaft bearings, but that's more or less it, for the motor. Plus, the extremely wide torque bands of electric motors mean that the gearboxes only need one or two gears, and if you use <a href="https://en.wikipedia.org/wiki/Wheel_hub_motor">hub motors,</a> and are willing to sacrifice high speed, you can run <i>direct drive.</i> This means the only consumable items on an electric car are the tires, the windshield wipers, and:

<p><b>The bad:</b> The battery.

<p>We've been trying to figure out a good way to store electricity for the last century, and so far, haven't made a whole lot of progress. The best of the best, <a href="https://en.wikipedia.org/wiki/Lithium-ion_battery">lithium-ion,</a> is both heavier, and more expensive, per joule than gasoline. They're prone to bursting into extremely vigorous lithium-metal fires when abused, slowly discharge themselves when left alone, and have surprisingly short lifetimes when heavily used. (Say, in a car) Deep discharges also burn battery lifetime, say, if you bought an electric car that advertised a hundred kilometre range, and tried to actually drive a hundred kilometres.

<p>Replacement costs are ball-punchingly steep: most of the cost of an electric car is in the battery pack, so replacing it is like buying most of a brand new car. If you drive it <i>very, very gently,</i> and never let it get below 50% charge, you'll probably be buying a new battery every 150,000 kilometres. At ~US$30,000 a pop, that adds up.

<p>There's a degree of amortization here: over time, battery technology will get better, but it's anybody's guess as to how <i>much</i> better it will get.

<p>In the article, Tom and Ray list off about a dozen features in today's cars that didn't exist 60 years ago. Power/ABS brakes, fuel injection, modern suspension technologies, etc etc. This is a bit disingenuous: there's very little room left for improvement, the gasoline car of 2012 is about as good as gasoline cars will ever be, except for one thing.

<p><a href="https://en.wikipedia.org/wiki/Autonomous_car">Autonomous cars.</a>

<p>The self driving car has been a staple of science fiction for the last, well, 60 years, but we're getting close. Real close. My wild-ass guess is that between DARPA and Google, the technology for driverless cars will be ready for prime time in five years.

<p>The wildcard here is the legal side. We could have cars that drive themselves flawlessly, but without laws that let them operate on the street, they'll be useless.

<p>Assuming we leap that hurdle, the big driver (ah ha ha) for autonomous car adoption will be insurance companies. And after driverless vehicles become common, we'll see laws that ban manual operation of vehicles anyplace where an out-of-control car could injure someone else.

<p>So, no, buying a car today that would be useful for 60 years is not going to be easy.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/02/24/the_pinnacle_of_evolution/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/02/24/the_pinnacle_of_evolution/</guid>
<title>the pinnacle of evolution</title>
<dc:date>2012-02-24T21:43:44-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Engineering, nerdery</dc:subject>
<description><![CDATA[<p>(<i>Attention conservation notice:</i> Nothing said here is at all novel.)</p>

<p>So Maciej Cegłowski <a href="http://idlewords.com/2012/02/bia%C5%82owie%C5%BCa_forest.htm">has updated his blog</a> for the first time in four months. Upon encountering the novel task of "actually generating HTML", his gimcrack blogging software sprayed a couple random posts across his RSS feed, one of which was the venerable <a href="http://idlewords.com/2010/03/scott_and_scurvy.htm">2010 essay on scurvy in Antarctic exploration.</a> Which, combined with some other things I've read recently, got me to thinking.

<p><a href="https://en.wikipedia.org/wiki/Vitamin_C">Vitamin C</a> is just C<sub>6</sub>H<sub>8</sub>0<sub>6</sub>. Carbon, hydrogen, oxygen. All the atoms are there in glucose, just in a slightly different pattern. You could drink sugar water all day and never get scurvy, if we could synthesize it ourselves.

<p>Except we can't, because ten million years ago a primate species discovered that they ingest enough vitamin C in the natural environment to get by without making it themselves.

<p>A regular sideshow on my other blog is finding terrible Tumblr themes, <a href="http://c1qfxugcgy0.tumblr.com/tagged/CSS-disasters">then picking apart their CSS.</a> I've learned a lot about CSS in the process, in the <a href="http://richrap.blogspot.com/2011/10/art-of-failure-when-3d-prints-go-wrong.html">"gaze upon this disaster, young one, and learn well its lessons"</a> sense. But even the most incompetently written theme isn't as poorly designed as <a href="https://en.wikipedia.org/wiki/Vasopressin">vasopressin,</a> which, among other things, controls:

<ol>
<li>Water permeability of distal tubule and collecting duct cells in the kidney.
<li>Increasing permeability of the inner medullary portion of the collecting duct to urea by regulating the cell surface expression of urea transporters.
<li><i>Memory formation.</i>
<li>Peripheral vasoconstriction as a response to blood loss from serious injury.
<li><b><i>Pair bonding.</i></b>
</ol>

<p>The same hormone that controls your blood pressure also determines if you can <i>form a relationship.</i>

<p>From <a href="https://en.wikipedia.org/wiki/Arginine_vasopressin_receptor_1A">"Arginine vasopressin receptor 1A":</a>

<blockquote>Homozygosity in allele 334 of RS3 is associated in men (but not women) with problems with pair-bonding behavior, measured by traits such as partner bonding, perceived marital problems, marital status, as well as spousal perception of marital quality.[19]<br><br>

In a study of 203 male and female university students, participants with short (308-325 bp) vs. long (327-342) versions of RS3 were less generous, as measured by lower scores on both money allocations in the dictator game, as well as by self-report with the Bardi-Schwartz Universalism and Benevolence Value-expressive Behavior Scales; although the precise functional significance of longer AVPR1A RS3 repeats is not known, they are associated with higher AVPR1A postmortem hippocampal mRNA levels.[5]</blockquote>

<p><i>Who the fuck designed this?</i> The answer is, of course, "nobody". The <a href="http://lesswrong.com/lw/kr/an_alien_god/">blind idiot god</a> of evolution cares not at all for <a href="https://en.wikipedia.org/wiki/Separation_of_concerns">separation of concerns,</a> or <a href="http://www.catb.org/jargon/html/E/elegant.html">design elegance,</a> it just cares about how many offspring are produced. For evolution, the person who died at the age of 29, with six children, and the person who lived for two hundred years and won six dozen Nobel prizes, but never had children, it considers the latter person to have <i>failed.</i>

<p>It's even a mistake to think of evolution as an "entity" with "intent" or "purpose": evolution is the simple historical fact that the genes of the organisms which produce more offspring are more frequent in the general population. And so we have <a href="http://sabre.ucsf.edu/docs/Science-2011-Wu-243-7.pdf">white blood cells that trigger diabetes when they <i>don't</i> have parasites to combat,</a> or the thousand and one autoimmune diseases of an environment that is <a href=http://en.wikipedia.org/wiki/Hygiene_hypothesis>too clean:</a> the blind flailing of an immune system fighting a battle that's already won.

<p>The human body is the ultimate <a href=http://en.wikipedia.org/wiki/Dependency_hell>tangle of dependencies,</a> nobody sat down with a clean sheet of paper and said, "Alright, I'll design this anthropomorphic replicator <a href=http://en.wikipedia.org/wiki/Gut_flora>so that bacteria outnumber the endogenous cells 10 to 1.</a>" No, of course not! But bacteria were endemic in the ancestral environment, and so they colonized the human body, just as they've colonized every square millimetre on the entire planet.

<p>It's almost amusing to watch the naturists <a href=http://en.wikipedia.org/wiki/Probiotics>try to spin this,</a> as if it's a good thing that fully 30% of fecal mass is bacteria! You had to <i>eat</i> that food, yet it's being wasted on making bacteria. A prime example of <a href=http://en.wikipedia.org/wiki/Hill_climbing>local maxima.</a> You could imagine a mutant human with stomach enzymes that could digest oligosaccharides itself, without needing bacteria-- but the bacteria are already there. There's no fitness advantage, all paths lead down from there, and evolution has no foresight. You need two unlikely mutations to occur in the same individual at the same time (oligosaccharidease and an immune response to whatever oligosaccharide bacteria we already use) to acquire a fitness advantage, and that coincidence will be vanishingly rare.

<p>A pretty safe bet is that two hundred years from now, the idea of "vitamins" will be a quaint anachronism. Having to consume minerals is going to <a href=http://en.wikipedia.org/wiki/Nuclear_transmutation>be with us for a while,</a> barring really surprising breakthroughs in nuclear reactor miniaturization; but the need to periodically ingest acorbic acid is a bug, which will be patched sooner rather than later.

<p><b>EDIT:</b> There were about a dozen comments calling out how terrible this post looked on mobile browsers. Sorry, guys! Fixed.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/02/16/using_applicationecmascript_on_nginx/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/02/16/using_applicationecmascript_on_nginx/</guid>
<title>using application/ecmascript on nginx</title>
<dc:date>2012-02-16T09:12:36-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Linux</dc:subject>
<description><![CDATA[<p>So while I was browsing the Wikipedia article on <a href="https://en.wikipedia.org/wiki/Internet_media_type">Internet Media Types,</a> (I am a very boring person) I noticed this:</p>
<blockquote>
<ul>
<li><code>application/ecmascript</code>: <a href="https://en.wikipedia.org/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>/<a href="https://en.wikipedia.org/wiki/JavaScript" title="JavaScript">JavaScript</a>; Defined in <a class="external mw-magiclink-rfc" href="https://tools.ietf.org/html/rfc4329">RFC 4329</a> (equivalent to <code>application/javascript</code> but with stricter processing rules)</li>
</ul>
</blockquote>
<p>Hey now, what's all this then? "Stricter processing rules?" I <em>love</em> stricter processing rules! Let's look at that RFC:</p>
<pre>3.  Deployed Scripting Media Types and Compatibility

   Various unregistered media types have been used in an ad-hoc fashion
   to label and exchange programs written in ECMAScript and JavaScript.
   These include:

      +-----------------------------------------------------+
      | text/javascript          | text/ecmascript          |
      | text/javascript1.0       | text/javascript1.1       |
      | text/javascript1.2       | text/javascript1.3       |
      | text/javascript1.4       | text/javascript1.5       |
      | text/jscript             | text/livescript          |
      | text/x-javascript        | text/x-ecmascript        |
      | application/x-javascript | application/x-ecmascript |
      | application/javascript   | application/ecmascript   |
      +-----------------------------------------------------+</pre>
<p>So, it looks like a typical web "standards" clusterfuck. I had been wondering why nginx served Javascript with the application/x-javascript mime-type, <a href="https://tools.ietf.org/html/draft-ietf-appsawg-xdash-02">which was used for non-standard protocols,</a> and now I know.</p>
<p>The only use of JavaScript on bbot.org, <a href="https://code.google.com/p/google-code-prettify/">prettify.js,</a> a Javascript-based code prettyprinting package, is actually a prime use for bleeding edge standards wankery. Code highlighting is pure <a href="https://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a> so the readers still using IE6 on their 2002-vintage PowerPC iMacs shouldn't miss anything.</p>

<p>(My prettify.js implementation is actually backported from my <a href="http://catb.org/jargon/html/S/signal-to-noise-ratio.html">low-signal, high-noise</a> adjunct blog, where I wrote <a href="http://c1qfxugcgy0.tumblr.com/post/17312673810/add-fast-clever-syntax-highlighting-to-tumblr">a pair</a> <a href="http://c1qfxugcgy0.tumblr.com/post/17363683243/wait-a-minute">of posts</a> on the topic.)

<p>Enabling it on nginx is fairly easy. Just add a line to <code>/etc/nginx/mime.types</code>:</p>

<pre>    application/ecmascript                es;</pre>

<p>This will deliver any file with the .es extension as application/ecmascript, which should Just Work in any modern browser. Pow! Whammo! Easy!</p>

<p>However, nginx by default will serve it uncompressed, and with a fairly short cache lifetime. Let's change that.

<p>First, add <code>
    application/ecmascript
    </code>
  to wherever you keep your <code>
    <a href="http://wiki.nginx.org/HttpGzipModule#gzip_types">gzip_type</a>
    </code>
  declarations. (In my case, <code>
    conf.d/compression.conf
    </code>
  ) Next, tell nginx to deliver it with the proper cache headers. In my case, I already had a <code>
location{}
</code> block inside my <code>
    server{}
    </code>
  virtual host block that did that for a bunch of filetypes, so I added es to it:
</p>

<pre>location ~* \.(?:ico|css|js|gif|jpe?g|png|es)$ {
  expires max;
  add_header Cache-Control public;
}</pre>

<p>This matches against a bunch of extensions, (including both jpg and jpeg) and delivers them with the Cache-Control: public header, as well as the maximum allowable time for the Expires header, which for nginx is Thu, 31 Dec 2037 23:55:55 GMT. This is a bit silly, since any browser will request a new copy long, long before the year 2037, but hey, why the hell not. Here's what the complete headers look like now:

<pre>bbot@neon:~$ curl -I --compressed bbot.org/prettify.es
HTTP/1.1 200 OK
Server: nginx/1.1.8
Date: Thu, 16 Feb 2012 13:48:01 GMT
Content-Type: application/ecmascript
Last-Modified: Thu, 16 Feb 2012 12:53:10 GMT
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Cache-Control: public
Content-Encoding: gzip</pre>]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/02/02/the_state_of_the_reprap_field/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/02/02/the_state_of_the_reprap_field/</guid>
<title>the state of the reprap field</title>
<dc:date>2012-02-02T04:11:14-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Engineering</dc:subject>
<description><![CDATA[<p>I've been looking at <a href=http://reprap.org/wiki/RepRap_Family_Tree>RepRap derived 3D printers</a> recently, and what I'm seeing is encouraging.

<p>The basic idea of the <a href=https://en.wikipedia.org/wiki/RepRap>RepRap project</a> is to build a self REPlicating RAPid prototyping machine, in the vein of the von Neumann universal fabricator. This is, of course, very very hard to do; and the RepRap project is nowhere near achieving full closure, there are still a great many "vitamins", components needed for self replication that the printer can't make itself. (Exactly analogous to vitamins in the conventional sense: biomolecules required for life, which the body can't synthesize itself.)

<p>I've been following RepRap <a href=http://hackaday.com/2006/02/15/reprap-the-replicating-rapid-prototyper/>for six years,</a> and for the first five of those years, it hasn't been a very good bet.

<p>A FDM <a href=https://en.wikipedia.org/wiki/3D_printing>3D printer</a> is exactly like a 2D inkjet printer, except with a Z axis, and with a hot glue gun instead of an ink printhead.

<p>Those of you who are familiar with <a href=https://en.wikipedia.org/wiki/Motion_control>motion control</a> hardware and plastics extrusion are currently feeling faint chills of foreboding, and indeed, this is a Hard Problem. The printer hot end needs to be able to extrude thousands of metres of filament without requiring maintenance, while still being made out of common materials, as well as being as light, (print speed is limited by how fast the printer can move the extruder around) and as cheap as possible. The X and Y axis have to be accurate, precise, and as cheap as possible. The print surface turns out to be another big problem: the RepRap machine can't use a heated build envelope, for power consumption reasons, (The plan is to eventually have 1 RepRap per 1 human person) so you need something that sticks very well to hot filament, but not at all to cold filament, and also doesn't require replacement after only being printed on six or seven times.

<p>Subscribing to <a href=http://blog.reprap.org/>the RepRap blog</a> for these last six years has been a front row seat to watching lots of very smart people beat their heads against a very hard problem. It's always been possible to make a RepRap, if you wanted to spend a great deal of money in return for a machine that <a href=http://www.neufeld.newton.ks.us/electronics/?cat=24>was not enormously reliable.</a>

<p>It occurs to me that 3D printers have described a familiar arc of technological development, roughly paralleling that of general purpose computers. In The Beginning, there were commercial printers made by big names such as Stratasys, which resembled mainframe computers with their thrillingly large price tags, obligatory service contracts, <a href=http://haveblue.org/?p=938>price gouging on spare parts;</a> and physically, being large steel boxes.

<p>Then came the first few generations of RepRap, which were essentially the <a href=https://en.wikipedia.org/wiki/Altair_8800>Altair 8800</a> to Stratasys' PDP-10. A 3D printer that fits on your desk, and doesn't cost $20,000! Wow! Amazing! Sure, you have to input programs by flipping toggles on the front panel, but it's a <em>desktop computer.</em> Would a mere mortal human want to buy one? Well, uh...

<p>What we really need is an Apple 2. 

<p>I think I've found one. Well, one and a half.

<p><a href=http://bbot.org/blog-image/reprappro-huxley.jpg><img src=http://bbot.org/blog-images/reprappro-huxley-thumb.jpg></a>

<p>The <a href=http://reprappro.com/Huxley>RepRapPro Huxley</a> is a kit of the latest RepRap design, with the sixth generation electronics, the fancy new <a href=http://reprap.org/wiki/Erik%27s_Bowden_Extruder>Bowden extruder,</a> and <a href=http://blog.reprap.org/2011/11/quality-open-source-for-win-part-deux.html>really stellar print quality.</a> The kit's $727, shipped, to North America. This is the easy option.

<p>(Full disclosure: I'd buy the cheaper parts kit, without RP parts, since I live near <a href=http://metrixcreatespace.com/>Metrix Create Space,</a> and could print them myself.)

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

<p>Of course, I can't do anything the easy way.

<p>The <a href=http://www.buildlog.net/blog/2012/01/the-quantum-ord-bot/>Quantum ORD bot</a> (<a href=http://www.buildlog.net/forum/viewtopic.php?f=16&t=1035>build log thread</a>) is based on the <a href=http://reprap.org/wiki/Printrbot>Printrbot</a> design, which has become thumpingly unpopular in the RepRap community for various boring reasons; and has been reverse-pirated as the <a href=http://reprap.org/wiki/Wallace>Wallace</a> model.

<p>The problem with the mainstream RepRap model is that each axis has three components: the structural members, (Threaded rod) bearing surfaces, (Smooth steel drilling rod) and motion control elements. (Timing belt in the XY axes, more threaded rod in the Z axis) Since the structural members and the bearing surfaces are both static, you can just combine the two, and eliminate a lot of vitamins from the design.

<p>So good so far. Except that the Printrbot is a bit of a toy: its design goal was to be as cheap as physically possible, which results in tradeoffs regarding frame stiffness, printing speed, build volume and mechanical reliability. (As Jamie Hyneman said, there is no free lunch with machines. Any money you save on mechanical quality, results in more time spent trying to keep the damn thing functional) Wallace is a better design, but it's barely a month old, and there are no commercial suppliers for it at all, and only one operational example of the design in the field.

<p>Enter <a href=http://makerslide.com/>Makerslide.</a>

<p>(Ignore the ad copy on that page: Barton's a bit slow to update it. The Kickstarter's finished, you can buy it now, right now, at this very moment.)

<p>Makerslide is just structural aluminum extrusion, as used in the venerable <a href=http://www.5bears.com/cnc01.htm>5bears CNC mill,</a> but with bearing surfaces molded into its surface. Which makes it a prime candidate to replace the drill rod in the Printrbot design, and get a vastly stiffer machine frame in the bargain; which also lets you scale up the build volume. With a <a href=http://shop.3dprinting-r2c2.com/index.php/r2c2-starter-kit-plus.html>R2C2 kit,</a> it should be pretty easy to build a fast, reliable, FDM machine!

<p>Oh wait, I don't have any money.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/01/14/fun_and_games_with_unix_pipes/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/01/14/fun_and_games_with_unix_pipes/</guid>
<title>fun and games with unix pipes</title>
<dc:date>2012-01-14T21:07:46-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Linux</dc:subject>
<description><![CDATA[<p>So <a href=http://explosivetheorist.tumblr.com/>Atomic's</a> started a <a href=http://legenndary.tumblr.com/>new thing.</a> The <a href=http://legenndary.tumblr.com/post/15781682262/roppongi-hills-japan>first post</a> is interesting, however, probably not in the way she intended.

<p>It consists of an image thumbnail named <code><a href=http://data.tumblr.com/tumblr_lxr0pclKpO1rn6clco1_500.gif>tumblr_lxr0pclKpO1rn6clco1_500.gif</a></code>, which links to the larger version, <code><a href=http://data.tumblr.com/tumblr_lxr0pclKpO1rn6clco1_1280.gif>tumblr_lxr0pclKpO1rn6clco1_1280.gif</a></code>. _500.gif is odd in several ways. For one, it's actually a JPEG, delivered with the image/jpeg mime-type. Secondly, it's <em>huge,</em> weighing in at 1,369 kilobytes... for a 500x346 pixel thumbnail. The original GIF is only 147 kilobytes, which makes the thumbnail <em>nine and a half times larger</em> than the full size file.

<p><a href=http://bbot.org/blog/archives/2011/11/05/shooting_yourself_in_the_foot_with_great_verve_and_accuracy/>We've been down this road before.</a> Let's take a look at the file.

<pre>exiftool -htmlFormat -v tumblr_lxr0pclKpO1rn6clco1_500.gif &gt; <a href=http://bbot.org/projects/report.html>report.html</a></pre>

<p>If you look at that report, you'll see that the first 57,324 bytes are a perfectly normal quality 92 JPEG file, of an entirely sane size for a 500x346 image. And then there's 1,344,572 bytes of "unknown trailer", which starts with 0xffd9, the JPEG magic number. Let's do a quick <a href=https://github.com/tmbinc/bgrep>bgrep...</a>

<pre>bbot@neon:~$ bgrep ffd9 tumblr_lxr0pclKpO1rn6clco1_500.gif 
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0000dfea
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0001c111
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0002a300
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000385b0
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0004690c
tumblr_lxr0pclKpO1rn6clco1_500.gif: 00054d19
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0006318d
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000716aa
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0007fc70
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0008e2fe
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0009ca24
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000ab212
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000b9a00
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000c8126
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000d67b4
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000e4d7a
tumblr_lxr0pclKpO1rn6clco1_500.gif: 000f3297
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0010170b
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0010fb18
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0011de74
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0012c124
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0013a313
tumblr_lxr0pclKpO1rn6clco1_500.gif: 0014843a
tumblr_lxr0pclKpO1rn6clco1_500.gif: 00156426</pre>

<p>Huh. 24 instances. 24 * 57 kilobytes = 1368, which is about how big our file is. How many frames are there in the original animation?

<pre>bbot@neon:~$ identify tumblr_lxr0pclKpO1rn6clco1_1280.gif | wc -l
24</pre>

<p>Somehow, when producing the 500 pixel thumbnail, Tumblr managed to produce a thumbnail for each individual animation frame, then concatenated all of them.

<p>Wow.

<p>Whoops.

<p>How did they do this? Well, I'm guessing it was a pipe.

<p>One of ssh's <a href=http://linux.icydog.net/ssh/piping.php>many, many party tricks</a> is providing a transparent unix pipe between two machines. Presumably Tumblr has a front-end machine that accepts uploads from users, scales it down with Imagemagick, then transfers it to Amazon S3. Here's a one-liner that replicates the bug:

<pre>$ convert -resize 500 input.gif jpg:- | ssh user@server.example.com "dd of=output.gif"</pre>

<p>It's less obvious <em>why</em> this command is being executed. Additionally, while it replicates the bug, it doesn't produce the exact same file, it's about 141 kilobytes smaller.

<p>One possible reason is that Imagemagick chokes on the original file, becoming extremely confused when you ask it to scale the overlay frames. Given this command, which should Just Work:

<pre>convert -resize 500 -layers optimize tumblr_lxr0pclKpO1rn6clco1_1280.gif 500.gif</pre>

<p>Produces this:

<p><img src=http://bbot.org/blog-images/500.gif></p>

<p>Which is both extravagantly broken, and ten times larger than the original, larger in image dimensions, file. So Tumblr might have added a step in their asset pipeline to normalize certain GIF animations that Imagemagick chokes on.

<p>(There might be a more graceful way to do this than converting it to a Motion PNG. If there is, tell me.)

<pre>convert input.gif mng:- | convert -resize 500 -layers optimize - output.gif</pre>

<p><img src=http://bbot.org/blog-images/501.gif></p>

<p>As you can see, this actually works, though the "thumbnail" is still twice the size of the original file.

<p>Now, (putting ourselves in the shoes of the nameless sysadmin who was doing this) let's add the next step, where we actually upload the file to the remote server. Except that, whoops! We were hacking on the JPEG thumbnail code earlier, and we accidentally tell Imagemagick to send the image data as JPEG.

<pre>convert input.gif mng:- | convert -resize 500 - jpg:- | ssh user@server.example.com "dd of=output.gif"</pre>

<p>And so, we end up with this ridiculous situation where the thumbnail is nine times bigger than the original file. I guess the moral of the story is to always check to make sure that something which is supposed to make files smaller, <em>actually</em> makes files smaller.

<p><a href=http://c1qfxugcgy0.tumblr.com/post/14692117697/fun-with-the-command-line>(Previously.)</a>]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2012/01/08/when_pretty_secure_isnt_secure_enough/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/01/08/when_pretty_secure_isnt_secure_enough/</guid>
<title>when &quot;pretty secure&quot; isn't secure enough</title>
<dc:date>2012-01-08T14:58:11-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, Linux</dc:subject>
<description><![CDATA[<p><a href=http://www.osnews.com/story/25469/Richard_Stallman_Was_Right_All_Along>"Richard Stallman Was Right All Along"</a>

  <blockquote>"As a member of the Walkman generation, I have made peace with the fact that I will require a hearing aid long before I die, and of course, it won't be a hearing aid, it will be a computer I put in my body," Doctorow explains, "So when I get into a car - a computer I put my body into - with my hearing aid - a computer I put inside my body - I want to know that these technologies are not designed to keep secrets from me, and to prevent me from terminating processes on them that work against my interests."</blockquote>

<p>Something I've been thinking about off and on for the last seven years or so, is what the security model for an em would look like.

<p>Background info, for non-transhumanists: "Em" is a short, pithy word coined by <a href=https://en.wikipedia.org/wiki/Robin_Hanson>Robin Hanson</a> to refer to a person <a href=https://en.wikipedia.org/wiki/Whole_brain_emulation>running on a computer.</a> The basic idea behind Whole Brain Emulation is to scan a human brain with an electron microscope, then make a model of all the scanned atoms, and run that model in a physics simulator, which will run all the chemical interactions between neurons like it was a physical brain. This model will have all the memories of the person that was scanned, but has all the advantages of software: functional immortality, easy copying, can be run millions of times faster than real time...

<p>The problem arises when you start to think about what kind of computer you're going to run this simulation on. It must be completely, <em>flawlessly,</em> secure. It absolutely <em>cannot</em> be hacked, because once you lose control of that computer, that's the ballgame. A copy of your brain-state is <em>you.</em> It's got all your memories, knows all your passwords.

<p>That's bad. It gets worse: a brain-state is software, it can't "die" in the organic sense of the word. You could torture it to death, over and over, for a thousand years; if you felt like it. <a href=http://www.infinityplus.co.uk/stories/colderwar.htm>"They populate the simulation spaces of its mind, exploring all the possible alternative endings to their life."</a>

<p>So it's pretty clear that the operating system for a em is going to have be very special indeed. <a href=http://www.tomshardware.com/reviews/qubes-os-joanna-rutkowska-windows,3009.html>Quebes</a> isn't paranoid enough. <a href=http://openbsd.org/>OpenBSD</a> isn't paranoid enough. <a href=http://ertos.nicta.com.au/research/sel4/>seL4</a> isn't paranoid enough. You will need a degree of paranoia hitherto unseen outside of nuclear weapons safety protocols and space shuttle flight control systems. Multiple, concentric, airgapped systems. ASICs that <a href=https://en.wikipedia.org/wiki/Smart_card>refuse to export their contents.</a> Physical safety interlocks. <a href=https://en.wikipedia.org/wiki/Power_analysis>Power draw monitoring.</a> (Here being used in a somewhat unusual way: monitoring the power draw of a secure processor to verify that it <em>hasn't</em> been compromised) <a href=https://en.wikipedia.org/wiki/Formal_verification>Provably secure code.</a> Self-destruct charges!

<p>Some of the sting of "killing yourself rather than be captured by the enemy" is taken out by having a couple dozen copies as backup, however.

<p>This is a bar set amazingly, impossibly high; and it goes absolutely without saying that no general-purpose commercial OS clears it. However, many of the freedom-destroying technologies cut both ways. The Xbox 360, which has been out for six years now, uses <a href=https://en.wikipedia.org/wiki/Code_signing>code signing</a> to enforce a closed platform. Downside: no third-party software, at all. Upside: there has never been a virus on the 360. (apt-get uses a weak form of code signing, and to the best of my knowledge, has never distributed a virus either)

<p>The <a href=https://en.wikipedia.org/wiki/Trusted_Platform_Module>Trusted Platform Module</a> can be used to build a computer which you can <a href=https://www.gnu.org/philosophy/can-you-trust.html>only install Windows on,</a> but can also <a href=http://www.h-online.com/open/features/What-s-new-in-Linux-3-2-1400680.html?page=2>be used by Linux</a> to protect against certain attacks.

<p>This blog post doesn't really have a <em>point,</em> I just wanted to talk about some stuff. Sorry.

<p>I'm certainly not saying that there's some kind of tradeoff between <em>open-source</em> and <em>security.</em> That would just be utter, blithering nonsense. I guess if there's any point here that I'm flailing in the direction of, it's that there are certain dual-use technologies, which are in danger of being misused by people looking to make money at the expense of the users; also known as the Facebook strategy.]]></description>

</item>
<item>
<link>http://bbot.org/blog/archives/2011/11/17/table_of_the_day/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2011/11/17/table_of_the_day/</guid>
<title>table of the day</title>
<dc:date>2011-11-17T19:02:58-04:00</dc:date>
<dc:creator><a href=&quot;http://bbot.org/&quot; rel=&quot;author&quot;>Samuel Bierwagen</a></dc:creator>
<dc:subject> important, nerdery</dc:subject>
<description><![CDATA[<p>I've seen a lot of neat tables in my day, but this one is really something else.</p>

<p><img alt="Black holes" src="http://bbot.org/blog-images/black-hole-table.png"></p>

<p>(From <a href="http://arxiv.org/abs/0908.1803v1">"Are Black Hole Starships Possible?",</a> 2009)</p>

<p>It's not every day you learn that a one-attometre black hole would mass 673,000 tonnes, and radiate 129 petawatts of Hawking radiation. Some of that's in fairly harmless neutrinos, but the 15.7 gigaelectronvolt (GeV) gamma rays most decidedly <em>ain't.</em> (The gamma radiation coming off of a mass of Cobalt-60, (which is <a href="http://www.wired.com/magazine/2011/10/ff_radioactivecargo/all/1">excitingly radioactive</a>) by comparison, is a mere 1.33 MeV, 11,804 times less energetic. Attometre-gauge black holes pack a <em>punch.</em>)</p>

<p>The paper makes a pretty good case that using a microscopic black hole as a starship drive is at least physically <em>possible,</em> though there's a whole host of amusing practical problems that should be of any interest to the aspiring megaproject engineer with a couple <a href="https://secure.wikimedia.org/wikipedia/en/wiki/State_vector">state vector</a> backups safely stored behind a kilometre of lead shielding.</p>

<p>Firstly is the problem of <em>making</em> them. Apparently Messrs. Crane and Westmoreland are the first people to seriously consider how to generate an artificial black hole, (!) and they conclude that the most practical method (!!) is "by firing a huge number of gamma rays from a spherically converging laser." (!!!)</p>

<p>One can easily imagine just <em>how</em> huge this would have to be, of course, since you're aiming to get the energy density of a couple cubic attometres high enough to <em>spontaneously generate an object that masses 673,000 tonnes.</em></p>

<p>Once you've built your absolutely gigantic gamma ray laser array, and accompanying solar panel satellite well within the orbit of Mercury, you get to the fun part of calibrating the thing.</p>

<p>The best case scenario is that you generate a fairly large black hole, radiating at a sedate 130 petawatts or so. But if you don't get the power density high enough, then you might end up with a <em>smaller</em> black hole. The smaller the black hole, the more energy it radiates, and the faster it evaporates. At .9 attometres, it radiates 160 petawatts. At .6, 367 petawatts. At .3, 1527. At .16, <strong>5519 petawatts</strong> and a lifetime measured in <strong>days!</strong> It's a short and steep slope to kaboomville. You can see here that a misaligned laser array is mostly a big machine for producing gigantic explosions.</p>

<p>The authors helpfully point out that if you're worried about the radiation flux affecting the Earth, you can just move evaporating black holes to the other side of the Sun. Which reminds me of a famous maxim: if you're using a <em>star</em> as <em>radiation shielding,</em> then you're having a fun time.</p>

<p>Then there's the problems of how to use something that mostly shines in the gamma ray spectrum as a propulsion device, and how to postpone the inevitable kaboom-date. You wouldn't think this would be a problem, since the popular conception of a black hole starts and ends with "it eats things", but take another look at that table. The attometre hole loses 1.43 kilograms a second to Hawking radiation. How are you going to cram 1.43 kilograms of mass into a point 2 attometres across?</p>

<p>The authors, who I absolutely cannot fault in the "imagination" or "audacity" departments, conclude that "this point must remain as a challenge for the future."</p>]]></description>

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

