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

<channel>
	<title>zoombody</title>
	<atom:link href="http://zoombody.com/feed" rel="self" type="application/rss+xml" />
	<link>http://zoombody.com</link>
	<description>by Dan Rice</description>
	<lastBuildDate>Fri, 13 Feb 2009 01:09:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Styling WordPress 2.7 author comments</title>
		<link>http://zoombody.com/articles/styling-wordpress-27-author-comments</link>
		<comments>http://zoombody.com/articles/styling-wordpress-27-author-comments#comments</comments>
		<pubDate>Fri, 23 Jan 2009 00:42:44 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=129</guid>
		<description><![CDATA[Styling post author or registered user comments on your WordPress 2.7 blog is much easier than it was back in ol&#8217; 2.6. The new wp_list_comments() template tag (or comment_class() if you&#8217;re doing it the hard way) automatically includes class names like byuser and bypostauthor for easy CSS styling. Slick.
See the official 2.7 theme migration guide [...]]]></description>
			<content:encoded><![CDATA[<p>Styling post author or registered user comments on your WordPress 2.7 blog is <em>much</em> easier than it was <a href="http://zoombody.com/articles/styling-wordpress-author-comments">back in ol&#8217; 2.6</a>. The new <a href="http://codex.wordpress.org/Template_Tags/wp_list_comments"><code>wp_list_comments()</code></a> template tag (or <code>comment_class()</code> if you&#8217;re doing it the hard way) automatically includes class names like <code>byuser</code> and <code>bypostauthor</code> for easy CSS styling. Slick.</p>
<p>See the official <a href="http://codex.wordpress.org/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display">2.7 theme migration guide</a> for more details.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/styling-wordpress-27-author-comments/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hide yourself from your own website&#8217;s Google Analytics using Firefox</title>
		<link>http://zoombody.com/articles/hide-from-analytics-with-adblock</link>
		<comments>http://zoombody.com/articles/hide-from-analytics-with-adblock#comments</comments>
		<pubDate>Sat, 10 Jan 2009 21:06:56 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adblock plus]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=66</guid>
		<description><![CDATA[The latest version of Firefox add-on Adblock Plus includes a useful new feature that is perfect for preventing your own visits to your website from appearing in Google Analytics.
If you use Analytics on your website(s) &#8212; particularly on very small sites such as this one, where your own visits can significantly skew any traffic measurements [...]]]></description>
			<content:encoded><![CDATA[<p>The latest version of <a href="http://www.mozilla.com/en-US/products/firefox/">Firefox</a> add-on <a href="https://addons.mozilla.org/en-US/firefox/addon/1865">Adblock Plus</a> includes a useful new feature that is perfect for preventing your own visits to your website from appearing in <a href="http://www.google.com/analytics/">Google Analytics</a>.</p>
<p>If you use Analytics on your website(s) &#8212; particularly on very small sites such as this one, where your own visits can significantly skew any traffic measurements &#8212; you have probably wished you could reliably exclude your internal page views from your traffic reports. Google provides a filter system, but it falls a bit short if you aren&#8217;t visiting from a static IP address.</p>
<p>Aa great solution has just arrived in the form of Adblock Plus <a href="http://adblockplus.org/releases/adblock-plus-101-released">version 1.0.1</a>, which finally provides the ability to restrict the domains to which its ad-blocking rules apply.</p>
<p>After <a href="http://adblockplus.org/en/getting_started#install">installing the Adblock Plus extension</a>, add a filter rule of the syntax</p>
<pre lang="text">google-analytics.com$domain=zoombody.com</pre>
<p>(replacing <code>zoombody.com</code> with your own domain). Now, when you visit your own site, you will remain completely hidden from Google Analytics.</p>
<p>You could undoubtedly apply this to other hit counters; Analytics just happens to be the service I use.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/hide-from-analytics-with-adblock/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Run a Windows (&#8221;DOS&#8221;) batch/cmd script minimized</title>
		<link>http://zoombody.com/articles/run-a-batch-script-minimized</link>
		<comments>http://zoombody.com/articles/run-a-batch-script-minimized#comments</comments>
		<pubDate>Wed, 17 Dec 2008 17:44:46 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=50</guid>
		<description><![CDATA[Here&#8217;s a snippet of code I wrote that will force a Windows batch script to run in a minimized window. Insert it at the beginning of the script:

if not "%minimized%"=="" goto :minimized
set minimized=true
start /min cmd /C "%~dpnx0"
goto :EOF
:minimized
rem Anything after here will run in a minimized window

It works by having the script re-launch itself in [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a snippet of code I wrote that will force a Windows batch script to run in a minimized window. Insert it at the beginning of the script:</p>
<pre lang="dos">
if not "%minimized%"=="" goto :minimized
set minimized=true
start /min cmd /C "%~dpnx0"
goto :EOF
:minimized
rem Anything after here will run in a minimized window
</pre>
<p>It works by having the script re-launch itself in a new minimized window. There are a few juicy batch scripting tricks in here that I recently picked up, like the <code>%~dpnx0</code> syntax and the special <code>:EOF</code> label. And the overall flag/callback syntax is generally useful for creating self-contained batch scripts.</p>
<p>Other <code>start</code> switches besides <code>/min</code> can provide different parameters for the child window, such as adjusting the CPU priority of the resulting process.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/run-a-batch-script-minimized/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fix funky Samba filenames</title>
		<link>http://zoombody.com/articles/fix-funky-samba-filenames</link>
		<comments>http://zoombody.com/articles/fix-funky-samba-filenames#comments</comments>
		<pubDate>Fri, 05 Dec 2008 02:21:43 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=39</guid>
		<description><![CDATA[While I was ssh&#8217;ed into my file server, I noticed that the files on my Samba shares were messed up &#8212; for example, &#8220;B&#233;la Fleck and the Flecktones&#8221; would appear as &#8220;B&#195;&#169;la Fleck and the Flecktones&#8221; &#8212; though everything was OK when looking at the shares as a client. After spending a lot of time [...]]]></description>
			<content:encoded><![CDATA[<p>While I was ssh&#8217;ed into my file server, I noticed that the files on my Samba shares were messed up &#8212; for example, &#8220;B&eacute;la Fleck and the Flecktones&#8221; would appear as &#8220;B&Atilde;&copy;la Fleck and the Flecktones&#8221; &#8212; though everything was OK when looking at the shares as a client. After spending a lot of time messing around with code pages and character sets in my smb.conf, e.g.</p>
<pre lang="text">
[global]
   dos charset = CP850
   unix charset = iso8859-1
   display charset = LOCALE
</pre>
<p>I finally ran across <a href="http://forum.soft32.com/linux/german-characters-ftopict368233.html#846610">an old mailing list posting that told me the secret</a>: set my terminal to UTF-8 (to match the default character set of my Ubuntu server). Duh. I went into my <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> settings (yes, I was in Windows) and changed it from ISO-8859-1 to UTF-8. Muuuch better. Forget that smb.conf stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/fix-funky-samba-filenames/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smoking is expensive</title>
		<link>http://zoombody.com/articles/smoking-is-expensive</link>
		<comments>http://zoombody.com/articles/smoking-is-expensive#comments</comments>
		<pubDate>Thu, 13 Nov 2008 20:38:28 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[economy]]></category>
		<category><![CDATA[health]]></category>

		<guid isPermaLink="false">http://zoombody.com/articles/smoking-is-expensive</guid>
		<description><![CDATA[Smoking burns a large hole in the economy. Including direct health care expenditures ($96 billion) and productivity losses ($97 billion), the economic burden of smoking on the United States hit $193 billion per year, the CDC said.
On the plus side, the US smoking rate has dropped below 20%.
[via Reuters]
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Smoking burns a large hole in the economy. Including direct health care expenditures ($96 billion) and productivity losses ($97 billion), the economic burden of smoking on the United States hit $193 billion per year, the CDC said.</p></blockquote>
<p>On the plus side, the US smoking rate has dropped below 20%.</p>
<p>[via <a href="http://www.reuters.com/article/healthNews/idUSTRE4AC6XX20081113">Reuters</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/smoking-is-expensive/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Flu Trends: Do you use your powers for good or for awesome?</title>
		<link>http://zoombody.com/articles/google-flu-trends</link>
		<comments>http://zoombody.com/articles/google-flu-trends#comments</comments>
		<pubDate>Wed, 12 Nov 2008 17:39:47 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[health]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=29</guid>
		<description><![CDATA[New from Google(.org) &#8211; Google Flu Trends:
We&#8217;ve found that certain search terms are good indicators of flu activity. Google Flu Trends uses aggregated Google search data to estimate flu activity in your state up to two weeks faster than traditional systems.
Now there&#8217;s an example of data mining we can all feel good about.
Via The New [...]]]></description>
			<content:encoded><![CDATA[<p>New from Google(.org) &#8211; <a href="http://www.google.org/flutrends/">Google Flu Trends</a>:</p>
<blockquote><p>We&#8217;ve found that certain search terms are good indicators of flu activity. Google Flu Trends uses aggregated Google search data to estimate flu activity in your state up to two weeks faster than traditional systems.</p></blockquote>
<p>Now <em>there&#8217;s</em> an example of data mining we can all feel good about.</p>
<p>Via <a href="http://www.nytimes.com/2008/11/12/technology/internet/12flu.html"><i>The New York Times</i></a>. See also <a href="http://blog.google.org/2008/11/tracking-flu-trends.html">blog.google.org</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/google-flu-trends/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s our turn</title>
		<link>http://zoombody.com/articles/the-power-of-the-youth</link>
		<comments>http://zoombody.com/articles/the-power-of-the-youth#comments</comments>
		<pubDate>Sun, 09 Nov 2008 21:53:32 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[al gore]]></category>
		<category><![CDATA[environment]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=26</guid>
		<description><![CDATA[Al Gore has a piece in the New York Times today describing his five-part plan for shoring up the US economy while simultaneously laying the groundwork for making major reductions in our consumption of dirty energy sources. (It&#8217;s just the usual stuff; the prescriptions aren&#8217;t the part that&#8217;s been stuck in my mind all day.)
In [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nytimes.com/2008/11/09/opinion/09gore.html">Al Gore has a piece in the <em>New York Times</em> today</a> describing his five-part plan for shoring up the US economy while simultaneously laying the groundwork for making major reductions in our consumption of dirty energy sources. (It&#8217;s just the usual stuff; the prescriptions aren&#8217;t the part that&#8217;s been stuck in my mind all day.)</p>
<p>In closing, Mr. Gore shares the following amazing, humbling thought:</p>
<blockquote><p>In an earlier transformative era in American history, President John F. Kennedy challenged our nation to land a man on the moon within 10 years. Eight years and two months later, Neil Armstrong set foot on the lunar surface. The average age of the systems engineers cheering on Apollo 11 from the Houston control room that day was 26, which means that their average age when President Kennedy announced the challenge was 18.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/the-power-of-the-youth/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel tip: Relative references in named formulas</title>
		<link>http://zoombody.com/articles/self-referencing-named-formulas-in-excel</link>
		<comments>http://zoombody.com/articles/self-referencing-named-formulas-in-excel#comments</comments>
		<pubDate>Fri, 07 Nov 2008 21:09:09 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=18</guid>
		<description><![CDATA[Named formulas can be very useful when your Excel workbook needs to contain many cells that use the same formula, but they are limited to containing static references. It is easy to get around this limitation by creating a self-referencing formula named &#8220;Self&#8221;:
=INDIRECT(ADDRESS(ROW(),COLUMN()))
You can then access other cells using the OFFSET function, e.g. one cell [...]]]></description>
			<content:encoded><![CDATA[<p>Named formulas can be very useful when your Excel workbook needs to contain many cells that use the same formula, but they are limited to containing static references. It is easy to get around this limitation by creating a self-referencing formula named &#8220;Self&#8221;:</p>
<pre lang="c">=INDIRECT(ADDRESS(ROW(),COLUMN()))</pre>
<p>You can then access other cells using the <code>OFFSET</code> function, e.g. one cell to the left would be</p>
<pre lang="c">=OFFSET(Self,0,-1)</pre>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/self-referencing-named-formulas-in-excel/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Styling WordPress author comments</title>
		<link>http://zoombody.com/articles/styling-wordpress-author-comments</link>
		<comments>http://zoombody.com/articles/styling-wordpress-author-comments#comments</comments>
		<pubDate>Tue, 10 Jun 2008 01:46:58 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://zoombody.com/?p=11</guid>
		<description><![CDATA[Update: these instructions don&#8217;t apply to WordPress 2.7+. See my newer article for more information.
Ever wonder how to apply special styles to highlight WordPress comments written by the post author or another registered user? Good advice on this point is very rare. Most recommendations are to check against either an email address or a specific [...]]]></description>
			<content:encoded><![CDATA[<div class="callout"><strong>Update:</strong> these instructions don&#8217;t apply to WordPress 2.7+. See <a href="http://zoombody.com/articles/styling-wordpress-27-author-comments">my newer article</a> for more information.</div>
<p>Ever wonder how to apply special styles to highlight WordPress comments written by the post author or another registered user? Good advice on this point is very rare. Most recommendations are to check against either an email address or a specific user ID. Both of these options are kludges, and both are fragile.</p>
<p>Here&#8217;s the right way to do it:<span id="more-11"></span></p>
<p>If you want to check whether a comment is by the page author, this is the condition you want to test:</p>
<pre lang="php">
$comment->user_id == $post->post_author
</pre>
<p>To see whether a comment is by a registered user, check this:</p>
<pre lang="php">
$comment->user_id > 0
</pre>
<p>I compiled these into <a href='http://zoombody.com/wordpress/wp-content/uploads/2008/06/zb-user-comments.zip'>a <em>very</em> simple plugin</a>. It has three functions:</p>
<ul>
<li><strong>zb_author_comment()</strong> &#8212; Returns true if the comment is by the post author. Use it conditionally:
<pre lang="php">
if ( zb_author_comment() )
{
    // do author-specific stuff
}
</pre>
</li>
<li><strong>zb_user_comment()</strong> &#8212; Returns true if the comment is by a registered user. Again, use it conditionally:
<pre lang="php">
if ( zb_user_comment() )
{
    // do user-specific stuff
}
</pre>
</li>
<li><strong>zb_comment_classes()</strong> &#8212; Outputs <code>user</code> and/or <code>author</code>, if applicable. Useful as CSS classes.
<p>For example:</p>
<pre lang="php">
<div class="comment <?php zb_comment_classes(); ?>">...</div>
</pre>
<p>would output class names that could be styled with the following CSS selectors:</p>
<pre lang="css">
.comment.user {}
.comment.author {}
.comment.author.user {}
</pre>
</li>
</ul>
<p>Enjoy!</p>
<p>If there&#8217;s an even slicker way to do either of these checks, I&#8217;d love to hear about it &#8212; please post in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/styling-wordpress-author-comments/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disabling the Pantech C150&#8217;s annoying web browser</title>
		<link>http://zoombody.com/articles/disabling-the-pantech-c150s-annoying-web-browser</link>
		<comments>http://zoombody.com/articles/disabling-the-pantech-c150s-annoying-web-browser#comments</comments>
		<pubDate>Wed, 26 Mar 2008 03:16:17 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://zoombody.com/articles/disabling-the-pantech-c150s-annoying-web-browser</guid>
		<description><![CDATA[I use a Pantech C150 mobile phone from AT&#038;T. It&#8217;s a moderately well designed, sleek piece of hardware, but the UI is terribly clunky. I could rattle off a laundry list of gripes, but my biggest is that pressing the joystick button launches the web browser and requires furious pressing of the &#8220;End&#8221; button to [...]]]></description>
			<content:encoded><![CDATA[<p>I use a <a href="http://www.pantechusa.com/web/guest/c150">Pantech C150</a> mobile phone from AT&#038;T. It&#8217;s a moderately well designed, sleek piece of hardware, but the UI is terribly clunky. I could rattle off a laundry list of gripes, but my biggest is that pressing the joystick button launches the web browser and requires furious pressing of the &#8220;End&#8221; button to avoid data charges and exit to some more useful function. The prominence of this button makes it very easy to suddenly find yourself in the browser:</p>
<ul>
<li>during normal use, when using the joystick for navigation;</li>
<li>when you&#8217;ve finished using the phone and stuck it in your pocket, but it hasn&#8217;t automatically locked yet (starting a data session prevents automatic locking, of course); or</li>
<li><em>while</em> on a call.</li>
</ul>
<p>Unfortunately, Pantech and AT&#038;T have decided that being able to change this button&#8217;s behavior is not a useful option to include on the phone. So much for the obvious answer.</p>
<p>I guess you get what you pay for.</p>
<p>Looks like we have to go to Plan B. Fortunately, there is a way to save the situation<span id="more-4"></span> &ndash; Google to the rescue. <a href="http://forums.wireless.att.com/cng/board/message?board.id=Pantech&#038;message.id=2248">This AT&#038;T forum thread</a> and <a href="http://www.cellrants.com/site/comments/review_pantech_c150/">this review&#8217;s comments</a> tell the secret: create a new browsing profile with bogus settings, and the browser won&#8217;t go anywhere. Here&#8217;s what you have to do:</p>
<ol>
<li>Navigate to <i>Menu > MEdia Net > Profiles</i> and select an empty slot.</li>
<li>Click <i>Add</i> to create a new profile and give it a name. (I called mine &#8220;Offline&#8221;.)</li>
<li>When you get back to the profile list, press <i>OK</i> to select the new profile as the default. A message will pop up confirming your selection, and the bullet next to the profile name will turn red.</li>
<li>Edit the new profile, and enter <code>http://1</code> as the Home URL.</li>
<li>Enter <code>127.0.0.1</code> as the Proxy IP.</li>
</ol>
<p>You really only need to perform steps 1-3 to get the desired effect; the last two are just optimization. The first time I tried steps 1-3, I didn&#8217;t have any luck &ndash; the phone still transferred 13KB each time. (Someone on the aforementioned AT&#038;T forum seems to have had the same problem, but I can no longer reproduce it.) So when that didn&#8217;t work, I tried playing around with other URLs, including <a href="http://en.wikipedia.org/wiki/Localhost">loopback IP addresses</a>. An excessive amount of time experimenting with these settings unearthed a number of data-transfer-free combinations, and eventually led me to discover that it takes half as long to abort the browser session using the <i>End</i> key (five seconds instead of ten) if you set both an invalid URL and a loopback proxy, which makes the occasional accidental joystick press much less annoying. Other settings might achieve equal or better results; this is the best combination I found.</p>
]]></content:encoded>
			<wfw:commentRss>http://zoombody.com/articles/disabling-the-pantech-c150s-annoying-web-browser/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
