<?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>bbot</dc:creator>
<dc:date>2012-02-04T05:01:44-05:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />
<item>
<link>http://bbot.org/blog/archives/2012/02/04/oh_boy_space_marines/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/02/04/oh_boy_space_marines/</guid>
<title>oh boy, space marines</title>
<dc:date>2012-02-04T05:01:43-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>nerdery</dc:subject>
<description>
<![CDATA[<p>Alright, no. <a href=http://www.rockpapershotgun.com/2012/02/04/aliens-colonial-marines-gets-shooty-footage/>I'm not letting this one past.</a>

<p>Just how many Aliens games have there been, now? Answer: <a href=https://en.wikipedia.org/wiki/List_of_Alien_and_Predator_games>a shitload.</a> <em>Thirty eight!</em> And this is just counting the <em>official</em> ones. How about the Starcraft series, which is Aliens with the serial numbers filed off, or Alien Swarm, which is basically "Top-down L4D, with aliens". Then there's the Warhammer 40,000 franchise, with its Space Marines and Tyranids. Then there's the Doom series, and the Quake series after it. The Halo series. <a href=http://tvtropes.org/pmwiki/pmwiki.php/Main/SpaceMarine>The ten billion other variations on the same theme.</a>

<p>Yet another video game where space marines kill aliens does not seem to me like a rich, untapped vein of creative potential. That vein has been tapped, then mined out, then strip mined, then all the rock was dug out down to the mantle, which glares at us, a great red baleful eye, as if to dare humanity to produce one more game where the <a href=http://tvtropes.org/pmwiki/pmwiki.php/Main/ASpaceMarineIsYou>voiceless protagonist communicates with high command over a radio, after the rest of his team was wiped out.</a>

<p>This has been <em>done before.</em> Why is it being <em>done again?</em>]]>
</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-05:00</dc:date>
<dc:creator>bbot</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/28/happy_friday/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2012/01/28/happy_friday/</guid>
<title>happy friday</title>
<dc:date>2012-01-28T00:16:09-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>Etc</dc:subject>
<description>
<![CDATA[<p><em>(Attention conservation notice:</em> Whining.)

<p>So I was re-reading <a href=http://www.theatlantic.com/magazine/archive/2010/07/the-end-of-men/8135/>"The End Of Men",</a> because if there's anything an unemployed 23-year-old semi-electrician (for reference, <a href=http://bbot.org/resume.pdf>my extremely unimpressive resume</a> (<a href=http://bbot.org/resume.tex>source code</a>)) likes hearing about more, it's "your entire gender is worthless and unemployable"; when I peeped this paragraph, yo:

<blockquote>Over the years, researchers have proposed different theories to explain the erosion of marriage in the lower classes: the rise of welfare, or the disappearance of work and thus of marriageable men. But Edin thinks the most compelling theory is that marriage has disappeared because women are setting the terms—and setting them too high for the men around them to reach. “I want that white-picket-fence dream,” one woman told Edin, and the men she knew just didn’t measure up, so she had become her own one-woman mother/father/nurturer/provider. The whole country’s future could look much as the present does for many lower-class African Americans: the mothers pull themselves up, but the men don’t follow. First-generation college-educated white women may join their black counterparts in a new kind of middle class, where marriage is increasingly rare.<br><br>

As the traditional order has been upended, signs of the profound disruption have popped up in odd places. Japan is in a national panic over the rise of the “herbivores,” the cohort of young men who are rejecting the hard-drinking salaryman life of their fathers and are instead gardening, organizing dessert parties, acting cartoonishly feminine, and declining to have sex. The generational young-women counterparts are known in Japan as the “carnivores,” or sometimes the “hunters.”<br><br>

American pop culture keeps producing endless variations on the omega male, who ranks even below the beta in the wolf pack. This often-unemployed, romantically challenged loser can show up as a perpetual adolescent (in Judd Apatow’s Knocked Up or The 40-Year-Old Virgin), or a charmless misanthrope (in Noah Baumbach’s <a href=http://www.imdb.com/title/tt1234654/>Greenberg</a>), or a happy couch potato (in a Bud Light commercial). He can be sweet, bitter, nostalgic, or cynical, but he cannot figure out how to be a man. “We call each other ‘man,’” says Ben Stiller’s character in Greenberg, “but it’s a joke. It’s like imitating other people.”</blockquote>

<p>"Greenberg"? Never heard of it. Let's hit IMDb.

<blockquote>You know those fleeting, inelegant moments and transitory, almost Seinfeldian scenarios in our lives that, unlike on Seinfeld, we never really talk about, because they betray how clueless and insecure we all are? You know how we'll go to parties basically to see one person and find we're inept at opening up and socializing with anyone else? You know those pointless, roundabout stories we'll tell about something that happened that we thought was interesting or funny but we don't realize how boring or monotonous they are till we're halfway through them? What about the receiving end of that situation? Why are we so worried about hurting these painful storytellers' feelings when they're making us so uncomfortable having to feign interest or amusement for indefinite durations? You know those sexual experiences we never talk about even to our best friends because they were so painfully awkward and nakedly ungraceful? You know how when we're on drugs we only indulge occasionally and we find ourselves wording things in creative ways, feeling overconfident and impulsive while everyone else is viewing us as rather reckless? Roger and Florence know, all too painfully, awkwardly, uncomfortably, recklessly well.</blockquote>

<p>Golly, that sounds like a <em>laff riot.</em> Hold on, lemme hit up Amazon to order this gem on DVD. Hell <em>yeah</em> I want next-day shipping! Gotta see this bad boy <em>ASAP.</em>]]>
</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-05:00</dc:date>
<dc:creator>bbot</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 "pretty secure" isn't secure enough</title>
<dc:date>2012-01-08T14:58:11-05:00</dc:date>
<dc:creator>bbot</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/21/unsubscribed/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2011/11/21/unsubscribed/</guid>
<title>unsubscribed</title>
<dc:date>2011-11-21T17:33:26-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>Etc</dc:subject>
<description>
<![CDATA[<p><em>(Attention conservation notice:</em> You'll note that this post, unlike the last six, isn't tagged "important." That's because it ain't.)</p>

<p>Things I've unsubscribed from recently:</p>

<ul>
  <li><a rel="nofollow" href="http://www.ribbonfarm.com/">Ribbonfarm.</a> Prime example that the <a href="http://paul.kedrosky.com/archives/2011/07/the-gell-mann-amnesia-effect.html">Gell-Mann amnesia effect</a> isn't just for newspapers. I wrote <a href="http://bbot.org/blog/archives/2011/07/25/computer_security_is_hard_lets_give_up/">a refutation</a> of another Ribbonfarm post eight months ago, where I concluded that he had no idea what he was talking about... but didn't unsubscribe from his blog. It took reading <a rel="nofollow" href="http://www.ribbonfarm.com/2011/11/11/technology-and-the-baroque-unconscious/">this post</a> for me to realize, "Hey, wait, this guy's an idiot!" Also, he won't shut up about his book.
  <li><a rel="nofollow" href="http://www.megatokyo.com/">Megatokyo.</a> I realized that I had been reading Megatokyo since <em>middle school,</em> yet I couldn't tell you what the last year of plot was about, nor did I particularily care about any of the characters.
  <li><a rel="nofollow" href="http://www.shamusyoung.com/twentysidedtale/">Twenty sided.</a> This one was kinda hard. About a month ago, Shamus started writing a series of autobiographical posts. I unsubscribed in disgust, (I didn't really want to read what was pretty much "bbot's childhood, yet worse") intending to pick it up again once he stopped. I checked back, saw that the autobiography series was over... and then noticed that almost all of the front page were daily posts about Shamus' video LP series.<br><br>

  I don't really want to watch other people play video games I've already completed. What's even worse is that all of Shamus' high-level video games criticism work goes into his LP, now, which means no more traditional game reviews. Obviously <em>some</em> people enjoy them, since they get thousands of views. I just have better ways to spend half a hour a day.<br><br>

  This is hard because a big chunk of my readership comes directly from Twenty sided, and this post will probably result in some unsubscriptions. But man, I just give no shits about his LP. None at all. If it was possible to just subscribe to his <a href="http://www.shamusyoung.com/twentysidedtale/?cat=66">code projects,</a> I would, but I can't, so I won't.
  <li><a rel="nofollow" href="http://www.gunnerkrigg.com/">Gunnerkrigg Court.</a> Got tired of the stupid shit it kept saying about the philosophy of science, and AI. That, and the <a href="http://www.gunnerkrigg.com/archive_page.php?comicID=869">moronic error it made about the underwater dorms,</a> (10 metres is not terribly deep, but if you spend 8 hours at depth, decompression is required before returning to the surface, or else you're in for the full spectrum of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Decompression_sickness#Signs_and_symptoms">amusing neurological effects</a> resulting from nitrogon fizzing out of your blood and shredding brain tissue) finally pushed me over the edge.<br><br>

I briefly flirted with the idea of doing a long-form post about the fundamental errors of thought underlying Gunnerkrigg Court, and I got a couple hundred words into it before I realized what a collosal waste of time this was. You would have to <em>pay me money</em> to get me to write about that crap. Haha, wait, hold on.<br><br>

<strong>(EDIT:</strong> Donation button removed, because I forgot that I don't have access to that paypal account right now, for various reasons.)<br><br>

<strike> Okay, here, you can pay me money to write about that crap. Donations will go towards a hamburger, and some of Burger King's awful, terrible coffee.</strike>
</ul>]]>
</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-05:00</dc:date>
<dc:creator>bbot</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>
<item>
<link>http://bbot.org/blog/archives/2011/11/11/guerilla_archiving_i/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2011/11/11/guerilla_archiving_i/</guid>
<title>guerilla archiving I</title>
<dc:date>2011-11-11T08:10:36-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>important, nerdery</dc:subject>
<description>
<![CDATA[<p>Remember when <a href="http://bbot.org/blog/archives/2011/01/17/more_fun_with_wget/">I downloaded everything2.com</a> and a dozen people sent me screamingly angry emails, and the whole thing was generally stressful and unrewarding?</p>

<p>Well shit, let's do that again, but with a <a href="http://archiveofourown.org/">a different site.</a> This time, though, I sent them an email first:</p>

<blockquote><p>Hi, I'm Sam Bierwagen, a volunteer with the Archiveteam project. (<a href="http://archiveteam.org/" >http://archiveteam.org/</a>) We make independent backups of sites of historical or cultural interest that, for whatever reason, (are being shut down by yahoo, like <a href="http://archiveteam.org/index.php?title=Geocities" >Geocities</a>; or are being crippled by the host company, like <a href="http://archiveteam.org/index.php?title=Delicious" >Delicious</a>) are at risk of disappearing. AO3 is dedicated to hosting copyright-infringing content, and depends on donations to keep operating; a combination that, in my experience, does not result in spectacular longevity.</p>

<p>Typically, we operate under extreme time pressure, which requires tactics that tend to generate some friction with operators that don't appreciate a dozen pageloads per second from our web spiders. Even extremely conservative spidering jobs can impact a site negatively, if done via an unusual API. (I downloaded all two million pages of everything2.com at the pace of one per second, which averaged out to three kilobytes per second, and took a full month; yet apparently was enough to crush their antiquated database backend.)</p>

<p>I've had enough legal threats to last me a lifetime, so I'm trying a softer approach this time. We're looking for database dumps, like the ones wikipedia publicly offers. (<a href="http://dumps.wikimedia.org/" >http://dumps.wikimedia.org/</a>)</p>

<p>Have any?</p></blockquote>

<p>I'll give them a week.</p>]]>
</description>
</item>
<item>
<link>http://bbot.org/blog/archives/2011/11/10/thank_you__xxx/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2011/11/10/thank_you__xxx/</guid>
<title>thank you, .xxx</title>
<dc:date>2011-11-10T05:51:33-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>important, nerdery</dc:subject>
<description>
<![CDATA[<p>Something amusing one of my <a href="https://plus.google.com/106206762131663008216/posts">eagle-eyed readers</a> spotted: the <a href="http://about.xxx/">about page</a> for the new .xxx TLD has <a href="http://about.xxx/images/home_landrush_is_here.jpg">a banner image</a> with a couple example domains on it.</p>

<p><img src="http://bbot.org/blog-images/xxx1.png"></p>

<p>Wait a minute. What's that domain right there?</p>

<p><img src="http://bbot.org/blog-images/xxx2.png"></p>

<p>Oh boy. Glad to see my name has joined the hallowed company of "milf", "nude" and "gays" as "extremely stereotypical porn keywords."</p>

<p>Now, I didn't bother registering any other domains besides bbot.org. Why? Firstly, sour grapes.</p>

<p>I started using "bbot" way back <a href="http://everything2.com/title/bbot">in 2003,</a> but I didn't get around to registering the domain until 2005, which was real late in the game for four (ha) letter domain names. (My advice to 16-year-olds: <em>register that domain name you're thinking of.</em> Don't wait. Do it now. If you don't have your own bank account, then go to a grocery store and pick up a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Debit_card#Prepaid_debit_cards" >prepaid debit card.</a> If you're 12, do the same thing, but try not to use a regrettable name. If you're six months old, <a href="http://www.mediapost.com/publications/article/131655/">then do the same thing.</a> Most people get by just using Facebook as their canonical internet presence, because most people are stupid. Facebook is a for-profit company, and you really don't want a for-profit company owning your name.)</p>

<p>This meant that I didn't even have the <em>option</em> of registering the other permutations of bbot.org. They're all taken.</p>

<p>Secondly, trying to register every single variation on a name is an exercise in futility. There's <a href="https://secure.wikimedia.org/wikipedia/en/wiki/List_of_Internet_top-level_domains">280 top level domains.</a> Are you going to register all of them?</p>

<p>Then there's <a href="http://www.wired.com/threatlevel/2011/09/doppelganger-domains/">typosquatting,</a>where attackers register misspelled versions of your domain. How many possible misspellings are there? <em>Then</em> there's <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Lamparello_v._Falwell">registering variations of your domain,</a> or <em>X-</em>sucks.com, etc etc etc.</p>

<p>This is all a waste of time. Nobody types in domain names anymore, they just use google, or a bookmark, or the browser history. It's just a <a href="http://www.cauce.org/2011/04/impenetrable-processes-and-fools-gold-at-icann.html">cynical money grab,</a> siphoning money from large corporations that are still under the delusion that they can manage their brand on the global internet.</p>

<p>But I might have to register bbot.xxx.</p>]]>
</description>
</item>
<item>
<link>http://bbot.org/blog/archives/2011/11/05/shooting_yourself_in_the_foot_with_great_verve_and_accuracy/</link>
<guid isPermaLink="true">http://bbot.org/blog/archives/2011/11/05/shooting_yourself_in_the_foot_with_great_verve_and_accuracy/</guid>
<title>shooting yourself in the foot with great verve and accuracy</title>
<dc:date>2011-11-05T13:28:54-05:00</dc:date>
<dc:creator>bbot</dc:creator>
<dc:subject>important, nerdery</dc:subject>
<description>
<![CDATA[<p>So I was doing my usual morning routine, which is looking at the tumblr themes of <a href="http://barkbarkbarkbarkbarkbarkbarkbark.tumblr.com/">homestuck fans</a>&nbsp;while sighing heavily, when I noticed something even more egregiously stupid than the usual fare.</p>
<p>That page loads 322 files. (Ugh) One of them is... different.</p>
<p><img src="http://bbot.org/blog-images/tumblr_lu74d5ni2f1r1qhce.png" /></p>
<p>It would save <em>118kb?</em>&nbsp;But wait, judging from the filename, that's a 40x40 avatar image!</p>
<p>Turns out, in total, it's <a href="http://28.media.tumblr.com/avatar_c5ee131b70d0_40.png">one hundred and twenty one fucking kilobytes.</a> Running it through <a href="https://github.com/msanders/PNGSquash">PNGsquash</a> takes it down to 3.54 kilobytes. The old file is <em>thirty four times bigger</em>.&nbsp;Just for shits and giggles, I popped it into gimp and saved it as an entirely uncompressed 32-bit BMP file. Here it is:</p>
<p><img src="http://bbot.org/blog-images/tumblr_lu74jkIKPw1r1qhce.bmp" /></p>
<p>Double the size! Awful, terrible! It's now 6.3 kilobytes.</p>
<p>Now, not everyone can be as awesome as me, and use a <a href="http://25.media.tumblr.com/avatar_9c6643c3037e_64.png">296 byte avatar image</a>, but still, a 121 kilobyte 40x40 image file is a bit bloody much. Let's run it through <a href="http://www.stillhq.com/pngtools/">pngchunks</a>:</p>
<pre>Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IHDR Width: 40
  IHDR Height: 40
  IHDR Bitdepth: 8
  IHDR Colortype: 6
  IHDR Compression: 0
  IHDR Filter: 0
  IHDR Interlace: 0
  IHDR Compression algorithm is Deflate
  IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)
  IHDR Interlacing is disabled
  Chunk CRC: -1929463699
Chunk: Data Length 106022 (max 2147483647), Type 1346585449 [iCCP]
  Ancillary, public, PNG 1.2 compliant, unsafe to copy
  ... Unknown chunk type
  Chunk CRC: -1377520713
Chunk: Data Length 6 (max 2147483647), Type 1145523042 [bKGD]
  Ancillary, public, PNG 1.2 compliant, unsafe to copy
  ... Unknown chunk type
  Chunk CRC: -113001601
Chunk: Data Length 9 (max 2147483647), Type 1935231088 [pHYs]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 1976496277
Chunk: Data Length 6991 (max 2147483647), Type 1951945850 [zTXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 1156069395
Chunk: Data Length 6313 (max 2147483647), Type 1951945850 [zTXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: -331828581
Chunk: Data Length 52 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: -1807344212
Chunk: Data Length 1491 (max 2147483647), Type 1951945850 [zTXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 1166967249
Chunk: Data Length 3325 (max 2147483647), Type 1413563465 [IDAT]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IDAT contains image data
  Chunk CRC: -384872633
Chunk: Data Length 37 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 437683276
Chunk: Data Length 37 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 1800092912
Chunk: Data Length 17 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: 745887135
Chunk: Data Length 32 (max 2147483647), Type 1951942004 [tEXt]
  Ancillary, public, PNG 1.2 compliant, safe to copy
  ... Unknown chunk type
  Chunk CRC: -376046480
Chunk: Data Length 0 (max 2147483647), Type 1145980233 [IEND]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IEND contains no data
  Chunk CRC: -1371381630</pre>
<p>As you would know if you had read <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Portable_Network_Graphics">the wikipedia article on PNG</a>, (Neil also has a <a href="http://www.hackerfactor.com/blog/index.php?/archives/252-PNG-and-Cameras.html">good overview</a>&nbsp;of the format) it's one of the modern "container" types, with various types of chunks, most of them compressed with DEFLATE (which most people know as gzip). This is why compressing a PNG file does little to nothing: it's already compressed. PNGchunks just lists the chunks inside the container format.</p>
<p>As wikipedia will tell you, there's four critical chunks, IHDR, (header) PLTE, (palette) IDAT, (the actual image) and IEND. (image end) This image doesn't have a palette, since it's in full 24-bit RGB color. Here's IDAT, again:</p>
<pre>Chunk: Data Length 3325 (max 2147483647), Type 1413563465 [IDAT]
  Critical, public, PNG 1.2 compliant, unsafe to copy
  IDAT contains image data
  Chunk CRC: -384872633</pre>
<p>3,325 bytes. That makes sense.</p>
<p>Then there's 8 tEXt and zTXt fields. One contains EXIF metadata, one contains&nbsp;separate&nbsp;(?) IPTC XMP metadata. Then there's what is probably another copy of the image, in Adobe 8BIM format. These, combined, use up 14,970 bytes, four and a half times bigger than the image itself.</p>
<p>That's dumb. But it gets dumber. So far we've only accounted for 18,308 bytes of the file. But if we look at the chunk list again...</p>
<pre>Chunk: Data Length 106022 (max 2147483647), Type 1346585449 [iCCP]
  Ancillary, public, PNG 1.2 compliant, unsafe to copy
  ... Unknown chunk type
  Chunk CRC: -1377520713</pre>
<p>That, my friends, is a 106 kilobyte Kodak sRGB color profile for a 3 kilobyte image file. Gaze in awe.</p>
<p>This is not exactly an unknown problem. Google <a href="https://code.google.com/speed/page-speed/docs/payload.html#CompressImages">constantly harps</a>&nbsp;on optimizing images, but&nbsp;Tumblr blindly reuses images that its users hand it. This makes me sad.</p>]]>
</description>
</item>
</channel>
</rss>

