<?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>Untitled &#187; bash</title>
	<atom:link href="http://ammonlauritzen.com/blog/tag/bash/feed/" rel="self" type="application/rss+xml" />
	<link>http://ammonlauritzen.com/blog</link>
	<description>and still for good reason.</description>
	<lastBuildDate>Tue, 13 Dec 2011 21:29:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>report-storage.sh</title>
		<link>http://ammonlauritzen.com/blog/2009/10/14/report-storagesh/</link>
		<comments>http://ammonlauritzen.com/blog/2009/10/14/report-storagesh/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:55:13 +0000</pubDate>
		<dc:creator>Ammon</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://ammonlauritzen.com/blog/?p=552</guid>
		<description><![CDATA[In the grand tradition of my publishing little building-block shell scripts of interest, here goes another one. This is a simple cron job that I run daily on a number of hosts to generate storage usage growth. (This is in addition to Cacti and Nagios which poll some of this data already but for different [...]]]></description>
			<content:encoded><![CDATA[<p>In the grand tradition of my publishing little building-block shell scripts of interest, here goes another one. This is a simple cron job that I run daily on a number of hosts to generate storage usage growth. (This is in addition to Cacti and Nagios which poll some of this data already but for different reasons and with different granularity).</p>
<p>The FILES variable should be populated with a whitespace separated list of files, directories, and block devices to track.</p>
<p>The DB_ABCD variables should be populated with appropriate credentials to talk to a mysql server.</p>
<p>The actual script looks something like this:<br />
[bash]<br />
#!/bin/bash</p>
<p>FILES='/var/lib/mysql/ibdata1 /var/lib/mysql/db/table.ibd /dev/sda1 /var/log/mysql'</p>
<p>LOCAL=`hostname -s`<br />
DB_HOST='aaa'<br />
DB_USER='bbb'<br />
DB_PASS='ccc'</p>
<p>function insert {<br />
    FILE=$1<br />
    SIZE=$2<br />
    QUERY=&quot;replace into metrics.storage_usage values( now(), '$LOCAL', '$FILE', $SIZE )&quot;<br />
    mysql --host=${DB_HOST} --user=${DB_USER} --password=&quot;${DB_PASS}&quot; -e &quot;${QUERY}&quot;<br />
}</p>
<p>for FILE in $FILES<br />
do<br />
    if [ -d $FILE ]; then<br />
        BASE=$FILE<br />
        SIZE=`du -ks $FILE/ | awk '{print $1}'`<br />
    elif [ -b $FILE ]; then<br />
        TMP=`df -k -P $FILE | tail -n1 | awk '{print $3 &quot; &quot; $6}'`<br />
        SIZE=`echo $TMP | awk '{print $1}'`<br />
        BASE=`echo $TMP | awk '{print $2}'`<br />
    else<br />
        BASE=`basename $FILE`<br />
        SIZE=`du -k $FILE | awk '{print $1}'`<br />
    fi</p>
<p>    echo &quot;$BASE = $SIZE&quot;<br />
    insert $BASE $SIZE<br />
done<br />
[/bash]</p>
<p>I am putting my data into a table called "storage_usage" in a database called "metrics":</p>
<div class="syntax_hilite">
<div id="sql-2">
<div class="sql"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #ff0000;">`storage_usage`</span> <span style="color:#006600; font-weight:bold;">&#40;</span><br />
&nbsp; <span style="color: #ff0000;">`ts`</span> date <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,<br />
&nbsp; <span style="color: #ff0000;">`host`</span> varchar<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">25</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,<br />
&nbsp; <span style="color: #ff0000;">`file`</span> varchar<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span>,<br />
&nbsp; <span style="color: #ff0000;">`size`</span> int<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color: #993333; font-weight: bold;">UNSIGNED</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> COMMENT <span style="color: #ff0000;">'in kbytes'</span>,<br />
&nbsp; <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #ff0000;">`ts`</span>,<span style="color: #ff0000;">`host`</span>,<span style="color: #ff0000;">`file`</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</div>
</div>
<p></p>
<p>Obviously, this could be tweaked in any different number of ways, based on your needs. One tweak you might want to consider if you're running it in a daily cron is to remove the echo so you don't get an email report of every run. Also, if you might want to record more than one snapshot per file per host per day - in the which case you probably need to change the type of the timestamp column to a datetime. Or there might be cases where you want to change the replace to an insert or... whatever <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ammonlauritzen.com/blog/2009/10/14/report-storagesh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>init.d template</title>
		<link>http://ammonlauritzen.com/blog/2009/06/18/initd-template/</link>
		<comments>http://ammonlauritzen.com/blog/2009/06/18/initd-template/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 17:29:31 +0000</pubDate>
		<dc:creator>Ammon</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[init.d]]></category>

		<guid isPermaLink="false">http://ammonlauritzen.com/blog/?p=512</guid>
		<description><![CDATA[This is a rudimentary template that I've been using for very quick and dirty /etc/init.d scripts recently. It works under the assumption that your server daemon has a unique name and only ever runs a single instance - this also means that the binary and the init.d script cannot share a name - otherwise strange [...]]]></description>
			<content:encoded><![CDATA[<p>This is a rudimentary template that I've been using for very quick and dirty /etc/init.d scripts recently.</p>
<p>It works under the assumption that your server daemon has a unique name and only ever runs a single instance - this also means that the binary and the init.d script cannot share a name - otherwise strange things happen <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Actual invocation logic may need to be updated on a per-service basis and chkconfig style headers would have to be added manually, but it works well for what it is.</p>
<p>[bash]<br />
#!/bin/bash</p>
<p>DIR=''	# path to the daemon executable<br />
CMD=''	# name of the command itself<br />
ARG=''	# optional. any arguments to pass when starting<br />
NAM=''	# descriptive name of the daemon so it shows up pretty</p>
<p>function get_ps {<br />
	ps --no-header -C${CMD}<br />
}</p>
<p>function do_start {<br />
	echo -n &quot;Starting ${NAM}... &quot;<br />
	cd ${DIR}<br />
	nohup ./${CMD} ${ARG} &amp;<br />
	SUCC=`get_ps | wc -l`<br />
	if [ &quot;1&quot; == &quot;$SUCC&quot; ]; then<br />
		echo &quot;[SUCCESS]&quot;<br />
	else<br />
		echo &quot;[FAILURE]&quot;<br />
	fi<br />
}</p>
<p>function do_stop {<br />
	echo -n &quot;Stopping ${NAM}... &quot;<br />
	PID=`get_ps | awk '{print $1}'`<br />
	kill $PID<br />
	SUCC=`get_ps | wc -l`<br />
	if [ &quot;0&quot; == &quot;$SUCC&quot; ]; then<br />
		echo &quot;[SUCCESS]&quot;<br />
	else<br />
		echo &quot;[FAILURE]&quot;<br />
	fi<br />
}</p>
<p>case &quot;${1:-''}&quot; in<br />
	'start')<br />
		do_start<br />
		;;<br />
	'stop')<br />
		do_stop<br />
		;;<br />
	'restart')<br />
		do_stop<br />
		do_start<br />
		;;<br />
	*)<br />
		#echo &quot;Usage: $SELF start|stop|restart|reload|force-reload|status&quot;<br />
		echo &quot;Usage: $SELF start|stop|restart&quot;<br />
		exit 1<br />
		;;<br />
esac<br />
[/bash]</p>
]]></content:encoded>
			<wfw:commentRss>http://ammonlauritzen.com/blog/2009/06/18/initd-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn get revision</title>
		<link>http://ammonlauritzen.com/blog/2008/05/27/svn-get-revision/</link>
		<comments>http://ammonlauritzen.com/blog/2008/05/27/svn-get-revision/#comments</comments>
		<pubDate>Tue, 27 May 2008 19:57:04 +0000</pubDate>
		<dc:creator>Ammon</dc:creator>
				<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://ammonlauritzen.com/blog/?p=388</guid>
		<description><![CDATA[One of the more annoying things about svn is that (to my knowledge), there exists no single simple command to retrieve the revision number from a shell. What I want: ammon@hermes:~/repo$ svn info --get-revision . 1234 But of course, nothing like this exists. Thankfully, svn info's output IS easy enough to parse. You just have [...]]]></description>
			<content:encoded><![CDATA[<p>One of the more annoying things about svn is that (to my knowledge), there exists no single simple command to retrieve the revision number from a shell.</p>
<p>What I want:</p>
<div class="syntax_hilite">
<div id="code-6">
<div class="code">ammon@hermes:~/repo$ svn info --get-revision .<br />
<span style="color:#800000;">1234</span></div>
</div>
</div>
<p></p>
<p>But of course, nothing like this exists.</p>
<p>Thankfully, svn info's output IS easy enough to parse. You just have to do it your self.</p>
<div class="syntax_hilite">
<div id="code-7">
<div class="code">ammon@hermes:~/repo$ svn info | grep Revision | awk -- <span style="color:#CC0000;">'{print $2}'</span><br />
<span style="color:#800000;">1234</span></div>
</div>
</div>
<p></p>
<p>Will give you the revision of your current checkout without the network hit of a call to svn log.</p>
<p>To get the current version of the repo itself (hits the network), add "-r HEAD" to the svn info call:</p>
<div class="syntax_hilite">
<div id="code-8">
<div class="code">ammon@hermes:~/repo$ svn info -r HEAD | grep Revision | awk -- <span style="color:#CC0000;">'{print $2}'</span><br />
<span style="color:#800000;">1280</span></div>
</div>
</div>
<p></p>
<p>Of course, svn info also supports outputting info as xml, so you could use that to parse things in a more advanced environment but one where you're still not using the svn api bindings.</p>
]]></content:encoded>
			<wfw:commentRss>http://ammonlauritzen.com/blog/2008/05/27/svn-get-revision/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn keyword magic</title>
		<link>http://ammonlauritzen.com/blog/2006/12/19/svn-keyword-magic/</link>
		<comments>http://ammonlauritzen.com/blog/2006/12/19/svn-keyword-magic/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 22:07:11 +0000</pubDate>
		<dc:creator>Ammon</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://ammonlauritzen.com/blog/2006/12/19/svn-keyword-magic/</guid>
		<description><![CDATA[Subversion is officially the coolest thing ever And now on a related note... Yesterday during a code review, the svn:keywords property was discussed, and the idea proposed to start using it to embed magical versioning information into our builds (for bug reporting reasons and such). Well, I decided to jump on the idea this afternoon. [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://subversion.tigris.org'>Subversion</a> is officially the coolest thing ever <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>And now on a related note...</p>
<p>Yesterday during a code review, the <b>svn:keywords</b> property was discussed, and the idea proposed to start using it to embed magical versioning information into our builds (for bug reporting reasons and such). Well, I decided to jump on the idea this afternoon. After a bit of fiddling, we now have a little component that can be used to display the revision number of the current application build - all w/o anyone having to remember to do it.</p>
<p>The SVN Book explains <a href='http://svnbook.red-bean.com/nightly/en/svn.advanced.props.html#svn.advanced.props.special.keywords'>how to use the property</a> in greater detail.</p>
<p>I created a simple xml file (it could be any text file, really), that I then dropped the svn keyword tags into it.</p>
<div class="syntax_hilite">
<div id="xml-12">
<div class="xml"><span style="color: #ddbb00;">&amp;lt;</span>?xml version=<span style="color: #ddbb00;">&amp;quot;</span>1.0<span style="color: #ddbb00;">&amp;quot;</span> encoding=<span style="color: #ddbb00;">&amp;quot;</span>utf-8<span style="color: #ddbb00;">&amp;quot;</span>?<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>version<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>date<span style="color: #ddbb00;">&amp;gt;</span>$Date$<span style="color: #ddbb00;">&amp;lt;</span>/date<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>rev<span style="color: #ddbb00;">&amp;gt;</span>$Rev$<span style="color: #ddbb00;">&amp;lt;</span>/rev<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>/version<span style="color: #ddbb00;">&amp;gt;</span></div>
</div>
</div>
<p></p>
<p>I then set the svn:keywords property on the file to "Date Rev" (ie, the names of the keywords i want replaced - see the full docs for a list of valid keywords).</p>
<p>Upon commit, the file is updated on the server to now look more like this:</p>
<div class="syntax_hilite">
<div id="xml-13">
<div class="xml"><span style="color: #ddbb00;">&amp;lt;</span>?xml version=<span style="color: #ddbb00;">&amp;quot;</span>1.0<span style="color: #ddbb00;">&amp;quot;</span> encoding=<span style="color: #ddbb00;">&amp;quot;</span>utf-8<span style="color: #ddbb00;">&amp;quot;</span>?<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>version<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>date<span style="color: #ddbb00;">&amp;gt;</span>$Date: 2006-12-19 14:30:02 -0700 (Tue, 19 Dec 2006) $<span style="color: #ddbb00;">&amp;lt;</span>/date<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>rev<span style="color: #ddbb00;">&amp;gt;</span>$Rev: 376 $<span style="color: #ddbb00;">&amp;lt;</span>/rev<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>/version<span style="color: #ddbb00;">&amp;gt;</span></div>
</div>
</div>
<p></p>
<p>Unfortunately... there's a major hitch in what I wanted to do. These labels actually only update when the file in question is updated. Ie, it displays the last time the source file was changed, not the last time the entire repository was changed. So, this trick is useful for updating header comments or perhaps an internal version constant string (if you're doing server-side <a href='http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html#svn.reposadmin.create.hooks'>post-commit</a> builds or something). But... it's not what I want in this case <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>In the end, I wound up having to do a bit of old fashioned <a href='http://www.gnu.org/software/sed/manual/html_chapter/sed_toc.html'>sed</a> manipulation on the server side post-commit... but that doesn't change the fact that subversion still allows me to do this kind of magic. It's just not quite as magical as I'd originally hoped it could be.</p>
<p>My post-commit hook now looks something like this:<br />
[bash]<br />
#!/bin/bash<br />
REPO=$1<br />
REV=$2<br />
DATE=`date`</p>
<p>cd /var/www/$REPO<br />
svn up .<br />
sed -i &quot;s/\\\\\\\$Rev.*\\\\\\\$/\\\\\\\$Rev: $REV \\\\\\\$/g&quot; version.xml<br />
sed -i &quot;s/\\\\\\\$Date.*\\\\\\\$/\\\\\\\$Date: $DATE \\\\\\\$/g&quot; version.xml<br />
ant<br />
svn revert version.xml<br />
[/bash]</p>
<p>I'm keeping updated copies of a part of the repository in a web accessible directory, and am using <a href='http://ant.apache.org'>Ant</a> to build deployable zip files and such. The sed commands are performing a search and replace on the svn keywords before the build and I then revert the changes (just in case somebody actually changes the real contents of version.xml - which would result in a conflict if we kept these local changes around).</p>
<p>The file I'm producing now looks like this:</p>
<div class="syntax_hilite">
<div id="xml-14">
<div class="xml"><span style="color: #ddbb00;">&amp;lt;</span>?xml version=<span style="color: #ddbb00;">&amp;quot;</span>1.0<span style="color: #ddbb00;">&amp;quot;</span> encoding=<span style="color: #ddbb00;">&amp;quot;</span>utf-8<span style="color: #ddbb00;">&amp;quot;</span>?<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>cmykversion<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>date<span style="color: #ddbb00;">&amp;gt;</span>$Date: Tue Dec 19 15:43:07 MST 2006 $<span style="color: #ddbb00;">&amp;lt;</span>/date<span style="color: #ddbb00;">&amp;gt;</span><br />
&nbsp; &nbsp; <span style="color: #ddbb00;">&amp;lt;</span>rev<span style="color: #ddbb00;">&amp;gt;</span>$Rev: 378 $<span style="color: #ddbb00;">&amp;lt;</span>/rev<span style="color: #ddbb00;">&amp;gt;</span><br />
<span style="color: #ddbb00;">&amp;lt;</span>/cmykversion<span style="color: #ddbb00;">&amp;gt;</span></div>
</div>
</div>
<p></p>
<p>If I really wanted to, I could generate the same exact date format as SVN uses, but I prefer this one for its brevity.</p>
]]></content:encoded>
			<wfw:commentRss>http://ammonlauritzen.com/blog/2006/12/19/svn-keyword-magic/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wallpaper yoinkage</title>
		<link>http://ammonlauritzen.com/blog/2006/02/15/wallpaper_yoinkage/</link>
		<comments>http://ammonlauritzen.com/blog/2006/02/15/wallpaper_yoinkage/#comments</comments>
		<pubDate>Wed, 15 Feb 2006 11:37:15 +0000</pubDate>
		<dc:creator>Ammon</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ok, so it's 4am and I'm awake. Nothing new there. I was scrounging sites and looking for some bit of information obscure enough that I'd actually forgotten what my original goal was. Thus, it was only natural that I get sidetracked by whatever shiny object floated past me as I clicked URL's at random. I [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so it's 4am and I'm awake. Nothing new there. I was scrounging sites and looking for some bit of information obscure enough that I'd actually forgotten what my original goal was. Thus, it was only natural that I get sidetracked by whatever shiny object floated past me as I clicked URL's at random.</p>
<p>I landed on a French anime wallpaper site. I'd not been there before, and I started looking at a decently sized collection of images that I'd also never before encountered. Naturally, I decided to acquire them - but the sheer scope of the site lended a non-trivial amount of difficulty to this. At least, it did until I realized that their images were stored in sequentially numbered files in sequentially numbered directories. No zero padding or anything.</p>
<p>This led to the following script, which is currently quite happily churning its way through the 36th directory - whatever show that may actually happen to be <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I am making one assumption here, that they haven't divided things up into more than 500 directories. I could just as easily have done the sort of while loop as I did on the inside on the outside, but this is also meant as demonstrative code for future reference.</p>
<blockquote><p>[bash]<br />
#!/usr/bin/bash<br />
for DIR in `seq 0 500`<br />
do<br />
        mkdir $DIR<br />
        cd $DIR<br />
        IMG = -1<br />
        while [ $? != 1 ]<br />
        do<br />
                ((IMG += 1))<br />
                wget -c host/$DIR/$IMG.jpg<br />
        done<br />
        cd ..<br />
        rmdir $DIR</p>
<p>        if [ $? == 0 ]<br />
        then<br />
                echo "removed $DIR, assuming we're done"<br />
                exit<br />
        fi<br />
done<br />
[/bash]</p></blockquote>
<p>Why not just use wget's spider functionality? I have in the past, but not for something this fun. Besides, this way I don't have any cleanup to do (other than identifying shows and renaming their folders when all is done).</p>
<p>It's working on directory number 45 now <img src='http://ammonlauritzen.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ammonlauritzen.com/blog/2006/02/15/wallpaper_yoinkage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

