<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>djehuti.com - The Armory</title>
	<atom:link href="http://www.djehuti.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.djehuti.com</link>
	<description>Mac and Music geekery. Not much heraldry talk.</description>
	<lastBuildDate>Sat, 21 Apr 2012 18:15:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Usability in Hardware</title>
		<link>http://www.djehuti.com/2011/11/09/usability-in-hardware/</link>
		<comments>http://www.djehuti.com/2011/11/09/usability-in-hardware/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 16:51:27 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=133</guid>
		<description><![CDATA[I have a TC Electronic BMC-2 monitor controller, that I use and like, for controlling volume on nearfield monitors and headphones in my studio. But it has a usability problem. We talk about usability in software all the time, but here&#8217;s an example of a hardware usability problem. Here&#8217;s the back panel: Whose brilliant idea [...]]]></description>
			<content:encoded><![CDATA[<p>I have a <a href="http://www.tcelectronic.com/bmc-2.asp">TC Electronic BMC-2</a> monitor controller, that I use and like,
for controlling volume on nearfield monitors and headphones in my studio.</p>

<p>But it has a usability problem. We talk about usability in software all the time,
but here&#8217;s an example of a hardware usability problem.
Here&#8217;s the back panel:</p>

<p><img src="/images/bmc2.png" alt="BMC-2 Back Panel" title="BMC-2 Back Panel" /></p>

<p>Whose brilliant idea was it to put the headphone jack <em>under</em> the power jack?
When I use it, I&#8217;m <em>always</em> in front of the unit, reaching over the top to
control it.
Which one of these jacks is likely to get plugged and unplugged more often?</p>

<p>Maybe the BMC-2mkII will reverse the positions of these. I doubt it will be
a free downloadable update though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/11/09/usability-in-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From the Audio Unit Programming Guide</title>
		<link>http://www.djehuti.com/2011/11/04/from-the-audio-unit-programming-guide/</link>
		<comments>http://www.djehuti.com/2011/11/04/from-the-audio-unit-programming-guide/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 23:21:50 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=125</guid>
		<description><![CDATA[Audio Plug-In manufacturers would do well to read and re-read this paragraph. Adding Copy Protection If you choose to add copy protection to your audio unit, it’s especially important to consider the audio unit’s opening sequence. The time for copy protection is during audio unit initialization—not instantiation. Therefore, you put copy protection code into an [...]]]></description>
			<content:encoded><![CDATA[<p>Audio Plug-In manufacturers would do well to read and re-read this paragraph.</p>

<h3>Adding Copy Protection</h3>

<p>If you choose to add copy protection to your audio unit, it’s especially important to consider the audio unit’s opening sequence. The time for copy protection is during audio unit initialization—not instantiation. Therefore, you put copy protection code into an override of the <code>Initialize</code> method from the SDK’s <code>AUBase</code> superclass. You do not put copy protection code into an audio unit’s constructor.</p>

<p>Here is a scenario where this matters. Suppose a user doesn’t have the required hardware dongle for your (copy protected) audio unit. Perhaps he left it at home when he brought his laptop to a performance. If your audio unit invokes its copy protection on instantiation, this could prevent a host application from opening. If your audio unit invokes its copy protection on initialization, as recommended, the performer could at least use the host application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/11/04/from-the-audio-unit-programming-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nerdy Mac Tip</title>
		<link>http://www.djehuti.com/2011/09/19/nerdy-mac-uuid-tip/</link>
		<comments>http://www.djehuti.com/2011/09/19/nerdy-mac-uuid-tip/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 16:16:23 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=114</guid>
		<description><![CDATA[Here&#8217;s a nerdy tip for Mac users. Open Automator, and create a new Service workflow. Set it to receive no input, then drag a &#8220;Run Shell Script&#8221; item into the workflow. Replace the default &#8220;cat&#8221; in the text area with this: echo -n `uuidgen &#124; tr A-Z a-z` &#124; pbcopy Save the service as &#8220;Copy [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a nerdy tip for Mac users. Open Automator, and create a new Service workflow. Set it to receive no input, then drag a &#8220;Run Shell Script&#8221; item into the workflow. Replace the default &#8220;cat&#8221; in the text area with this:</p>

<p><code>echo -n `uuidgen | tr A-Z a-z` | pbcopy</code></p>

<p>Save the service as &#8220;Copy New UUID to Pasteboard&#8221;. Now whenever you run the service, it generates a fresh UUID that is on your pasteboard, which you can then copy into whatever context you need it.</p>

<p>If you never need a UUID, then, umm, maybe just don&#8217;t worry about this tip.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/09/19/nerdy-mac-uuid-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What part of this is hard to understand?</title>
		<link>http://www.djehuti.com/2011/09/12/what-part-of-this-is-hard-to-understand/</link>
		<comments>http://www.djehuti.com/2011/09/12/what-part-of-this-is-hard-to-understand/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 00:45:29 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=106</guid>
		<description><![CDATA[Amendment 4. The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no Warrants shall issue, but upon probable cause, supported by Oath or affirmation, and particularly describing the place to be searched, and the persons or things to be [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
  <h2>Amendment 4.</h2>
  
  <p>The right of the people to be secure in their persons, houses, papers, and effects,
  against unreasonable searches and seizures, shall not be violated, and no Warrants
  shall issue, but upon probable cause, supported by Oath or affirmation, and particularly
  describing the place to be searched, and the persons or things to be seized.</p>
  
  <h2>Amendment 5.</h2>
  
  <p>No person shall be held to answer for a capital, or otherwise infamous crime, unless
  on a presentment or indictment of a Grand Jury, except in cases arising in the land
  or naval forces, or in the Militia, when in actual service in time of War or public
  danger; nor shall any person be subject for the same offence to be twice put in
  jeopardy of life or limb; nor shall be compelled in any criminal case to be a
  witness against himself, nor be deprived of life, liberty, or property, without due
  process of law; nor shall private property be taken for public use, without just
  compensation.</p>
  
  <h2>Amendment 6.</h2>
  
  <p>In all criminal prosecutions, the accused shall enjoy the right to a speedy and
  public trial, by an impartial jury of the State and district wherein the crime
  shall have been committed, which district shall have been previously ascertained
  by law, and to be informed of the nature and cause of the accusation; to be
  confronted with the witnesses against him; to have compulsory process for obtaining
  witnesses in his favor, and to have the Assistance of Counsel for his defence.</p>
</blockquote>

<p>I guess <a href="http://shebshi.wordpress.com/2011/09/12/some-real-shock-and-awe-racially-profiled-and-cuffed-in-detroit/">some people just don&#8217;t get it</a>.</p>

<p>This is not the country in which I grew up and was taught that we were
a free country, with principles, that stood for something.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/09/12/what-part-of-this-is-hard-to-understand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the Timing of the Jobs Address</title>
		<link>http://www.djehuti.com/2011/09/08/on-the-timing-of-the-jobs-address/</link>
		<comments>http://www.djehuti.com/2011/09/08/on-the-timing-of-the-jobs-address/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 11:51:08 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Opinions]]></category>
		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=96</guid>
		<description><![CDATA[President Obama will address a Joint Session of Congress tonight (Thursday, Sept. 8th) regarding his job stimulus plan. He had originally requested to do so last night (Wednesday, Sept. 7th), but House Speaker John Boehner asked him to change the plan, and he agreed to it. Mr. President: Please allow me to show you what [...]]]></description>
			<content:encoded><![CDATA[<p>President Obama will address a Joint Session of Congress tonight (Thursday, Sept. 8th)
regarding his job stimulus plan.
He had originally requested to do so last night (Wednesday, Sept. 7th),
but <a href="http://tpmdc.talkingpointsmemo.com/2011/08/childish-dems-gop-snipe-publicly-over-presidents-job-speech.php" target="_blank">House Speaker John Boehner asked him to change the plan</a>,
and he <a href="http://tpmdc.talkingpointsmemo.com/2011/08/obama-accedes-to-boehner-on-job-speech-timing-schedules-for-sept-8.php" target="_blank">agreed to it</a>.</p>

<p>Mr. President: Please allow me to show you what the correct response should have been.</p>

<p><span id="more-96"></span></p>

<blockquote>
Rep. Boehner:
<p>
<p>
I have instructed the Secret Service to secure the room by 6:30pm on Wednesday, Sept. 7. I will begin speaking at 7:05pm.
<p>
You can either (1) be there, or (2) miss it.
<p>
Sincerely,
<p>
Barack H. Obama<br />
President of the United States</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/09/08/on-the-timing-of-the-jobs-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Those evil smartphones&#8230;</title>
		<link>http://www.djehuti.com/2011/03/16/those-evil-smartphones/</link>
		<comments>http://www.djehuti.com/2011/03/16/those-evil-smartphones/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 15:08:15 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=88</guid>
		<description><![CDATA[You can&#8217;t make this shit up: Richard Stallman thinks that smartphones are &#8220;Stalin&#8217;s Dream&#8221;. But: &#8220;There&#8217;s a version of Android called Replicant that can run on the HTC Dream phone without proprietary software, except in the U.S. In the U.S., as of a few weeks ago there was still a problem in some dialing library, [...]]]></description>
			<content:encoded><![CDATA[<p>You can&#8217;t make this shit up: Richard Stallman thinks that <a href="http://www.networkworld.com/news/2011/031411-richard-stallman.html">smartphones are &#8220;Stalin&#8217;s Dream&#8221;</a>. But:</p>

<blockquote>
  <p>&#8220;There&#8217;s a version of Android called Replicant that can run on the HTC Dream phone without
  proprietary software, except in the U.S. In the U.S., as of a few weeks ago there was still a problem
  in some dialing library, although it worked in Europe. By now, maybe it works. Maybe it doesn&#8217;t. I don&#8217;t know.&#8221;</p>
</blockquote>

<p>And later:</p>

<blockquote>
  <p>Over the course of 38 minutes, our connection was lost five times, including just after Stallman&#8217;s comments
  about electronic eavesdropping and free software for phones. We tried to connect again several hours later but
  were unable to complete the interview via phone.</p>
</blockquote>

<p><strong>Note: I do not speak for my employer</strong>, who happens to make some <a href="http://www.apple.com/iphone/">pretty nice smartphones</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2011/03/16/those-evil-smartphones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designated Initializers in Objective-C</title>
		<link>http://www.djehuti.com/2010/09/21/designated-initializers-in-objective-c/</link>
		<comments>http://www.djehuti.com/2010/09/21/designated-initializers-in-objective-c/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 23:42:24 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=81</guid>
		<description><![CDATA[So, if you are a Mac/Objective-C developer, you are probably familiar with the Designated Initializer. The Designated Initializer (“DI”) is, in an Objective-C class, the one initializer in a class that is supposed to do the heavy lifting in initializing an object for use. Other initializers of the class should generally invoke the DI. Similarly, [...]]]></description>
			<content:encoded><![CDATA[<p>So, if you are a Mac/Objective-C developer, you are probably familiar with
the <em><a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocAllocInit.html%23//apple_ref/doc/uid/TP30001163-CH22-SW8">Designated Initializer</a></em>. The Designated Initializer (“DI”) is, in an Objective-C class, the one initializer in a class that is supposed to do the heavy lifting in initializing an object for use. Other initializers of the class should generally invoke the DI.</p>

<p>Similarly, subclasses of a given class should, in <em>their</em> DI, invoke the superclass DI (and the other initializers of the subclass should invoke the subclass DI).
This way, any way the object gets initialized, the DI of both the superclass and the subclass are sure to be invoked.</p>

<p>The <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocAllocInit.html%23//apple_ref/doc/uid/TP30001163-CH22-SW8">documentation</a> does a decent job of explaining this, but I think it&#8217;s easy to miss an important detail, and that is that in a subclass, you must take care not only to <em>invoke</em> the superclass&#8217; DI, but <em>you also have to override it</em>.  (If your DI is different from the superclass&#8217; DI, this is not necessarily obvious.)</p>

<p>For example, take these two classes:</p>

<pre><code>@interface DJMySuperclass : NSObject
{
    DJMyInfo* importantData_;
    BOOL someImportantSwitch_;
}

// The designated initializer for DJMySuperclass:
- (id) initWithImportantData:(DJMyInfo*)importantData;

@end

@interface DJMySubclass : DJMySuperclass
{
    DJMoreInfo* moreImportantData_;
}

// The designated initializer for DJMySubclass:
- (id) initWithImportantData:(DJMyInfo*)importantData
           moreImportantData:(DJMoreInfo*)moreImportantData;

@end
</code></pre>

<p>Fairly straightforward so far, right? Now, take this implementation:</p>

<pre><code>@implementation DJMySuperclass

- (id) init
{
    return [self initWithImportantData:nil];
}

- (id) initWithImportantData:(DJMyInfo*)importantData
{
    if (self = [super init]) {
        if (importantData) {
            importantData_ = [importantData retain];
        } else {
            importantData_ = [[DJMyImportantData alloc] init];
        }
        someImportantSwitch_ = YES;
    }
    return self;
}

- (void) dealloc
{
    [importantData_ release];
    [super dealloc];
}

@end
</code></pre>

<p>So far so good; completely obvious. Now let&#8217;s take this subclass implementation:</p>

<pre><code>@implementation DJMySubclass

- (id) init
{
    return [self initWithImportantData:nil moreImportantData:nil];
}

- (id) initWithImportantData:(DJMyInfo*)importantData
           moreImportantData:(DJMoreInfo*)moreImportantData
{
    if (self = [super initWithImportantData:importantData]) {
        someImportantSwitch_ = NO;
        if (moreImportantData) {
            moreImportantData_ = [moreImportantData retain];
        } else {
            moreImportantData_ = [[DJMoreInfo alloc] init];
        }
    }
    return self;
}

- (void) dealloc
{
    [moreImportantData_ release];
    [super dealloc];
}

@end
</code></pre>

<p>Again, totally straightforward, right? So where is the bug?</p>

<p>Imagine this extension (or, maybe instead of a category extension, imagine a similar future addition to the superclass and subclass, a year down the road and done by a different developer).</p>

<pre><code>@interface DJMySuperclass(JBJoeBlowsAdditions)

- (id) JB_returnsACopy;

@end

@implementation DJMySuperclass(JBJoeBlowAdditions)

- (id) JB_returnsACopy
{
    return [[[[self class] alloc] initWithImportantData:importantData_] autorelease];
}

@end

@implementation DJMySubclass(JBJoeBlowAdditions)

- (id) JB_returnsACopy
{
    DJMySubclass* other = [super JB_returnsACopy];
    [other-&gt;moreImportantData_ release];
    other-&gt;moreImportantData_ = [moreImportantData_ retain];
    return other;
}

@end
</code></pre>

<p>Where&#8217;s the bug?</p>

<p>The bug is that if you have a <code>DJMySubclass</code> object called <code>foo</code>, and you
call <code>DJMySubclass* bar = [foo JB_returnsACopy];</code>, you&#8217;ll discover that
<code>bar-&gt;someImportantSwitch_</code> contains <code>YES</code>, when you thought you had a class invariant for <code>DJMySubclass</code> where <code>someImportantSwitch_</code> was always forced to <code>NO</code>.</p>

<p>Why?</p>

<p>Because <code>JB_returnsACopy</code> in the superclass uses the <code>initWithImportantData:</code> initializer, and you didn&#8217;t cover it in <code>DJMySubclass</code>, so <em>your designated initializer in the subclass never got invoked</em>.</p>

<p>The fix is simple: cover the superclass&#8217; DI in your subclass, and invoke your DI.</p>

<pre><code>@implementation DJMySubclass

- (id) initWithImportantData:(DJMyInfo*)importantData
{
    return [self initWithImportantData:importantData
                     moreImportantData:nil];
}

@end
</code></pre>

<p>The <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Articles/ocAllocInit.html%23//apple_ref/doc/uid/TP30001163-CH22-SW8">documentation</a> for Designated Initializers says:</p>

<blockquote>
  <p>It’s important to know the designated initializer when defining a subclass.
  For example, suppose we define class C, a subclass of B, and implement an
  <code>initWithName:fromFile:</code> method. In addition to this method, we have to make
  sure that the inherited <code>init</code> and <code>initWithName:</code> methods also work for
  instances of C. This can be done just by covering B’s <code>initWithName:</code>
  with a version that invokes <code>initWithName:fromFile:</code>.</p>
  
  <p>&#8230;</p>
  
  <p><strong>General Principle</strong>: The designated initializer in a class must, through a
  message to <code>super</code>, invoke the designated initializer in a superclass.</p>
</blockquote>

<p>This general principle, while true, is not sufficient. You really need to
make sure to <em>cover</em> the superclass&#8217; DI in your subclass, as described in that
first paragraph, and shown in the accompanying diagram 3-3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2010/09/21/designated-initializers-in-objective-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HDMI: Progress?</title>
		<link>http://www.djehuti.com/2010/09/08/hdmi-progress/</link>
		<comments>http://www.djehuti.com/2010/09/08/hdmi-progress/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 01:11:49 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=76</guid>
		<description><![CDATA[If you were not a member of the A/V club in school, you can skip this post now. So. Until yesterday, I had the following A/V setup. Our receiver was a Sony STR-DG910. It does video switching, and has 3xHDMI 1.2 inputs, plus some component and composite inputs. Our monitor was a Westinghouse LVM-37w1 (RIP). [...]]]></description>
			<content:encoded><![CDATA[<p>If you were not a member of the A/V club in school, you can skip this post now.</p>

<p>So. Until yesterday, I had the following A/V setup.
Our receiver was a Sony STR-DG910. It does video switching, and has 3xHDMI 1.2 inputs, plus some component and composite inputs.</p>

<p>Our monitor was a Westinghouse LVM-37w1 (RIP). We had the receiver connected to it by exactly one cable; an HDMI-DVI cable. (The Westinghouse has no HDMI inputs; only DVI+HDCP.) The only other cable connected to the LVM-37w1 was power. We liked it that way; it meant we didn&#8217;t have a lot of spaghetti on the wall (the monitor was wall-mounted).</p>

<p>The spaghetti was behind the A/V rack (really a coffee table), which had a PS3, a Wii, a TiVo HD XL, an Apple TV, the receiver, and a Pioneer DVD changer.</p>

<p>We had the PS3 and the TiVo connected to the receiver via HDMI. The AppleTV wouldn&#8217;t output HDMI to the receiver, for reasons unknown to me, so we had it connected via component. Ditto for the Pioneer. The Wii only supports composite or component. The receiver upconverts SD (or component HD) signals to HDMI.</p>

<p>Last night a storm ate the TV (monitor). (And yes, it was plugged into a hot-shit A/V power distribution center, which is apparently worth approximately the same as the contents of our guinea pig cage.) Today I bought a Vizio E470VA to replace it. It has 4xHDMI 1.3 inputs. I intended to connect it the same way as the previous one was: just hook an HDMI cable up from the receiver to the TV.</p>

<p>When I do this, it will not display a picture. It works fine if I connect the various devices (TiVo, PS3, etc.) directly to it. But it will not display a picture sent from the receiver.</p>

<p>So it looks like I&#8217;m going to have to connect each device directly to the TV, and switch the video there (instead of in the receiver), and either handle audio separately or connect still another cable from the TV back to the receiver to get the right audio signal to come up.</p>

<p>Instead of two cables (power and HDMI) running up my wall to the TV, I will now have <em>at least</em> 7:
Power, TiVo, PS3, AppleTV, DVD, Wii, and audio. This is progress indeed.</p>

<p>Is there an explanation for this that won&#8217;t make me want to take a baseball bat to the collective heads of the HDMI standards forum?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2010/09/08/hdmi-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Becky and the Shark</title>
		<link>http://www.djehuti.com/2010/08/14/becky-and-the-shark/</link>
		<comments>http://www.djehuti.com/2010/08/14/becky-and-the-shark/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 22:49:59 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/?p=70</guid>
		<description><![CDATA[I don&#8217;t know that I need to add anything to this:]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t know that I need to add anything to this:</p>

<div id="attachment_71" class="wp-caption alignnone" style="width: 490px"><a href="http://www.djehuti.com/wp-content/uploads/2010/08/Becky_Shark_Small.jpg"><img src="http://www.djehuti.com/wp-content/uploads/2010/08/Becky_Shark_Small.jpg" alt="Becky and a shark" title="Becky_Shark_Small" width="480" height="319" class="size-full wp-image-71" /></a><p class="wp-caption-text">Becky found a shark on the beach.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2010/08/14/becky-and-the-shark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>E-Books vs. Paper: Environmental Concerns</title>
		<link>http://www.djehuti.com/2010/07/13/e-books-vs-paper-environmental-concerns/</link>
		<comments>http://www.djehuti.com/2010/07/13/e-books-vs-paper-environmental-concerns/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 03:05:29 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[environment]]></category>

		<guid isPermaLink="false">http://www.djehuti.com/2010/07/13/e-books-vs-paper-environmental-concerns/</guid>
		<description><![CDATA[I recently mentioned on Twitter that it was somewhat ironic that Rachel Carson’s Silent Spring, which I’d like to read, was only available in “dead tree” editions (and thus not convenient for me). I quickly got back two nearly identical responses telling me to go to a library. Obviously this doesn’t kill another tree, but [...]]]></description>
			<content:encoded><![CDATA[<p>I recently <a href="https://twitter.com/djehuti/status/18485718522">mentioned on Twitter</a> that it was somewhat ironic that Rachel Carson’s <em>Silent Spring</em>, which I’d like to read, was only available in “dead tree” editions (and thus not convenient for me).</p>

<p>I quickly got back two <a href="https://twitter.com/run_atalanta/status/18485870590">nearly</a> <a href="https://twitter.com/mattieflap/status/18485805827">identical</a> responses telling me to go to a library. Obviously this doesn’t kill another tree, but what it does do is indirectly perpetuate demand for paper books over electronic publishing, and as I said, I want to vote with my wallet for electronic editions, which I prefer not only because of their convenience (I <em>always</em> have an iBooks- and Kindle-capable device on me, unless I expect to get wet), but also because I perceive them to be a more environmentally conscious choice.</p>

<p><a href="https://twitter.com/dnamtl/status/18486330624">Another response I got</a>, though, calls that perception into question, linking to <a href="http://www.pbs.org/mediashift/2010/03/is-digital-media-worse-for-the-environment-than-print090.html">an article</a> that maintains that electronic media are just as polluting as paper publishing, because of the environmental damage done by coal mining and other ingredients (such as toxic computer parts) of electronic publishing.</p>

<p>My reaction to this, though, is that these environmental impacts, though real now, reflect the infancy of the information-based age. While it may be true <em>now</em> that buying one Kindle or ePub book and reading it (and considering the amortized impact of it&#8217;s production) incurs environmental costs that may be on par with the incremental and amortized costs of a paper book (a point which I <em>do not</em> concede), I believe that <a href="http://www.google.com/corporate/green/datacenters/">the environmental costs of electronic publishing are falling faster</a> than the costs of paper publishing are, and that my gut tells me this trend is likely to continue.</p>

<p>So, fortunately for me, this is a case where my convenience and my conscience are aligned.</p>

<p>What do you think? Tell me via <a href="http://twitter.com/djehuti">Twitter</a> or <a href="http://www.facebook.com/djehuti">Facebook</a>, or by a post on your own blog that links back here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.djehuti.com/2010/07/13/e-books-vs-paper-environmental-concerns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.100 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-19 09:37:32 -->

