<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2titles.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemtitles.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>jotsheet</title>
	
	<link>http://underscorebleach.net/jotsheet</link>
	<description>I'm pretty good at wasting your time.  By Tom Sherman.</description>
	<pubDate>Wed, 16 Dec 2009 21:30:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<feedburner:info uri="underscorebleach/jotsheet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://underscorebleach.net/jotsheet/feed/" /><feedburner:browserFriendly>I also encourage you to register at underscorebleach.net. You'll bypass the CAPTCHA for commenting and all ads.</feedburner:browserFriendly><item>
		<title>I don’t feel like blogging anymore</title>
		<link>http://underscorebleach.net/jotsheet/2008/09/i-dont-feel-like-blogging-anymore</link>
		<comments>http://underscorebleach.net/jotsheet/2008/09/i-dont-feel-like-blogging-anymore#comments</comments>
		<pubDate>Sun, 14 Sep 2008 00:29:38 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Blogs and Blogging]]></category>

		<category><![CDATA[My Mundane Life]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/?p=1637</guid>
		<description><![CDATA[I hope you figured this out, since I haven&#8217;t updated for close to a year, but I thought I&#8217;d make it official.
It&#8217;s not that anything&#8217;s &#8220;wrong&#8221;&#8211;I just don&#8217;t feel like I have anything I need to broadcast to the internets.  (Well, except for Twitter, but I&#8217;m kinda flaky on that score, too.)  I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I hope you figured this out, since I haven&#8217;t updated for close to a year, but I thought I&#8217;d make it official.</p>
<p>It&#8217;s not that anything&#8217;s &#8220;wrong&#8221;&#8211;I just don&#8217;t feel like I have anything I need to broadcast to the internets.  (Well, except for Twitter, but I&#8217;m <a href="http://twitter.com/tomsherman">kinda flaky</a> on that score, too.)  I don&#8217;t feel like writing rants and I have no desire to share intimate details of my life.  And frankly, in the last year or so, I&#8217;ve started to dig this <a href="http://www.netlingo.com/lookup.cfm?term=IRL">IRL</a> thing more.</p>
<p>That said, I do miss the connections and conversations I used to maintain via blogging.  I&#8217;m still online (way too much, of course), and you can easily reach me via email at <strong>tom at underscorebleach dot net</strong>.  Please do drop me a line.</p>
<p>But now&#8230; it&#8217;s back to the real world for me!</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2008/09/i-dont-feel-like-blogging-anymore/feed</wfw:commentRss>
		</item>
		<item>
		<title>How to play AAC and M4P files without iTunes</title>
		<link>http://underscorebleach.net/jotsheet/2007/11/how-to-play-aac-and-m4p-files-without-itunes</link>
		<comments>http://underscorebleach.net/jotsheet/2007/11/how-to-play-aac-and-m4p-files-without-itunes#comments</comments>
		<pubDate>Tue, 20 Nov 2007 17:43:28 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[How to]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2007/11/how-to-play-aac-and-m4p-files-without-itunes</guid>
		<description><![CDATA[iTunes is a piece of shit.  I hate it.  It&#8217;s slow, it&#8217;s a RAM hog, and its constant self-updating is both annoying and destructive (as noted by Dennis Kennedy). Of course, this is to say nothing of my disdain for the iPod.
But I do own an iPod, and I did use iTunes to [...]]]></description>
			<content:encoded><![CDATA[<p>iTunes is a piece of shit.  I hate it.  It&#8217;s slow, it&#8217;s a RAM hog, and its constant self-updating is both annoying and destructive (<a href="http://www.denniskennedy.com/blog/2007/07/presumptuous_computing_a_trend_to_reverse.html">as noted by Dennis Kennedy</a>). Of course, this is to say nothing of my <a href="http://underscorebleach.net/jotsheet/2007/08/i-hate-my-ipod">disdain for the iPod</a>.</p>
<p>But I do own an iPod, and I did use iTunes to rip my CD collection, so I&#8217;d been using iTunes to play the AAC and M4P files&#8211;until now.</p>
<p>My favorite little Winamp replacement, <a href="http://quinnware.com/">Quintessential Player</a>, has a plugin for playing AAC/M4P files.  <a href="http://www.rarewares.org/aac-decoders.php">Get it from RareWares</a>.  Then you needn&#8217;t use Microsoft&#8217;s abominable resource hog (Windows Media Player) or Apple&#8217;s abominable resource hog (iTunes).  You get to use a fast, skinnable little player, and you feel extra special nerdy cool while you do it.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2007/11/how-to-play-aac-and-m4p-files-without-itunes/feed</wfw:commentRss>
		</item>
		<item>
		<title>Mounting an ISO as a drive: no need to burn a CD/DVD</title>
		<link>http://underscorebleach.net/jotsheet/2007/09/virtual-drive-mount-iso</link>
		<comments>http://underscorebleach.net/jotsheet/2007/09/virtual-drive-mount-iso#comments</comments>
		<pubDate>Thu, 06 Sep 2007 14:01:33 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[How to]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2007/09/virtual-drive-mount-iso</guid>
		<description><![CDATA[I picked up a useful bit of information this morning.  Did you know that you don&#8217;t have to burn an ISO image to CD/DVD to access its files?  Instead, you can mount the image as a local drive.  This is handy because (a) you don&#8217;t have to wait to burn the image, [...]]]></description>
			<content:encoded><![CDATA[<p>I picked up a useful bit of information this morning.  Did you know that you don&#8217;t have to burn an ISO image to CD/DVD to access its files?  Instead, you can <a href="http://weblogs.asp.net/pleloup/archive/2004/01/15/58918.aspx">mount the image as a local drive</a>.  This is handy because (a) you don&#8217;t have to wait to burn the image, (b) you don&#8217;t have to waste a DVD/CD, and (c) it&#8217;s faster because the files are accessed off the hard drive, not the CD/DVD drive.</p>
<p>Since more and more apps are downloadable as ISOs, I think this will be useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2007/09/virtual-drive-mount-iso/feed</wfw:commentRss>
		</item>
		<item>
		<title>TiVo should store settings online</title>
		<link>http://underscorebleach.net/jotsheet/2007/04/tivo-online-settings</link>
		<comments>http://underscorebleach.net/jotsheet/2007/04/tivo-online-settings#comments</comments>
		<pubDate>Sun, 22 Apr 2007 19:00:19 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2007/04/tivo-online-settings</guid>
		<description><![CDATA[My TiVo&#8217;s hard drive died last weekend.  I&#8217;d owned it less than a year.  This is quite common, of course, as a TiVo is just a computer, and computers&#8217; hard drives fail.  I bought a cheap, bare drive from Newegg, burned an image with InstantCake, and spent too much money at the [...]]]></description>
			<content:encoded><![CDATA[<p>My TiVo&#8217;s hard drive died last weekend.  I&#8217;d owned it less than a year.  This is quite common, of course, as a TiVo is just a computer, and computers&#8217; hard drives fail.  I bought a cheap, bare drive from Newegg, burned an image with InstantCake, and spent too much money at the hardware store on a Torx set to install the new drive.  (Why do computer components use Torx screws?!)  However, the biggest pain in the entire process was <strong>going through the guided setup again:</strong> setting my lineup, setting up the control of the cable box, etc.  And I lost all my Season Pass settings.</p>
<p>But it got me to wondering: Why doesn&#8217;t TiVo store the box&#8217;s settings online?  My TiVo is networked and &#8220;calls home&#8221; every 15 minutes or so.  TiVo.com stores the device ID of my box.  Why couldn&#8217;t the TiVo pass back my season passes and lineup info?  I&#8217;m not even asking for web management of Season Passes and the To Do List; I&#8217;d just like to have the main box info backed up remotely.  Seems easy enough.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2007/04/tivo-online-settings/feed</wfw:commentRss>
		</item>
		<item>
		<title>A brief message to the person who jacked up my car at 3 o’clock in the morning, removed the lug nuts from the passenger-side wheel, took the wheel (presumably to replace a damaged wheel on his own Scion TC), and left my 3-wheeled car for me to discover at 8:20 a.m. this morning</title>
		<link>http://underscorebleach.net/jotsheet/2007/03/the-stolen-wheel</link>
		<comments>http://underscorebleach.net/jotsheet/2007/03/the-stolen-wheel#comments</comments>
		<pubDate>Wed, 07 Mar 2007 01:29:10 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Best of the Best]]></category>

		<category><![CDATA[My Mundane Life]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2007/03/a-brief-message-to-the-person-who-jacked-up-my-car-at-3-oclock-in-the-morning-removed-the-lug-nuts-from-the-passenger-side-wheel-took-the-wheel-presumably-to-replace-a-damaged-wheel-on-his-own-scion-t</guid>
		<description><![CDATA[Thank you for leaving the lug nuts from the stolen wheel in a neat pile next to the wheel drum.
It was quaint and really quite thoughtful, and I must say that having those lug nuts simplified matters for me today.

]]></description>
			<content:encoded><![CDATA[<p>Thank you for leaving the lug nuts from the stolen wheel in a neat pile next to the wheel drum.</p>
<p>It was quaint and really quite thoughtful, and I must say that having those lug nuts simplified matters for me today.</p>
<p><img src="http://underscorebleach.net/jotsheet/wp-content/uploads/sciontcstolenwheel.jpg" alt="no wheel!" width="500" height="270" /></p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2007/03/the-stolen-wheel/feed</wfw:commentRss>
		</item>
		<item>
		<title>WindyBits: Covering Chicago technology</title>
		<link>http://underscorebleach.net/jotsheet/2007/02/windybits</link>
		<comments>http://underscorebleach.net/jotsheet/2007/02/windybits#comments</comments>
		<pubDate>Tue, 06 Feb 2007 03:02:17 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2007/02/windybits</guid>
		<description><![CDATA[I haven&#8217;t posted much recently, but I&#8217;ve got a good excuse: WindyBits.
In the past few months, I&#8217;ve become more interested in the Chicago technology &#8220;scene.&#8221;  (&#8221;Scene&#8221; is a funny word when you&#8217;re talking about techies and startups, but I don&#8217;t have a better word.)  Chicago is home to plenty of cool startups and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.windybits.com"><img class="image-right" src="http://underscorebleach.net/jotsheet/wp-content/uploads/windybits.gif" alt="WindyBits" width="236" height="50" /></a>I haven&#8217;t posted much recently, but I&#8217;ve got a good excuse: <a href="http://www.windybits.com">WindyBits</a>.</p>
<p>In the past few months, I&#8217;ve become more interested in the Chicago technology &#8220;scene.&#8221;  (&#8221;Scene&#8221; is a funny word when you&#8217;re talking about techies and startups, but I don&#8217;t have a better word.)  Chicago is home to plenty of cool startups and interesting tech types, but the coverage sucks.  I&#8217;m aiming to change that.</p>
<p>WindyBits is a site dedicated to covering the ideas, events, and people in Chicago technology.  We feature:</p>
<ul>
<li><a href="http://www.windybits.com/category/articles/">Articles</a> on Chicago technology</li>
<li><a href="http://www.windybits.com/category/events/">Events in Chicago technology</a></li>
<li><a href="http://www.windybits.com/category/chicagobits/">Tech-related Chicago news</a> and <a href="http://www.windybits.com/category/techbits/">Chicago-related tech news</a></li>
</ul>
<p>This is a fun project for me, and just a side project, but it&#8217;s a lot of work!  Anyway, you, the loyal jotsheet reader, are invited to slide on over to <a href="http://www.windybits.com">WindyBits</a> and offer encouragement and suggestions.  Oh, and an incoming link from you important bloggers wouldn&#8217;t hurt.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2007/02/windybits/feed</wfw:commentRss>
		</item>
		<item>
		<title>WordPress file permissions</title>
		<link>http://underscorebleach.net/jotsheet/2006/10/wordpress-file-permissions</link>
		<comments>http://underscorebleach.net/jotsheet/2006/10/wordpress-file-permissions#comments</comments>
		<pubDate>Sun, 22 Oct 2006 18:10:06 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2006/10/wordpress-file-permissions</guid>
		<description><![CDATA[WordPress file security: Ensure permissions on directories are 755 and files are 644.  Also, steps for securing WP-Cache.]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://underscorebleach.net/jotsheet/2006/10/wordpress-pair-php-cgiwrap">disabling php-cgiwrap</a>, I got in the bad habit of chmod&#8217;ing files and directories to 777.  Bad idea.  A helpful reminder about <a href="http://www.tamba2.org.uk/wordpress/chmod/">WordPress file permissions and security</a> got me back in line with 755 for directories, 644 for plugins and core WP PHP files, and 666 for my active theme files.</p>
<p>In so doing, I&#8217;ve had to disable WP-Cache, but since the site seems to be peachy since I switched back to using the PHP Apache module (default), I think the performance/availability will be fine.</p>
<p>Related security tidbit: Using <code>require()</code> with an external file to <a href="http://wordpress.org/support/topic/64882">increase security</a> on wp-config.php&#8217;s database password storage.<br />
<span id="more-1463"></span></p>
<h3>Update: WP-Cache security</h3>
<p>I decided it would be prudent to enable WP-Cache.  In its default configuration, it&#8217;s unnecessarily secure, so here are two steps you can take.</p>
<p>All of these steps apply only to those whose http daemon runs as www or nobody, not their own users.  If Apache runs as you, everything can be 700 and 600.</p>
<ol>
<li><strong>Keep wp-content/ chmod&#8217;ed to 755.</strong>
<ul>
<li>Initially, you must chmod wp-content/ to 777 so the WP-Cache plugin can write wp-cache-config.php.</li>
<li>After wp-cache-config.php is created in wp-content/:
<ul>
<li>Chmod wp-content/ to 755</li>
<li>Chmod wp-content/wp-cache-config.php to 666.</li>
<li>Change line 430 of wp-content/plugins/wp-cache/wp-cache.php to<br />
<code>if ( !file_exists($wp_cache_config_file) &amp;&amp; !is_writable($dir)) {</code></p>
<ul>
<li>Replace <code>if ( !is_writable($dir)) {</code></li>
<li><a href="http://mnm.uib.es/gallir/wp-cache-2/#comment-9647">Credit: Joerg</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><strong>Secure the wp-content/cache/ directory</strong>
<ul>
<li>Chmod wp-content/cache/ to 777 (this is unavoidable)</li>
<li>Place the following .htaccess file in wp-content/cache.  (This prevents the cache directory from being Web-accessible.  If anyone on your shared hosting box writes to this directory, their files won&#8217;t be accessible and they can&#8217;t steal your bandwidth.  Yes, this is a fringe scenario, but that&#8217;s kinda what security is about.)
<pre><code>Options -Indexes
&lt;Files *&gt;
        order deny,allow
        deny from all
&lt;/Files&gt;</code></pre>
</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/10/wordpress-file-permissions/feed</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress, Pair.com hosting, and php-cgiwrap</title>
		<link>http://underscorebleach.net/jotsheet/2006/10/wordpress-pair-php-cgiwrap</link>
		<comments>http://underscorebleach.net/jotsheet/2006/10/wordpress-pair-php-cgiwrap#comments</comments>
		<pubDate>Sun, 15 Oct 2006 21:28:04 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2006/10/wordpress-pair-php-cgiwrap</guid>
		<description><![CDATA[My site is hosted with Pair.  Recently, I had been having lots of problems with PHP exceeding the allocated 16 megs of memory and being killed by Pair&#8217;s monitoring scripts &#8212; sometimes 3 or 4 times an hour.
I fixed the problem and thought I&#8217;d share for anyone else in my situation.

Don&#8217;t run Wordpress under [...]]]></description>
			<content:encoded><![CDATA[<p>My site is hosted with <a href="http://www.pair.com">Pair</a>.  Recently, I had been having <a href="http://underscorebleach.net/jotsheet/2006/10/register-to-comment">lots of problems</a> with PHP exceeding the allocated 16 megs of memory and being killed by Pair&#8217;s monitoring scripts &#8212; sometimes 3 or 4 times an hour.</p>
<p>I fixed the problem and thought I&#8217;d share for anyone else in my situation.<br />
<span id="more-1461"></span></p>
<h3>Don&#8217;t run Wordpress under php-cgiwrap</h3>
<p>This is the real fix.  The two items below seem to help, but this is the solution: <strong>don&#8217;t take Pair&#8217;s advice and run WP under <a href="http://www.pair.com/support/knowledge_base/authoring_development/system_cgi_php-cgiwrap.html">php-cgiwrap</a></strong>.  When using php-cgiwrap, Wordpress turns into an incorrible memory hog.</p>
<p>php-cgiwrap offers added security, since Wordpress will run as your user on the box, allowing you to chmod important files (e.g. wp-config.php) to 600.  However, the benefits of the security are outweighed in this case by the fact that it just makes your site kinda unreliable.</p>
<p>When you switch to the normal WP/PHP situation &#8212; running PHP as an Apache module &#8212; you&#8217;ll need to relax some of the permissions in <code>wp-content/</code> and WP&#8217;s <code>cache/</code> directory.  You also need to make <code>wp-config.php</code> world-readable (the nobody/www user has to be able to read it).  This isn&#8217;t a problem for accessing the file from the Web &#8212; the database settings are hidden in PHP variables, not exposed to a Web user &#8212; but if you&#8217;re skittish, you can <code>require()</code> the database values <a href="http://wordpress.org/support/topic/64882">from an external file</a>.</p>
<h3>Use WP-Cache</h3>
<p>Well, it&#8217;s almost a given these days.  Has to be the <a href="http://mnm.uib.es/gallir/wp-cache-2/">most useful plugin for Wordpress</a>, but this alone couldn&#8217;t save my PHP process under php-cgiwrap &#8212; even when I bumped the expiration time up to 12 hours.</p>
<h3>Disable Wordpress&#8217; internal cache</h3>
<p>I don&#8217;t know if this helped, but it didn&#8217;t seem to hurt.  And from <a href="http://wordpress.org/support/topic/78660">this thread</a>, the WP cache seems like a <a href="http://wordpress.org/support/topic/78660#post-410352">bad idea</a>, anyhow.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/10/wordpress-pair-php-cgiwrap/feed</wfw:commentRss>
		</item>
		<item>
		<title>Consolidate CSS and JavaScript in WordPress</title>
		<link>http://underscorebleach.net/jotsheet/2006/09/wordpress-css-javascript</link>
		<comments>http://underscorebleach.net/jotsheet/2006/09/wordpress-css-javascript#comments</comments>
		<pubDate>Sat, 23 Sep 2006 16:00:29 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2006/09/wordpress-css-javascript</guid>
		<description><![CDATA[If you&#8217;re on WordPress and are using a lot of plugins, chances are that your blog is slower.  No, not because of the plugins&#8217; functions &#8212; that&#8217;s easily mitigated by WP-Cache &#8212; but because each of the plugins is inserting its own JavaScript and CSS into your blog.  This causes users to have [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re on WordPress and are <a href="http://underscorebleach.net/jotsheet/2006/09/favorite-wordpress-plugins">using a lot of plugins</a>, chances are that your blog is slower.  No, not because of the plugins&#8217; functions &#8212; that&#8217;s easily mitigated by <a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache</a> &#8212; but because each of the plugins is inserting its own JavaScript and CSS into your blog.  This causes users to have bigger page downloads and more HTTP requests, slowing everything down.</p>
<p>Note: This tutorial is for <em>advanced users</em>.  Be careful!  I screwed my blog&#8217;s commenting up for a while after posting this. :) I do <strong>not</strong> recommend messing with scriptaculous stuff &#8212; just leave it be.  If you&#8217;re a novice, you probably don&#8217;t care about your site being a little bit slower, so this isn&#8217;t worth the effort.</p>
<h3>Background</h3>
<p>The best thing to do is to consolidate your CSS and JavaScript into singular files.  This isn&#8217;t always possible &#8212; sometimes, the contents of included CSS and JavaScript depend on variables set in the plugins &#8212; but usually the included JavaScript and CSS are static.</p>
<p><span id="more-1455"></span></p>
<h3>Step 1: Find the culprits</h3>
<p>Simply View Source on your site.  Search in-page for &#8220;JavaScript&#8221; and &#8220;CSS&#8221; and see how many files you&#8217;ve got.  Some are included inline (<code>&lt;style type="text/CSS"&gt;</code> and non-src <code>&lt;script&gt;</code>) and some are external (<code>&lt;link rel="stylesheet"&gt;</code>, <code>@import</code>, and <code>&lt;script src&gt;</code>).</p>
<p>Inline includes bloat page size of the html.  External includes ratchet up the number HTTP requests that a browser must make.  The external includes are a bigger culprit in slowing down your site; it&#8217;s better to have make 1 HTTP request of a 2k external JavaScript than 2 HTTP requests of 1k files.  In fact, it&#8217;s probably still better to make 1 HTTP request of a <em>4k</em> file than 2 requests of a 1k file; the total download time will be similar, and on subsequent page views, the browser needs to check on the Last-Modified status of 1 file rather than 2.  A highly technical analysis of this concept is at <a href="http://www-iepm.slac.stanford.edu/monitoring/bulk/bbcp.html">&#8220;Bulk File Transfer Measurements,&#8221;</a> where you&#8217;ll <a href="http://www-iepm.slac.stanford.edu/monitoring/bulk/bbcp.html#duration">see</a> that throughput is poor until file size is at least 10k.</p>
<h3>Step 2: Consolidate</h3>
<p>Create consolidated JavaScript and CSS files.  Copy the plugin-generated JavaScript and CSS into these files.</p>
<p>Note: It&#8217;s a good idea to make these consolidated files <strong>separate from</strong> your theme&#8217;s CSS/JavaScript, as you&#8217;ll want the consolidated plugin files to be <em>portable when you change themes.</em></p>
<h3>Step 3: Disabling the inclusion of the CSS/JavaScript from the plugins</h3>
<p>This is the trickiest part, which is why I recommend this exercise only if you&#8217;re an advanced user.  You should be careful here, as it&#8217;s really easy to mess things up.  The best thing to do is to deal with one plugin at a time, iteratively reloading your cache-disabled blog to make sure things are still cool.</p>
<p>First you&#8217;ve got to find the plugins that are inserting the CSS and JavaScript.  You might not know which plugins are responsible.  For this task, do some grep&#8217;ing in the plugins directory (/path/to/wp/wp-content/plugins).</p>
<p>Good starting points: <code>grep -Hnr "add_filter('wp_head'" *.php</code> and <code>grep -Hnr "add_action('wp_head'" *.php</code></p>
<p>This looks for plugins that are inserting something in the &lt;head&gt; of the document.</p>
<p>You can also grep for unique names in inline styles or JavaScript.  External files should be clearer, as the includes should reference the plugin name somehow, since the files are often in the plugin&#8217;s subdirectory.</p>
<p>Once you find the responsible plugins, comment out the add_filter (i.e. // add_filter), or do whatever you&#8217;ve got to do in the plugin to disable inclusion.</p>
<h3>Step 4 (optional): GZip it!</h3>
<p>The consolidated files should be static; that is, they&#8217;re never going to change unless you install a new plugin that adds its own CSS and/or JavaScript.  Because they&#8217;re static, you can gzip the consolidated CSS/JavaScript files for faster download.  All browsers can handle gzipped files, and the filesize after compression is about 1/10 of its uncompressed size.</p>
<p>Simply execute: <code>gzip stylesheet.js</code> and it&#8217;ll created stylesheet.js.gz.  You can then include this gzipped file, and the browser will understand (from the Content-Type returned by the web server) that it needs to unzip the file.</p>
<h3>Step 5 (optional): Apache trick</h3>
<p>One last thing.</p>
<p>Seems few people like to do this, but I think it&#8217;s handy.  Instead of having:</p>
<p><code>&lt;link rel="stylesheet" href="http://underscorebleach.net/path/to/stylesheet.js.gz" /&gt;</code></p>
<p>in your templates, I prefer this:</p>
<p><code>&lt;link rel="stylesheet" href="/path/to/style/" /&gt;</code></p>
<p>This way, you can:</p>
<ul>
<li>Silently change the stylesheet returned by the HTTP request for that directory.  You simply change the Apache configuration rather than having to update multiple HTML files or includes to reference the new file.  As long as all of your templates &#8212; even non-WP templates &#8212; reference the <em>directory</em>, you&#8217;ll never have to worry about referencing an non-existent external JavaScript or CSS file.</li>
<li>Serve a gzipped file transparently and not confuse people as to why the file extension is &#8220;.gz&#8221;.</li>
</ul>
<p>For the above example, create a .htaccess file in the directory of your stylesheet and use the <a href="http://httpd.apache.org/docs/1.3/mod/mod_dir.html#directoryindex">DirectoryIndex directive</a>:</p>
<p><code>DirectoryIndex stylesheet.js.gz stylesheet.js</code></p>
<p>This means that when a browser requests that directory, it will be fed stylesheet.js.gz (if it exists) before stylesheet.js (if it exists).  This order ensures that (a) the gzipped, smaller file is fed first, and (b) if you gunzip the file to modify it and forget to re-gzip it, you won&#8217;t have a problem.</p>
<h3>Conclusion</h3>
<p>WordPress users with lot of plugins might have 5 or 6 extra JavaScript and CSS files included, often externally.  This increases the number of HTTP requests and slows down page load.  Consolidating and gzipping the plugins&#8217; JavaScript and CSS improves user experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/09/wordpress-css-javascript/feed</wfw:commentRss>
		</item>
		<item>
		<title>My curt goodbye to Movable Type</title>
		<link>http://underscorebleach.net/jotsheet/2006/09/goodbye-movable-type</link>
		<comments>http://underscorebleach.net/jotsheet/2006/09/goodbye-movable-type#comments</comments>
		<pubDate>Wed, 20 Sep 2006 06:21:05 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Best of the Best]]></category>

		<category><![CDATA[Movable Type]]></category>

		<category><![CDATA[Rants and Observations]]></category>

		<guid isPermaLink="false">http://underscorebleach.net/jotsheet/2006/09/goodbye-movable-type</guid>
		<description><![CDATA[I'm done with Movable Type and too tired to write a proper rant.  But I want to warn you about the entry_basename (i.e. "entry basename") field and dynamic publishing.  Both are a sham.]]></description>
			<content:encoded><![CDATA[<p>I had a fantastic rant planned.  I was going to <a href="http://ginatrapani.org/spun/posts/2005/11/07/movabletype-makes-me-old-and-cranky">trash</a> Movable Type, my <a href="http://underscorebleach.net/jotsheet/2006/08/new">former</a> blogging platform.  I was going to <a href="http://stephen.evilcoder.com/archives/2004/05/13/goodbye-movable-type">rip</a> it <a href="http://www.scalzi.com/whatever/004350.html">apart</a>, <a href="http://www.anti-mega.com/antimega/archives/001255.html">throw</a> it <a href="http://www.jyoseph.com/blog/2006/08/movable_type_boring.php">on</a> the <a href="http://www.mediacurmudgeon.com/archives/2005/04/000178print.html">lawn</a> and <a href="http://www.eleganthack.com/archives/reason_8_why_im_beginning_to_hate_movable_type.php">set</a> <a href="http://revjim.net/2002/10/03/i-hate-movable-type/">it</a> <a href="http://www.carpeaqua.com/archives/2004/02/08/movabletype_sucks/">on</a> <a href="http://diveintomark.org/archives/2004/05/14/freedom-0">fire</a>.  But alas, I just don&#8217;t have the energy.</p>
<p><span id="more-1453"></span></p>
<p>That&#8217;s right.  I don&#8217;t have the energy.  Many of you know me as a prolific <a href="http://underscorebleach.net/jotsheet/category/rants-and-observations/">ranter</a>, an inclination (or failing? or talent?) in full display here at the jotsheet.  But there comes a point at which one&#8217;s frustration moves beyond the pale.  To dedicate the time to write a suitable, all-encompassing rant would only exacerbate the problem.</p>
<p>I&#8217;m not angry anymore.  <strong>I&#8217;m just kind of sad.</strong> I mean, I wasted a lot of time on that Movable Type shit.  I&#8217;m past the denial and the <a href="http://underscorebleach.net/jotsheet/2005/06/movable-type-slow-rebuilding">anger</a>; I&#8217;ve quietly <a href="http://changingminds.org/disciplines/change_management/kubler_ross/kubler_ross.htm">accepted</a> the trial that was Running a Large Blog Using Movable Type™.</p>
<p>I&#8217;m not angry about the 10 minute rebuilds or the 90 second post times.  I&#8217;m not angry about the 30 second page load times for the admin interface (well, Dreamhost might have been to blame for that, too).  I&#8217;m not mad that MT&#8217;s plugins are less extensive, less flexible, less interesting, and harder to install <a href="http://underscorebleach.net/jotsheet/2006/09/favorite-wordpress-plugins">than WordPress&#8217;</a>.  I can look past the fact that building a CMS on Perl is, uh, probably not a great idea.  I&#8217;m okay with the fact that much of the MT enthusiasts from 2003 have <a href="http://www.subtraction.com/archives/2006/0425_the_movable_.php">moved on</a> to greener pastures.  I&#8217;m all right with Six Apart placing a commercial license on the creaking mass of Perl code known as Movable Type.</p>
<p>But I do have a couple of things I&#8217;d still like to get off my chest, before I put this puppy to bed for good.</p>
<h3>Dynamic publishing in Movable Type is a dirty, dirty lie</h3>
<p>Jay Allen, oh Jay Allen.  How you lied to me.  Remember when you said&#8230;</p>
<blockquote cite="http://www.sixapart.com/pronet/articles/how_to_speed_up.html"><p>Yes, Virginia, Movable Type 3.1x <em>does</em> have dynamic publishing.  And it <strong>rocks</strong>!  By switching some or all of your templates to dynamic publishing, you can drastically cut down or eliminate the time it takes to get an entry published or to rebuild your whole blog.</p></blockquote>
<p>See, the thing is, I talked to Virginia too, and she told me dynamic publishing in Movable Type is a big steaming pile of hippo shit.  With peanuts mixed in.  I was a pretty freakin&#8217; advanced MT user in my day and I couldn&#8217;t get that dynamic mojo workin&#8217; after tinkering with it one night for, oh, 3 hours.  How&#8217;s a normal sap gonna do it?  <a href="http://underscorebleach.net/jotsheet/2005/06/movable-type-slow-rebuilding/all-comments/#comment-3737">Eh, Anil</a>?</p>
<h3>The lesson of <code>entry_basename</code></h3>
<p>I&#8217;ve got just one more piece of MT dirty laundry to air.  This is a little story about a field called <a href="http://www.sixapart.com/pronet/weblog/2005/08/entry_basename_.html">&#8220;entry basename.&#8221;</a></p>
<p>Long ago, most MT blogs had an ID-based permalink.  A post might have the URL <code>http://somewhere.com/blog/001293.html</code>.  Some enterprising and adventurous bloggers were unhappy with this arrangement and instead changed the permalink configuration to the use the title of the post, e.g. <code>http://somewhere.com/blog/this_is_the_title.html</code>.</p>
<p>An even smaller group of people, myself <a href="http://underscorebleach.net/jotsheet/2004/01/slick-mt-urls">included</a>, wanted complete control over the permalink structure and used <a href="http://www.dribin.org/dave/blog/archives/2003/09/24/permalink_urls/">a plugin</a> to get a completely configurable permalink, e.g. <code>http://somewhere.com/blog/custom_permalink.html</code>.</p>
<p>A couple of years after this all went down, Six Apart caught a clue and built into Movable Type 3.2 the ability to specify a custom permalink.  (It was there in MT 3.0D but worthless.)  The new field was called &#8220;entry_basename,&#8221; and if you set your entry_basename for a post to &#8220;custom_permalink&#8221;, it would get the same URL as above.  This change was put in by Six Apart to give users more control over the publishing of their blogs, but with the caveat that its intricacies were best left to advanced users:</p>
<blockquote cite="http://www.sixapart.com/movabletype/docs/3.2/g_contextsensitive_help/entries/basename.html"><p>[I]f you edit the basename of a published entry, it will very likely change the published filename, hence breaking incoming links to the entry.</p></blockquote>
<p>Armed with this information about entry_basename, I was pretty confident approaching my conversion from MT to WordPress.  My thought process was simple:</p>
<p>1. Move my permalink setting into the &#8220;entry_basename&#8221; field.  (Using the custom permalink plugin, it had been stored in the &#8220;keywords&#8221; field.)<br />
2. Export from MT.<br />
3. Import into WP.</p>
<p>I ran into just one little problem: Movable Type doesn&#8217;t export the information.  That&#8217;s right; they went to all these pains to give their beloved users complete control over permalinks—and even warned with a wagging finger that we ought not to change the entry_basename after publishing, lest we &#8220;break incoming links&#8221;—yet they didn&#8217;t bother to include the field in the export.</p>
<p>This made the field utterly useless for someone in my position, converting from MT to WP, but what&#8217;s a heckuva lot worse is <a href="http://www.blogography.com/archives/2006/04/movablehype.html">what&#8217;s happened to MT users switching installations</a>: they lose all their permalinks.  For example:</p>
<ul>
<li>Joe builds a blog in Movable Type, version 3.2.</li>
<li>Taking note of the fancy new entry_basename field, Joe customizes the permalinks of his blog entries.</li>
<li>Joe decides to move his website to a different host.</li>
<li>Joe is pleasantly surprised to learn that he cannot export from Movable Type 3.2 on his old host and import in Movable Type 3.2 on his new host.  Everything breaks.</li>
<li>Joe gives up and moves to WordPress.</li>
</ul>
<p>The saddest part is that <strong>Six Apart knows all this</strong>.  They <a href="http://www.sixapart.com/movabletype/kb/entries/changing_entry.html">acknowledged</a> it in July 2005 and <em>still</em> haven&#8217;t bothered to fix it:</p>
<blockquote cite="http://www.sixapart.com/movabletype/kb/entries/changing_entry.html"><p><strong>Warning:</strong> Currently, the export format does not include the basename field. This means if you use this method and you then export your entries, when you import them into a new weblog your assigned basenames will <strong>not</strong> be carried over.</p></blockquote>
<p>I&#8217;m afraid I still can&#8217;t wrap my head around it: Six Apart adds a feature to give its users more control, warns them to be careful not to break links with it, and then provides no way not to break links with it.  And they don&#8217;t warn their users upon export.  And they&#8217;ve publicly acknowledged (albeit buried in a note on sixapart.com I spent 20 minutes looking for) the technically minor problem for 14 months yet haven&#8217;t done a thing to fix it.</p>
<p>I just don&#8217;t understand.</p>
<h3>Conclusion</h3>
<p>This isn&#8217;t a rant.  It&#8217;s really more of a plea: If you&#8217;re thinking about starting a blog, avoid Movable Type.  If you&#8217;re on Movable Type now and still have a small number of posts, get out while you can.  If you&#8217;re on a big Movable Type blog—I can pick you out because you fall asleep in your chair during the rebuilds—then pray.</p>
<p>Oh, and one more thing.  Six Apart, over the past couple of years, I&#8217;ve become intimately aware of your damage control strategy.  You troll the blogs looking for criticism of MT and come hat in hand to the comments section, professing to love MT users and blogging and free expression and open source and kittens and Perl and everything else.</p>
<p>Well, don&#8217;t bother coming here.</p>
<p>Anil, Ben, Mena, Jay (and Virginia), and anyone else at 6A: do your PR elsewhere.  Find another sap to get on MT.  Do some database backups at Typepad.  Hell, rip off MSN and MySpace and make a new CMS.  (Oh wait, that&#8217;s Vox.) Just don&#8217;t bother me.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/09/goodbye-movable-type/feed</wfw:commentRss>
		</item>
		<item>
		<title>Moving from Blogger to WordPress: Best Practices</title>
		<link>http://underscorebleach.net/jotsheet/2006/05/move-blogger-to-wordpress</link>
		<comments>http://underscorebleach.net/jotsheet/2006/05/move-blogger-to-wordpress#comments</comments>
		<pubDate>Sat, 20 May 2006 07:03:33 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Best of the Best]]></category>

		<category><![CDATA[Blogs and Blogging]]></category>

		<category><![CDATA[How to]]></category>

		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www445.pair.com/tps115/jotsheet/?p=713</guid>
		<description><![CDATA[Best practices for moving a Blogger site to WordPress and redirecting specific entries from the old site to the new site.]]></description>
			<content:encoded><![CDATA[<p>I recently <a href="http://www.theoriginaljada.com/blog/2006/05/welcome-to-my-new-home">moved</a> a friend&#8217;s medium-size blog from Blogger to hosted WordPress (on <a href="http://underscorebleach.net/jotsheet/2005/08/dreamhost-promo-code">DreamHost</a>, not WordPress.com), and I thought I&#8217;d share a few tips for making the transition smooth.</p>
<p><span id="more-713"></span></p>
<h3>Background</h3>
<p>If you&#8217;re interested in <em>why</em> moving your blog from Blogger to WordPress is a good idea, look no further than <a href="http://www.smallbiztrends.com/2005/11/case-study-moving-a-business-blog-from-blogger-to-wordpress.html">Anita Campbell&#8217;s write-up</a>.  Once the birth pains of the transition are over, there are no real drawbacks besides lost PageRank from your Blogger blog—<em>if</em> you published on BlogSpot and can&#8217;t transfer that Googlejuice to your new host via a real 301 redirect.</p>
<p>Note: If you&#8217;re self-hosting your Blogger blog, check out <a href="http://justinsomnia.org/2006/10/maintain-permalinks-moving-from-blogger-to-wordpress/">Maintain permalinks moving from Blogger to WordPress</a> by Justin Watt.  If you need to convert from Blogger Beta to Wordpress, check out <a href="http://www.webbleyou.com/2006-09-14-how-to-move-from-blogger-beta-to-wordpress">this tutorial</a>.  My tutorial below does <strong>not</strong> work for Blogger Beta.</p>
<h3>Requirements</h3>
<p>This is what you need to play:</p>
<ul>
<li>A Blogger-driven weblog</li>
<li>A fully installed version of WordPress 2.0+ (it has the nice import utility)</li>
<li>A basic text editor - Notepad will do</li>
<li>Some technical know-how (or an adventurous spirit), because I&#8217;m not going to hold your hand</li>
</ul>
<h3>What this will and will not accomplish</h3>
<ul>
<li>Will redirect visitors no matter what their browser situation</li>
<li>Will redirect them to the best, most relevant page on your new WordPress blog</li>
<li>Will not preserve PageRank from your BlogSpot blog to your new blog.  This would require a 301 Permanent Redirect and access to the server, not provided by Blogger.
<ul>
<li>If you publish using Blogger to a remote location using FTP/SFTP, you may be able to preserve PageRank.  However, I&#8217;m not going to cover that here.  You will need to research 301 redirection from your Blogger server to your WordPress server using 301 redirection.</li>
</ul>
</li>
</ul>
<h3>The menu</h3>
<p>Here&#8217;s what we&#8217;ll be doing today, kids:</p>
<ol>
<li>Saving the Blogger template</li>
<li>Backing up data from Blogger</li>
<li>Import data from Blogger into WordPress</li>
<li>Prepare the WordPress host for redirects from Blogger</li>
<li>Modify the Blogger template to include redirects</li>
<li>Test!</li>
</ol>
<p>Some of this is based on a <a href="http://www.quickonlinetips.com/archives/2006/03/import-blogger-posts-comments-to-wordpress/">tips page</a> from Quick Online tips.</p>
<h3>Step 1: Save the Blogger template</h3>
<p>Click the <em>Template</em> tab, highlight the text, paste it into a text editor and save it.</p>
<h3>Step 2: Back up data from Blogger</h3>
<p>Follow Blogger&#8217;s <a href="http://help.blogger.com/bin/answer.py?answer=130&amp;topic=12">detailed directions</a> on backing up your data.  (In essence, you change your template to post a text file of all your entries to the homepage of your site.)  It&#8217;s a little wonky; I couldn&#8217;t get the backup to work with comments, so I just backed up entries.</p>
<h3>Step 3: Import data from Blogger into WordPress</h3>
<p>This is the coolest step. :)  WordPress 2.0 has a straight-up slick import utility for Blogger.  Go into the WordPress admin area, select the <em>Import</em> tab, select Blogger as the type of blog you&#8217;ll be importing, and follow the directions.  Looove it.</p>
<h3>Step 4: Prepare the WordPress host for redirects from Blogger</h3>
<p>Credit a file in a text editor called <code>from_blogger.php</code> and put the following into it.  Wherever there is the text <code>http://www.yoursite.com/blog/</code>, replace it with the <em>root</em> location of your WordPress blog!</p>
<ul>
<li><a href="http://underscorebleach.net/jotsheet/supplementary/blogger/wordpress-redirect-handler-from-blogger.txt" target="_blank">PHP source &#8212; save as from_blogger.php and move to your server</a></li>
</ul>
<p>This file will take the redirect from Step 5, parse the URL that&#8217;s being passed from Blogger, and redirect the user to the corresponding imported entry on WordPress.  If it can&#8217;t find the corresponding entry, it directs to the root of the blog.</p>
<p>Put this file somewhere on your WordPress host.  If you don&#8217;t want to modify anything else in this tutorial, put it at <code>http://www.yoursite.com/from_blogger.php</code>.</p>
<p>I owe this section partially to <a href="http://www.owen.org/blog/204">Owen Barder</a>.  (I say &#8220;partially&#8221; because his code had formatting issues and a big typo that I spent a long time trying to debug, and therefore I&#8217;m not giving him all the credit. :)</p>
<h3>Step 5: Modify the Blogger template to include redirects</h3>
<p>Remember the text file with the Blogger template from Step 1?  Open it and Save As with a new filename.  We&#8217;ve got a couple of things to add.</p>
<ol>
<li>Immediately after the opening &lt;Blogger&gt; tag, add the following:
<ul>
<li><a href="http://underscorebleach.net/jotsheet/supplementary/blogger/blogger-redirect-template.txt" target="_blank">Add this text after &lt;Blogger&gt; in your template</a></li>
</ul>
<p>This will redirect to the root of your new WordPress blog if the users come to a main or archive page on your Blogger site.  If they come to the page of an individual blog entry, it will redirect them to the <code>from_blogger.php</code> script, where we&#8217;ll try to pass them along to the appropriate location in the new WordPress blog.</li>
<li>Add the following in the &lt;head&gt;:<code>&lt;meta http-equiv="refresh" content="5;url=http://www.yoursite.com/blog/" /&gt;</code>
<p>This will redirect folks who have javascript disabled.</li>
<li>Add the following helpful text for the non-javascript users who won&#8217;t be immediately redirected.  This will display as a yellow box that sits above all other content in the top-left corner.
<pre style="overflow: auto; width: 500px;"><code>&lt;div style="position: absolute; top: 30px; left: 30px; border: solid 2px #333; color: #000; background-color: yellow; padding: 5px; width: 350px; z-index: 5;"&gt;
&lt;p&gt;&lt;strong&gt;My blog has moved!  Redirecting...&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You should be automatically redirected.  If not, visit &lt;a href="http://www.yoursite.com/blog/"&gt;http://www.yoursite.com/blog/&lt;/a&gt; and update your bookmarks.&lt;/p&gt;
&lt;/div&gt;</code></pre>
</li>
<li>Fully republish your Blogger blog.</li>
</ol>
<h3>Test!</h3>
<p>It&#8217;s always a good idea to test!  However, it can be tricky in this situation you&#8217;ll be immediately redirected from your old blog to your new blog as soon as your visit, getting the same treatment as your visitors.</p>
<p>To test, first turn off javascript.</p>
<ul>
<li>In Firefox, go to Tools &gt; Options &gt; Content &gt; uncheck Enable Javascript.</li>
<li>In Internet Explorer, go to Tools &gt; Internet Options &gt; Security &gt; Internet Zone &gt; Custom Level&#8230; &gt; disable &#8220;Active Scripting&#8221; (under Scripting).</li>
</ul>
<p>Now try the following tests:</p>
<ol>
<li>Go to the homepage of your old blog.  You should be redirected in 5 seconds to the homepage of your new blog.</li>
<li>Go to the homepage of your old blog.  Go to an individual entry page.  Turn javascript on.  Reload the page.  You should be transferred to the corresponding individual entry page on your new blog.</li>
</ol>
<h3>Conclusion</h3>
<p>Well, there we have it!  We backed up our template and our data first, but then we created the world&#8217;s friendliest redirects from Blogger to WordPress so users with bookmarks to old entries get shot right over to the appropriate entry on our new website.  Hooray for beer!</p>
<p>I imagine that some of you won&#8217;t get this right on the first try, but <em>please</em> try to be self-sufficient before posting questions here.  I&#8217;ll be very hesitant to even respond.  There are lots of other resources on the Web about how to do the Blogger to WordPress migration; I just thought I&#8217;d post my experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/05/move-blogger-to-wordpress/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hacking MySpace: Block ads, disable custom layouts</title>
		<link>http://underscorebleach.net/jotsheet/2006/05/hack-myspace-block-ads</link>
		<comments>http://underscorebleach.net/jotsheet/2006/05/hack-myspace-block-ads#comments</comments>
		<pubDate>Wed, 03 May 2006 17:46:17 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[How to]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www445.pair.com/tps115/jotsheet/?p=701</guid>
		<description><![CDATA[MySpace is an awful website, but these hacks will remove useless features, ugly profiles, and MySpace ads.  Then the site is almost bearable.]]></description>
			<content:encoded><![CDATA[<p>MySpace is a terrible, terrible website.  It&#8217;s kind of an embarassment to mankind that it&#8217;s gotten so popular, seeing as it&#8217;s one of the most unintuive, poorly designed sites on the web.</p>
<p>That said, lots and lots of people are on it, so maybe you can&#8217;t avoid it.  (I try but I fail.)  If you can&#8217;t avoid it, <strong>at least make it usable.</strong> Here&#8217;s what I do.</p>
<p><span id="more-701"></span></p>
<h3>Prerequisites</h3>
<ol>
<li><a href="http://www.mozilla.com">Firefox</a> &#8212; not Internet Explorer</li>
<li><a href="http://greasemonkey.mozdev.org/">Greasemonkey</a> &#8212; an extension for Firefox that lets you modify the look/feel/features of websites.  If you don&#8217;t already have it, install this extension, then restart Firefox to make it active.</li>
</ol>
<h3>Hacks</h3>
<p>All of the following scripts require Greasemonkey.</p>
<ul>
<li><a href="http://userscripts.org/scripts/show/997">MySpace custom style remover</a> &#8212; no more annoying backgrounds and fonts on users&#8217; profiles.  No custom layouts.  The default look and feel.  Thank God.</li>
<li><a href="http://userscripts.org/scripts/show/3299">Automatic MySpace media remover</a> &#8212; disables loading videos, audio, etc. unless you specifically request to see them.</li>
</ul>
<h3>Ad blocking</h3>
<p>There are some MySpace-specific ad blockers out there, but the best route is probably to use Adblock and configure it to block MySpace ads.</p>
<ol>
<li>Install <a href="http://adblock.mozdev.org/">Adblock</a>.  (You can use this for sites other than MySpace, too; it&#8217;s a great extension.)</li>
<li>Save these <a href="http://underscorebleach.net/jotsheet/supplementary/myspace-adblock.txt">MySpace ad filters</a> as a text file on your hard drive.</li>
<li>Import the filters into Adblock.
<ul>
<li>Hit <em>CTRL-SHIFT-P</em> to bring up the Adblock window</li>
<li>Click the <em>Adblock Options</em> text at top-right, select &#8220;Import filters&#8230;&#8221; and select the filters text file you saved.</li>
</ul>
</li>
</ol>
<p>Note: as MySpace adds new advertisers, that list of filters may become incomplete.</p>
<h3>A final note</h3>
<p>I don&#8217;t know if ad blocking violates MySpace&#8217;s <abbr title="terms of service">TOS</abbr>.  I&#8217;m not endorsing behavior &#8212; just telling you how to do things.  I will tell you that this will definitely improve your MySpace experience and make pages load about 5x faster!</p>
<p>Many more MySpace Greasemonkey scripts are <a href="http://userscripts.org/tag/myspace">available</a>.</p>
<p>Also, I will <strong>not</strong> offer support for this entry.  I will not tell you how to install an extension or troubleshoot any problems you have.  <em>You&#8217;re on your own.</em> But do feel free to post comments about other hacks for MySpace.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/05/hack-myspace-block-ads/feed</wfw:commentRss>
		</item>
		<item>
		<title>DreamHost promo code: Full $97 discount with code “MAX97″</title>
		<link>http://underscorebleach.net/jotsheet/2006/01/dreamhost-promo-code-discount</link>
		<comments>http://underscorebleach.net/jotsheet/2006/01/dreamhost-promo-code-discount#comments</comments>
		<pubDate>Sat, 28 Jan 2006 19:21:25 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www445.pair.com/tps115/jotsheet/?p=637</guid>
		<description><![CDATA[The DreamHost promo code "MAX97" offers the full $97 discount for a DreamHost sign-up.  No other code will save you more.  I also explain a little bit about how these discounts and the affiliate program works.]]></description>
			<content:encoded><![CDATA[<p>Do you need the best DreamHost promo code?  It&#8217;s right here, plain and simple.</p>
<p>Promo code: <strong>MAX97</strong></p>
<p><a href="http://www.dreamhost.com/r.cgi?underscorebleach/shared/comparison.html">Compare the hosting plans</a>, pick the best one for you, and input &#8220;MAX97&#8243; at Step 5 to get the best price possible.</p>
<p>And remember, after you sign up, you can <a href="https://panel.dreamhost.com/index.cgi?tree=home.rew&amp;">create your <em>own</em> promo code</a>, publicize it on your blog or website, and make a little cash for yourself!<br />
<span id="more-637"></span></p>
<h3>Details of &#8220;MAX97&#8243; discount code</h3>
<p>The &#8220;MAX97&#8243; code gives you the best discount on everything, period.  Here&#8217;s a screenshot of the code&#8217;s setup (which is set in stone once you make it) from my DreamHost admin screen:</p>
<p><img src="http://underscorebleach.net/jotsheet/images/dreamhost-promo-code-discount.gif" border="0" alt="DreamHost promo code" width="465" height="336" /></p>
<p>At Step 5 of the setup process, you&#8217;ll be able to enter the promo code.  Initially, it will look like this:</p>
<p><img src="http://underscorebleach.net/jotsheet/images/dreamhost-discount-pre.gif" border="0" alt="promo code before" width="592" height="142" /></p>
<p>After clicking <em>Update</em>, you&#8217;ll see the $97 discount is applied.  (The example is for the popular &#8220;Crazy Domain Insane&#8221; plan.)</p>
<p><img src="http://underscorebleach.net/jotsheet/images/dreamhost-discount-post.gif" border="0" alt="discount code afterwardt" width="596" height="191" /></p>
<h3>The evolution of DreamHost codes</h3>
<p>Perhaps you&#8217;re wondering what this whole DreamHost promo code thing is all about, and why there are a ton of people offering them on blogs.  I <a href="http://underscorebleach.net/jotsheet/2005/08/money-game">wrote</a> about this about six months ago, and here&#8217;s a summary:</p>
<blockquote cite="http://underscorebleach.net/jotsheet/2005/08/money-game"><p>The story goes like this.  <a title="DreamHost" href="http://www.dreamhost.com/r.cgi?underscorebleach">[DreamHost]</a> gives its users money when they refer new customers.  By its <a title="Why web hosting is easy." href="http://blog.dreamhost.com/2005/08/08/why-web-hosting-is-easy/">own admission</a>, my web host has a ridiculously high profit margin, allowing them to pass on a generous fee ($97) for every new user signed up in an existing customer&#8217;s name.  But this was the <strong>old</strong> system, and frankly, it wasn&#8217;t very exciting.  Many online businesses have similar referral programs, and the amount of money you can make off such a system is roughly proportional to the number of friends you&#8217;ve got online willing to do you a favor.</p>
<p>Then my hosting company had a very interesting idea: <strong>allow their users to give up part of the $97 award as a discount</strong>.  Allow their users to create custom codes.  Why?  To <em>spread the wealth</em> and to <em>create competition.</em> No longer would <strong>all</strong> of the award money go to the existing customer; now it would be split between the existing and new customer.</p></blockquote>
<p>When DreamHost initially rolled out the system, savvy users realized that that the sweet spot was to something between a $0 discount to their users (the old affiliate system) and a $97 discount (which would pay the affiliate nothing).  Initially, most folks offered a $50 discount.  Some more, some less, but this was pretty common.</p>
<p>Soon after, folks started upping the ante.  Folks mixed in a little SEO and a smidgen of deception (see: rise of &#8220;dreamhost-promo-code&#8221;-type domain names) and trying to work their way up the <abbr title="search engine result pages">SERPs</abbr>.  The discount amounts went up: form $50 to $60, $60 to $70, and so on.  And then, of course, came the <strong>$97 promo code</strong>.</p>
<p>Today, the full, $97 discount permeates the SERPs.  Affiliates are giving away the full $97 amount available in their discretionary discount, and you might think the Internet has taken a shift toward altriusm.  That&#8217;s not quite right.</p>
<h3>Secondary referrals</h3>
<p>Initially, the profits to be reaped from giving a full $97 discount are slim.  In fact, they&#8217;re $0.  I give you $97 off your bill, and I don&#8217;t get a penny.  But here&#8217;s the catch: <em>if you refer someone to DreamHost, I receive $5.</em></p>
<p>Some folks might think that&#8217;s a pyramid scheme.  It&#8217;s not.  It&#8217;s actually just a clever twist for an affiliate program, and the &#8220;pyramid&#8221; has only two steps.  Beyond that, nobody loses in this &#8220;scheme&#8221;; you get the biggest discount possible, and if you didn&#8217;t use a code to sign up with DreamHost, <strong>you&#8217;d be paying $97 more, period.</strong></p>
<h3>That&#8217;s about it, folks.</h3>
<p>So.  That&#8217;s how it works.  Why am I teling you this?  First, because hardly anyone&#8217;s forthcoming about how affiliate programs work and the financial interest they have in them.  You&#8217;ll read a lot of people saying things like, &#8220;Here&#8217;s the full DreamHost discount.  I don&#8217;t make a penny, but enjoy!&#8221;  That&#8217;s not the whole truth.  I guess I believe that honesty is the best policy, and you&#8217;re more likely to reward me than some other schmoe who&#8217;s deceptive.  (Yeah, in the interest of honesty, I like to make money, too!)</p>
<p>And hey, if you&#8217;re feeling really generous, you can give me more money when you sign up (and get a smaller discount) by using a different code.  I <em>definitely</em> don&#8217;t expect that, but what the heck:</p>
<ul>
<li>&#8220;75ALIVE&#8221; = $75 for you, $22 for me</li>
<li>&#8220;88ISGREAT&#8221; = $88 for you, $9 for me</li>
<li>&#8220;DEAL90&#8243; = $90 for you, $7 for me</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/01/dreamhost-promo-code-discount/feed</wfw:commentRss>
		</item>
		<item>
		<title>Search engines outmode the URL</title>
		<link>http://underscorebleach.net/jotsheet/2006/01/search-outmodes-url</link>
		<comments>http://underscorebleach.net/jotsheet/2006/01/search-outmodes-url#comments</comments>
		<pubDate>Mon, 23 Jan 2006 03:47:10 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www445.pair.com/tps115/jotsheet/?p=633</guid>
		<description><![CDATA[Search engines have become such an integral part of our Internet use that some folks don't pay any attention to URLs.]]></description>
			<content:encoded><![CDATA[<p>I think by now that just about everyone knows that search engine results are important.  Where your site places in Google and Yahoo (and to a lesser extent, MSN) for important terms can make or break it, depending on the industry.  People pay big bucks for <abbr title="search engine optimization">SEO</abbr>.  People pay big bucks for text advertising, whether it&#8217;s AdWords or <abbr title="yahoo publisher network">YPN</abbr>.</p>
<p>But perhaps the importantance of SERPs—that&#8217;s &#8220;search engine results page&#8221; for the uninitiated—was never clearer to me than when I received an e-mail today from my mother.  Mom&#8217;s competent enough with getting around the Web and doing word processing, but she doesn&#8217;t do much more than that.  She&#8217;s a typical Internet user.  Today, she was doing some research on gas exploration leases, and this is what she wrote:</p>
<blockquote><p>If you &#8220;google&#8221; gas fact sheet.pub, you&#8217;ll find an informative article from Cornell in New York about gas leases.</p>
<p>Also, if you google shale gas doc, you&#8217;ll find interesting info on how they actually extract gas, along with pictures of wells and rigs.</p>
<p>A message board of people discussing gas exploration leasing can be found by googling Naro forum.</p></blockquote>
<p>I wrote her back and asked why she hadn&#8217;t included URLs to the sites she mentioned.  The simple answer.  <strong>She didn&#8217;t know how.</strong></p>
<p>I&#8217;m not writing to embarrass my mother, of course.  (And truth be told, I wrote this up without asking her permission first.  Pretty rude of me, eh?)  But think about that: the <em>practice of search</em> has so permeated our use of the Web that some users have no idea what a URL is anymore.  They speak of sites not in reference to their name, or their URL, but their placement and key terms returned on a Google search.</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2006/01/search-outmodes-url/feed</wfw:commentRss>
		</item>
		<item>
		<title>Playing the money game</title>
		<link>http://underscorebleach.net/jotsheet/2005/08/money-game</link>
		<comments>http://underscorebleach.net/jotsheet/2005/08/money-game#comments</comments>
		<pubDate>Sat, 20 Aug 2005 01:26:11 +0000</pubDate>
		<dc:creator>Tom Sherman</dc:creator>
		
		<category><![CDATA[My Mundane Life]]></category>

		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www445.pair.com/tps115/jotsheet/?p=569</guid>
		<description><![CDATA[I have been playing the money game lately on my blog.  I have mixed feelings about this development, but I believe I've reached a reasonable conclusion.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a regular reader of the jotsheet, perhaps you&#8217;ve been wondering, &#8220;What&#8217;s the deal with this <a title="DreamHost promo code" href="http://underscorebleach.net/jotsheet/2005/08/dreamhost-promo-code">web host stuff</a>?  Has Tom Sherman turned into a hack mouthpiece for a pyramid scheme?&#8221;<br />
<span id="more-569"></span></p>
<h3>Backstory</h3>
<p>I spend a lot of time on this website.  Far too much time, in fact.  I tweak it endlessly: the design, the CSS, the underlying HTML.  I moderate comments.  I make my own (usually snarky) comments.  I produce new content, of course.  And, like most bloggers, this is for the pure enjoyment of self-expression.  I just like to write and to rant.  I&#8217;ve never tried to make anything big out of this.</p>
<p>Well, for good reason.  This site <em>isn&#8217;t</em> a big deal.  It&#8217;s silly and stupid, and that&#8217;s kind of the way I like blogs.  I don&#8217;t think they should take themselves too seriously, and when they do, I think they lose a lot of their appeal.  In the 4+ years of this site&#8217;s existence, I&#8217;ve taken pains to make sure the content of this site stayed true to the core, guiding principles of free flaming, free expression, and rampant, unadulterated sarcasm.</p>
<h3>The System</h3>
<p>Rewind to about two weeks ago.  For the first time ever, I made some money off this site.</p>
<p>Is that a bad thing?  Not in and of itself.  It&#8217;s not bad if it doesn&#8217;t corrupt the appeal of my blog.  It&#8217;s not bad if I still enjoy my blog afterward.</p>
<p>The story goes like this.  <a title="DreamHost" href="http://www.dreamhost.com">My web host</a> gives its users money when they refer new customers.  By its <a title="Why web hosting is easy." href="http://blog.dreamhost.com/2005/08/08/why-web-hosting-is-easy/">own admission</a>, my web host has a ridiculously high profit margin, allowing them to pass on a generous fee ($97) for every new user signed up in an existing customer&#8217;s name.  But this was the <strong>old</strong> system, and frankly, it wasn&#8217;t very exciting.  Many online businesses have similar referral programs, and the amount of money you can make off such a system is roughly proportional to the number of friends you&#8217;ve got online willing to do you a favor.</p>
<p>Then my hosting company had a very interesting idea: <strong>allow their users to give up part of the $97 award as a discount</strong>.  Allow their users to create custom codes.  Why?  To <em>spread the wealth</em> and to <em>create competition.</em> No longer would <strong>all</strong> of the award money go to the existing customer; now it would be split between the existing and new customer.</p>
<p>It was a brilliant innovation.  Here&#8217;s why:</p>
<ul>
<li>The hosting company immediately recruited loyal users to advertise on their behalf.</li>
<li>The hosting company did not suffer financially by the move, since they were paying $97 out anyway.  Now, they simply paid it to two parties.</li>
<li>Existing users provided tangible benefits to prospective hosting customers.</li>
<li>Existing users were still able to benefit financially (albeit less) but were no longer locked into the level playing field of the old system.</li>
<li>New users benefited tangibly with discounts to which they were not previously exposed.  Furthermore, existing users had a reason to tell new users about discount codes.  There was no reason before.</li>
</ul>
<h3>Money and blogs</h3>
<p>So, it&#8217;s an interesting system.  No, it&#8217;s a brilliant system.  But, truth be told, I&#8217;m a bit uncomfortable with playing this game on the jotsheet.  I&#8217;ve <a title="Blogging for money and sellin' on out in the process" href="http://underscorebleach.net/jotsheet/2005/01/blogging-for-money">criticized </a>bloggers in the past for &#8220;selling out&#8221; and writing sponsored blog posts.  How is this different?  It&#8217;s not.</p>
<p>However, after much thought, I&#8217;ve come to the conclusion that my previous idealistic view of blogs as pure avenues of expression was hopelessly naï¿½ve.  It is inevitable that blogs will be structured to make money; for many popular blogs, this structure is already in place.  The question is how this can be done properly.</p>
<p>In my own mind, I&#8217;ve come to grips with &#8220;the money question&#8221; vis-ï¿½-vis blogs in the following way:</p>
<ol>
<li>Monetary interest in any product, site, or topic <em>must</em> be fully disclosed.  Do not sacrifice your personal values for a few extra bucks.</li>
<li>Running a good blog is time-consuming.  As <a title="Ben Cherry" href="http://www.benjamincherry.com">Ben</a> said to me, &#8220;You spend enough time on your site—you might as well make some money off it.&#8221;</li>
<li>You can&#8217;t please everyone.  I probably annoyed people with what they see as shilling.  There&#8217;s nothing special about my site, and they&#8217;re free to go elsewhere.</li>
</ol>
<h3>The Game</h3>
<p>In the bigger picture, I have found this entire experience over the last week or so to be <strong>enthralling</strong>.  For whatever reason, I&#8217;ve shied away from business-oriented endeavors much of my life and have never seriously considered business school or anything of that nature for my long-term career.  Although it probably sounds funny, this experience probably constitutes my first exposure to relatively pure capitalism.  Success in this little game is a question of <abbr title="search engine optimization">SEO</abbr>, advertising, personal appeal, segmenting, understanding of context, and business intelligence.  It&#8217;s very exciting.  Very exciting indeed.</p>
<p>To my regular readers, I appreciate your patience.  I&#8217;m still playing this game.  Partly for the money, partly for the experience, but it will infringe in a small way on my blog, at least in the near-term.  That&#8217;s the decision I&#8217;ve made.</p>
<h3>The Code</h3>
<p>If, after all that, you&#8217;re just looking for a code, look no further:</p>
<p>$90 discount: <strong>DEAL90</strong> (and $7 to me, because you&#8217;re just that nice)</p>
<p>Full $97 discount: <strong>MAX97</strong> (best discount available)</p>
]]></content:encoded>
			<wfw:commentRss>http://underscorebleach.net/jotsheet/2005/08/money-game/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
