<?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"
	>

<channel>
	<title>Dean's Pants</title>
	<atom:link href="http://deanspants.com/feed" rel="self" type="application/rss+xml" />
	<link>http://deanspants.com</link>
	<description>Tech and Trousers</description>
	<pubDate>Tue, 29 Jul 2008 09:24:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Mint is Wrong</title>
		<link>http://deanspants.com/entries/28</link>
		<comments>http://deanspants.com/entries/28#comments</comments>
		<pubDate>Tue, 29 Jul 2008 09:24:58 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[finances]]></category>

		<category><![CDATA[mint]]></category>

		<category><![CDATA[services]]></category>

		<category><![CDATA[web2]]></category>

		<guid isPermaLink="false">http://deanspants.com/?p=28</guid>
		<description><![CDATA[Mint is confused and just sent me an email:


  Hi there,
  
  Over the last 30 days you spent $Y on Mortgage &#38; Rent. You usually spend $Z.


A few things to consider:


My rent increased a few months ago from $X to $Y.
$X > $Z, by over $400.
I pay rent every single month.
I pay rent [...]]]></description>
			<content:encoded><![CDATA[<p><a href="mint.com" title="mint.com">Mint</a> is confused and just sent me an email:</p>

<blockquote>
  <p>Hi there,</p>
  
  <p>Over the last 30 days you spent $<code>Y</code> on Mortgage &amp; Rent. You usually spend $<code>Z</code>.</p>
</blockquote>

<p>A few things to consider:</p>

<ul>
<li>My rent increased a few months ago from $<code>X</code> to $<code>Y</code>.</li>
<li>$<code>X</code> > $<code>Z</code>, by over $400.</li>
<li>I pay rent every single month.</li>
<li>I pay rent at the <em>beginning</em> of the month. It&#8217;s now the 29th.</li>
</ul>

<p>My conclusions:</p>

<ul>
<li>Mint doesn&#8217;t know what the hell it&#8217;s talking about.</li>
<li>Mint&#8217;s unusual-spending notices are not timely and are therefore useless.</li>
<li>Mint does not adapt to small and expected changes in spending (like rent increases) so its unusual-spending notices are false positives (and useless) far too often.</li>
</ul>

<p>Wait, why do I use Mint again?</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/28/feed</wfw:commentRss>
		</item>
		<item>
		<title>iPhone Headsets, Reviewed</title>
		<link>http://deanspants.com/entries/25</link>
		<comments>http://deanspants.com/entries/25#comments</comments>
		<pubDate>Wed, 16 Jul 2008 01:59:22 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[review]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://deanspants.com/?p=25</guid>
		<description><![CDATA[I&#8217;ve had more experience than I want sampling different headsets for the iPhone. Here&#8217;s what I&#8217;ve learned.

What I want out of my headset:


an inline microphone
a play/pause button
earbuds that fit in my ears
the ability to hear podcasts and music over traffic, trains, and people in New York City
the ability to hear the lower registers clearly
sound isolation [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had more experience than I want sampling different headsets for the iPhone. Here&#8217;s what I&#8217;ve learned.</p>

<p>What I want out of my headset:</p>

<ul>
<li>an inline microphone</li>
<li>a play/pause button</li>
<li>earbuds that fit in my ears</li>
<li>the ability to hear podcasts and music over traffic, trains, and people in New York City</li>
<li>the ability to hear the lower registers clearly</li>
<li>sound isolation so I can keep the volume low enough that I&#8217;m not doing long-term damage to my hearing</li>
</ul>

<p><strong><a href="http://store.apple.com/us/product/MA814LL/A?fnode=home/shop_iphone/iphone_accessories/headsets&amp;mco=MTI5Nzk0OQ">Apple stock earbuds</a></strong></p>

<p><em>The Good:</em></p>

<ul>
<li>(Obviously) They use all the required features.</li>
</ul>

<p><em>The Bad:</em></p>

<ul>
<li>They don&#8217;t fit in my ears, and while they only initially fell out very often, I must still adjust their fit in my ears constantly.</li>
<li>If I want to guarantee a clear sound while walking under running, elevated subway trains (which I do every day) or sitting in a subway train when it&#8217;s running especially fast (which my train does under the East River), I have to turn up the volume way too loud. I also have consistent problems hearing people while using the phone.</li>
<li>Even while keeping the volume at a more reasonable level, I&#8217;m sure it&#8217;s still too loud and worry about long-term hearing problems.</li>
<li>I have to use the &#8220;Bass Booster&#8221; equalizer setting to hear lower frequencies.</li>
</ul>

<p><strong><a href="http://www.v-moda.com/collection/modaphones/vibe%20duo.aspx">V-Moda Vibe Duo</a></strong></p>

<p><em>The Good:</em></p>

<ul>
<li>These have excellent sound isolation. Outside sounds are muffled, and I can hear whatever is playing clearly and without the volume up too high.</li>
<li>Bass sounds excellent.</li>
<li>The in-ear earbuds fit my ears really well and don&#8217;t hurt after extended use.</li>
</ul>

<p><em>The Bad:</em></p>

<ul>
<li>At $100, they&#8217;re a tad pricey.</li>
<li>I can&#8217;t hear myself when speaking when on the phone without pulling out an earbud, but I can live with it.</li>
<li>Callers complain that they can&#8217;t hear me well.</li>
<li>I&#8217;ve owned three pairs of these, and every single pair has failed after less than two months due to a short in the wiring. This might be a deal-killer if there were a better pair.</li>
</ul>

<p><strong><a href="http://store.apple.com/us/product/TR313LL/A?fnode=home/shop_iphone/iphone_accessories/headsets&amp;mco=NzgxMDI">Etymotic hf2</a></strong></p>

<p><em>The Good:</em></p>

<ul>
<li>They fit relatively well. While I found myself adjusting the earbuds pretty often, I think I may have adjusted to them after a few days.</li>
<li>Outside sound is isolated very well. I could hear at a very reasonable volume.</li>
</ul>

<p><em>The Bad:</em></p>

<ul>
<li>At over $175, these are definitely too expensive to be imperfect.</li>
<li>Where&#8217;s the bass? These probably work great in a studio. They give true-to-life sound. The problem is, when I&#8217;m on the train or under a running train, true-to-life sound doesn&#8217;t cut it. I need extra bass.</li>
<li>I didn&#8217;t own them long enough to test the mic; I returned them the next day.</li>
</ul>

<p><strong><a href="http://store.apple.com/us/product/TN544LL/A?fnode=home/shop_iphone/iphone_accessories/headsets&amp;mco=MTc3NzQ">Shure Adapter</a></strong></p>

<p>This isn&#8217;t actually a set of headphones but an adapter. It provides a mic/button/input jack for your favorite pair of headphones with a standard jack.</p>

<p><em>The Good:</em></p>

<ul>
<li>Use whatever headphones you like!</li>
</ul>

<p><em>The Bad:</em></p>

<ul>
<li>The cord is something like four feet long. Add that to the two-foot cord on the Sony Fontopias I bought to go with it, and you have a cord that falls around my knees. The mic is at about pocket level, which doesn&#8217;t do me much good.</li>
</ul>

<p><strong>Conclusion</strong></p>

<p>The market for an iPhone headset is still <em>wide</em> open. For the love of Zeus, SOMEONE PLEASE FILL THIS MARKET VOID!</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/25/feed</wfw:commentRss>
		</item>
		<item>
		<title>Send an Email Later</title>
		<link>http://deanspants.com/entries/24</link>
		<comments>http://deanspants.com/entries/24#comments</comments>
		<pubDate>Tue, 10 Jun 2008 08:09:51 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://deanspants.com/?p=24</guid>
		<description><![CDATA[A friend came to me with a small problem. She wanted to email her boss, but she didn&#8217;t want him to know she had been up late; she wanted to send it first thing in the morning, when she wouldn&#8217;t be awake, and she&#8217;s on a Mac.

Apparently, Outlook and Entourage can do this, and I [...]]]></description>
			<content:encoded><![CDATA[<p>A friend came to me with a small problem. She wanted to email her boss, but she didn&#8217;t want him to know she had been up late; she wanted to send it first thing in the morning, when she wouldn&#8217;t be awake, and she&#8217;s on a Mac.</p>

<p>Apparently, Outlook and Entourage can do this, and I hunted around for a way to do it in either iCal or Mail.app, but I couldn&#8217;t find anything. An Automator script would be great, but she was going to bed soon and needed something quick.</p>

<p>I made two quick-and-dirty solutions to this, using the <code>at</code> daemon. First you have to turn it on. From the terminal, run the following (without the leading &#8216;#&#8217;):</p>

<p><code></code></p>

<pre># sudo launchctl \
load -w \
/System/Library/LaunchDaemons/com.apple.atrun.plist</pre>

<p></p>

<p>That just tells Apple&#8217;s <code>launchd</code> program to run the <code>at</code> daemon, <code>atrun</code>.</p>

<p>Next, we&#8217;ll make a job for <code>at</code> to run later. Here&#8217;s the quickest-and-dirtiest way:</p>

<p><code></code></p>

<pre># echo \
  "echo \
  'This is the message body.' \
  | mail -s \
    'Email Subject' 'you@example.com'" \
  | at 7:30am</pre>

<p></p>

<p>(Note that <code>at</code> takes the <em>command to run</em> on <code>stdin</code>; thus the redundant <code>echo</code>s.)</p>

<p>It may seem like a jumbled mess, but, assuming you don&#8217;t use any quotes in the email body or subject, you can just replace them (and the email recipient) with exactly what you want. (If your subject or body do have quotes, you&#8217;ll have to escape them properly, which I&#8217;m not going to cover.)</p>

<p>The next method, which is probably easier if you want to send an email with more than one line in it, starts by opening a text file and writing your email. You can use &#8220;TextEdit&#8221; or any plain text editor. The trick here is to put some headers up top:</p>

<p><code></code></p>

<pre>From: me@example.com
Reply-To: me@example.com
To: you@example.com
Subject: Yay! Email!

Here is your email.

Yay, email!

Yours truly,
Chewbacca

PS - Rawwwwrrrr!</pre>

<p></p>

<p>Save this in your home folder as <code>email.txt</code>. You need those headers on top for the <code>sendmail</code> program to be able to tell where to send it.</p>

<p>Then, in the terminal, we&#8217;ll make an at job that uses this file:</p>

<p><code></code></p>

<pre># echo \
"sendmail -t < ~/email.txt" \
| at 7:30am"</pre>

<p></p>

<p>And you&#8217;re done! If you want to test the <code>at</code> command first, replace &#8220;7:30am&#8221; with &#8220;now + 1 minute&#8221; (which means &#8220;1 minute from now&#8221;; how about that?), and change the recipient&#8217;s email address to your email address.</p>
</pre>]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/24/feed</wfw:commentRss>
		</item>
		<item>
		<title>LSL HTTP Servers</title>
		<link>http://deanspants.com/entries/23</link>
		<comments>http://deanspants.com/entries/23#comments</comments>
		<pubDate>Wed, 19 Dec 2007 13:55:15 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[link]]></category>

		<category><![CDATA[LSL]]></category>

		<category><![CDATA[secondLife]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/23</guid>
		<description><![CDATA[XML-RPC in LSL, as it stands, demands centralized servers that are constantly bombarded with traffic. Kelly Linden has proposed a new solution that practically amounts to a prim having its own little web server. I highly recommend voting for it.
]]></description>
			<content:encoded><![CDATA[<p>XML-RPC in LSL, as it stands, demands centralized servers that are constantly bombarded with traffic. Kelly Linden has proposed <a href="http://jira.secondlife.com/browse/SVC-1086">a new solution</a> that practically amounts to a prim having its own little web server. I highly recommend voting for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/23/feed</wfw:commentRss>
		</item>
		<item>
		<title>The Tyranny of Fetishistic Compulsion in Programming</title>
		<link>http://deanspants.com/entries/19</link>
		<comments>http://deanspants.com/entries/19#comments</comments>
		<pubDate>Mon, 05 Nov 2007 14:58:58 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[languages]]></category>

		<category><![CDATA[OOP]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/19</guid>
		<description><![CDATA[For you programmers out there, this is for you. For everyone else, just humor me; this won&#8217;t take long.

I&#8217;m taking a brief primer on C# (which, granted, is almost a beginner-level tutorial, but I didn&#8217;t want to miss anything important that an expert programmer&#8217;s primer may have passed over), and I&#8217;m reminded of some very [...]]]></description>
			<content:encoded><![CDATA[<p>For you programmers out there, this is for you. For everyone else, just humor me; this won&#8217;t take long.</p>

<p>I&#8217;m taking a <a href="http://www.csharp-station.com/Tutorial.aspx">brief primer on C#</a> (which, granted, is almost a beginner-level tutorial, but I didn&#8217;t want to miss anything important that an expert programmer&#8217;s primer may have passed over), and I&#8217;m reminded of some very disturbing things about the world of strictly-typed programming languages:</p>

<p>They&#8217;re designed by people who have RSS and email inboxes of zero unread items; both count and avoid cracks, twigs, and cigarette butts on the sidewalk; and SUCK ON DIRTY TOES FOR SEXUAL PLEASURE. I might also accuse them of being fundamentalist automata, but automata don&#8217;t have the emotional baggage necessary to inflict such misery on their fellow beings.</p>

<p>I began my computer science education by learning these kinds of languages, and I can&#8217;t blame my professors; teaching students scripting in esteemed computer science departments was a huge no-no. And consequently, I was mostly oblivious to the unnecessary sadism that was being inflicted upon us. C++ was the first remotely object-oriented language I learned, and while I was, like many students, unhappy with the level of specificity it required, I was generally satisfied that C++ was A MAN&#8217;S PROGRAMMING LANGUAGE. No pussies allowed. Runtime garbage collection? What are you? A terrorist? Implicit typecasting? Fuck off, cross-dressing hippies. I had no idea that I would soon, voluntarily subject myself to a much more hideous example of computer science sadism: Java.</p>

<p>At least C++ didn&#8217;t force you to write object-oriented code. I took an elective Java lab course a few semesters later. At the time, I thought: Gee, what a consistent language! The rules are elegant and applied without discrimination. Everything&#8217;s OOP. Polymorphism is easy. Completely virtual classes are possible. No confusing multiple inheritance allowed, and neither is any silly object overloading bullshit. Terrific, right?</p>

<p>I must be, only now, coming out of a haze of type-lenient, quick-and-dirty scripting utopia, because it&#8217;s only now that I remember what made me run screaming from pure, strictly typed, enforced OOP. I still don&#8217;t even think I can completely quantify it. Is it the bloat? Sure. What about wasted time worrying about method and property restrictions? Yep. Even more wasted time spent writing subclass upon subclass upon subclass or implementing interfaces? Definitely. How about the frustration of fixing bugs through subclasses? Aye. The complication of working through insane namespace spiderwebs? The migraine-inducing procedure of visualizing polymorphism on multiple levels? The insanity of writing one-line accessor methods? Did I mention bloat? All of the above.</p>

<p>I may have been overly generous to grant the designers (or strict adherents) of these languages the relatively mild sexual deviance of sucking on dirty toes. This level of sadism, control, and even masochism can only force the human psyche to act out in much more destructive ways.</p>

<p>I&#8217;m well aware that the more monastic languages have their place, especially those applications where security, provability, and/or the protection of human life are required. But if you&#8217;re not doing that, take it easy, folks. Try out some BASH one-liners on occasion. Or (<em>gasp!</em>) PHP in line with XHTML. Maybe even some easy-go-lucky Python. If no one else has to read it, maybe even PERL. Throw some caution to the wind. Make it easy on yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/19/feed</wfw:commentRss>
		</item>
		<item>
		<title>LSL Script Delays Hurt the Wrong People</title>
		<link>http://deanspants.com/entries/15</link>
		<comments>http://deanspants.com/entries/15#comments</comments>
		<pubDate>Sat, 15 Sep 2007 01:16:34 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[griefing]]></category>

		<category><![CDATA[JIRA]]></category>

		<category><![CDATA[LindenLab]]></category>

		<category><![CDATA[LSL]]></category>

		<category><![CDATA[scripting]]></category>

		<category><![CDATA[secondLife]]></category>

		<category><![CDATA[spamming]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/15</guid>
		<description><![CDATA[At some point in the history of Second Life, Linden Lab decided that griefing and spamming were such terrible problems that they put in little speed bumps all over the place to prevent abuse of things like automated inventory offers, external URLs, object rezzing, instant messaging, and others.

For instance, say you want your script to [...]]]></description>
			<content:encoded><![CDATA[<p>At some point in the history of Second Life, Linden Lab decided that griefing and spamming were such terrible problems that they put in little speed bumps all over the place to prevent abuse of things like automated inventory offers, external URLs, object rezzing, instant messaging, and others.</p>

<p>For instance, say you want your script to offer inventory to the person who just clicked on your object. As a new LSL scripter, you do the straightforward, obvious thing:</p>

<ol>
<li>Detect a touch.</li>
<li>Give a virtual nickel bag to the avatar who just touched the object.</li>
</ol>

<p>You may even go so far as to detect multiple touches and offer <em>everyone</em> who just touched the object their own nickel bag. Soon you find that your everyone loves the quality of your hydroponic, closet-grown product, and people start complaining. &#8220;You got something against furries? Why I can&#8217;t I have a nickel bag?&#8221; Or &#8220;Your MJ vendor is broken, dude.&#8221;</p>

<p>You scour the documentation and soon find that there&#8217;s a <em>built-in delay</em> to giving inventory. In particular, <a href="http://lslwiki.net/lslwiki/wakka.php?wakka=llGiveInventory"><code>llGiveInventory()</code> has a built-in delay of three seconds</a>. Crazy! How do you make sure to give <em>everyone</em> who wants it their own piece of chloroplastic heaven?</p>

<p>The most common technique seems to be what is affectionately known as the &#8220;multiple-slave-comm-script&#8221; trick, or as I prefer to call it, the &#8220;dispatcher-to-agents&#8221; technique. In this technique, there is one dispatcher and many agents. In this example, the dispatcher would work like this:</p>

<ol>
<li>Detect a touch.</li>
<li>Send a message to one of the agents (via a link message).</li>
</ol>

<p>An agent would work like this:</p>

<ol>
<li>Detect a message from the dispatcher.</li>
<li>Offer a nickel bag to the avatar who touched the object.</li>
</ol>

<p>The dispatcher should start with the first agent and work its way down to the last one before starting over. This way, only the agent is affected by the script delay. The dispatcher is immune and can happily go along ordering the agents around all day with no script delays. Beautiful!</p>

<p>If your happy grass gets really popular, you may start to notice that the dispatcher loops around to the first agent before its script delay is done; you got caught by the inherent race condition in this technique. So, to beat it, you make some more agents, and more agents, and more agents, until you discover that all of your agents stop working. &#8220;WTF?&#8221; you may ask. WTF indeed.</p>

<p>In yet <em>another</em> effort to reduce griefing and spamming, LL implemented <em>further</em> so-called protection. They knew people would use the dispatcher-to-agents method, and when a single object starts doing something griefy or spammy too quickly, they just disable the guilty scripts through some unknown means. There seems to be no warning. And all you can do is reset your scripts and start over. It also seems that this new &#8220;protection&#8221; only takes effect if there are <em>enough</em> scripts doing the griefy/spammy actions too fast. In my brief experimentation, 16 seems like too many, and the agents are quickly disabled, but 10 is too few, and they run along happily.</p>

<p>But for a popular vendor, 10 agents are simply not enough to avoid the race condition, but at this point, you give up and rationalize that you&#8217;ve mitigated the consequences of LL&#8217;s anti-griefing and anti-spamming measures as best you can. You console yourself that these protections are also stopping griefers and spammers from maliciously offering inventory too quickly.</p>

<p>But wait, aren&#8217;t you an honest avatar, trying to give away your pot in peace? You&#8217;re not spamming anyone. You only give it out to people who ask for it!</p>

<p>Here&#8217;s the problem with LL&#8217;s LSL speed bumps: They don&#8217;t prohibit griefers and spammers from working around the problem. When it comes down to it, does a griefer or a spammer really care if they hit the race condition? A spammer may, but they&#8217;re still able to spam. A griefer probably doesn&#8217;t. But you, the honest avatar who wants to write robust software that works reliably so your customers are satisfied is the one who suffers. The spammer still spams. The griefer still griefs. You and your customers suffer.</p>

<p>(On a side note, this problem is orders of magnitude worse when dealing with XML-RPC.)</p>

<p>What is a virtual person to do? Vote for <a href="http://jira.secondlife.com/browse/MISC-686">JIRA issue MISC-686</a>, and ask Linden Lab to remove script delays and grey-goo mitigation, and let honest developers write truly robust and reliable code.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/15/feed</wfw:commentRss>
		</item>
		<item>
		<title>iTunes Boots NBC</title>
		<link>http://deanspants.com/entries/13</link>
		<comments>http://deanspants.com/entries/13#comments</comments>
		<pubDate>Sun, 02 Sep 2007 04:22:25 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[FairPlay]]></category>

		<category><![CDATA[iTunes]]></category>

		<category><![CDATA[NBC]]></category>

		<category><![CDATA[TV]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/13</guid>
		<description><![CDATA[Apple issued a to-the-point press release earlier this week, saying they wouldn&#8217;t be carrying NBC TV content starting this month. Apparently, NBC wanted to charge five bucks for a single episode and thought Apple wasn&#8217;t doing enough to protect those shows against piracy.

Before your brain explodes from the sheer nonsense from NBC, have a look [...]]]></description>
			<content:encoded><![CDATA[<p>Apple issued a to-the-point <a href="http://www.apple.com/pr/library/2007/08/31itunes.html">press release</a> earlier this week, saying they wouldn&#8217;t be carrying NBC TV content starting this month. Apparently, NBC wanted to charge <em>five bucks</em> for a single episode and thought Apple wasn&#8217;t doing enough to protect those shows against piracy.</p>

<p>Before your brain explodes from the sheer nonsense from NBC, have a look at <a href="http://ilounge.com/index.php/articles/comments/an-open-letter-to-nbc-re-leaving-apples-itunes-store/">Jeremy Horowitz&#8217;s retort</a>, which takes NBC to task for its hypocrisy and says just about everything I would have.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/13/feed</wfw:commentRss>
		</item>
		<item>
		<title>They&#8217;re In My Ears!</title>
		<link>http://deanspants.com/entries/12</link>
		<comments>http://deanspants.com/entries/12#comments</comments>
		<pubDate>Wed, 15 Aug 2007 11:42:14 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[headphones]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/12</guid>
		<description><![CDATA[Dear Apple,

Your stock iPhone headphones suck really hard.

I live in New York City. You might know it. It&#8217;s that place where people walk, loud noises happen, and tons of people love your products. Every day I walk to and from the train. Your headphones do not stay in my ears during this activity, apparently rare [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Apple,</p>

<p>Your <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=20CBE9C2&amp;nplm=MA814LL/A" title="Headphones that fall out of your ears! Genius!">stock iPhone headphones</a> suck really hard.</p>

<p>I live in New York City. You might know it. It&#8217;s that place where people walk, loud noises happen, and <em>tons</em> of people love your products. Every day I walk to and from the train. Your headphones do not stay in my ears during this activity, apparently rare every else, except with some precision placement worthy of a champion <a href="http://www.hasbro.com/jenga/">Jenga</a> player. Every day I walk <em>under an elevated train</em> to the coffee shop and ride trains that produce what some may know as &#8220;loud noise&#8221;. I love that nifty control button on the mic because I have to use it during these occasions to pause the audio, lest I miss several minutes of &#8220;<a href="http://bol.cnet.com" title="Sting Like a Bee, Motherfucker!">Buzz Out Loud</a>&#8221; or &#8220;<a href="http://twit.tv" title="Everybody's a stupid twit!">TWiT</a>&#8221; or &#8220;<a href="http://sciencefriday.com" title="Science, Dammit!">Science Friday</a>&#8221;. In case you&#8217;re unaware, those are podcasts that you syndicate on your iTunes Store. Podcasts. Things you listen to. On the go. On your iPhone. In your ears.</p>

<p><a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=DB77FAB5&amp;nplm=TN543LL/A" title="V-MODA Garbage">These V-MODA headphones</a> you offer are not an acceptable alternative. You remember that control button on the mic? They don&#8217;t have one. I think I may have use for that pause button since I can&#8217;t pause audio without unlocking the iPhone otherwise. I recommend you ban V-MODA from your store because of their inability to sell decent after-market products.</p>

<p>And <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=DB861236&amp;nplm=TN544LL/A" title="Shure Garbage">these</a>? Really? Do I really need to buy <em>two</em> things to listen to audio on the iPhone? And do I really need to use a <em>clip</em> to position the mic near my mouth? Please also ban Shure.</p>

<p>I not only come to you with criticism but with a <em>solution</em>! What is this miracle of ingenuity? This innovative new thinking? You know those <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?mco=17F6F30F&amp;nplm=M9394G/B" title="Fucking Genius Heaphones!"><em>other</em> headphones</a> you sold for the iPod? Yeah, those. Uhm, why not sell those for the iPhone with the same fancy mic and control button? Genius. I know you never thought of it because it&#8217;s been two months since I bought my iPhone and they&#8217;re not out yet. Therefore, I must be the first person in the universe to have this idea. You&#8217;re lucky to have me on your team, guys.</p>

<p>Sincerely,</p>

<p>Dean and His Pants</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/12/feed</wfw:commentRss>
		</item>
		<item>
		<title>Buh-Bye, Linux</title>
		<link>http://deanspants.com/entries/11</link>
		<comments>http://deanspants.com/entries/11#comments</comments>
		<pubDate>Tue, 14 Aug 2007 13:18:59 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[article]]></category>

		<category><![CDATA[backups]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/11</guid>
		<description><![CDATA[The hard drive on my Linux box failed today, which leaves me, for the moment, in a Mac-only household (well, just me): two iMacs, a MacBook, an Apple TV, and an iPhone.

While my attention as of late has been focused on development in Second Life (as it pays the bills), I had been resisting the [...]]]></description>
			<content:encoded><![CDATA[<p>The hard drive on my Linux box failed today, which leaves me, for the moment, in a Mac-only household (well, just me): two iMacs, a MacBook, an Apple TV, and an iPhone.</p>

<p>While my attention as of late has been focused on development in Second Life (as it pays the bills), I had been resisting the urge to come to real terms with the &#8220;former&#8221; in &#8220;former system administrator&#8221;. I&#8217;m a developer now and will hopefully continue to be. Unfortunately, the Linux box was doing a few very important things. Most importantly, it was running backups on itself and my main iMac. That&#8217;s not something I can just ignore.</p>

<p>So now my choices are:</p>

<ul>
<li><em>Get a new hard drive and repair the Linux box.</em> This is simply not going to happen. In terms of daily life and of long-term planning, Linux and system administration are just diversions, distracting me from honing my development skills.</li>
<li><em>Run a virtualized Linux on the old iMac (or a new Mac Mini).</em> If I were to ditch Gentoo, this might be easier, but for the reasons above, it&#8217;s not an option either. I don&#8217;t want to divert my resources.</li>
<li><em>Run backups on the old iMac (or a new Mac Mini) from Mac OS.</em> This seems feasible. Assuming <a href="http://macports.org">MacPorts</a> is still an active project and they have builds of rsnapshot (the best backup utility I&#8217;ve used), this should be a no-brainer.</li>
</ul>

<p>One problem remains, though. The filesystem on the backup drive (an external USB 2.0 and Firewire 400/800 drive) is ReiserFS over LVM. I have no idea if Mac OS can handle these natively, so I may have to do some swapping around with a virtualized Linux just to get my backups out.</p>

<p>In any case, I guess I&#8217;ll be Linux-free by the time this is all over.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/11/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hire the Best Devs</title>
		<link>http://deanspants.com/entries/8</link>
		<comments>http://deanspants.com/entries/8#comments</comments>
		<pubDate>Thu, 09 Aug 2007 21:14:51 +0000</pubDate>
		<dc:creator>Dean</dc:creator>
		
		<category><![CDATA[link]]></category>

		<category><![CDATA[jobs]]></category>

		<category><![CDATA[programmers]]></category>

		<guid isPermaLink="false">http://deanspants.com/entries/8</guid>
		<description><![CDATA[@fleep turned me on to this article about why hiring bad or mediocre programmers will cost you more money in the long run. Great stuff. I&#8217;d be interested in seeing how HR folks, recruiters, and managers agree or disagree.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/fleep" title="twitter.com:fleep">@fleep</a> turned me on to <a href="http://blog.revsys.com/2007/08/a-guide-to-hiri.html" title="blog.revsys.com: A Guide to Hiring Programmers: The High Cost of Low Quality">this article</a> about why hiring bad or mediocre programmers will cost you more money in the long run. Great stuff. I&#8217;d be interested in seeing how HR folks, recruiters, and managers agree or disagree.</p>
]]></content:encoded>
			<wfw:commentRss>http://deanspants.com/entries/8/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
