<?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>ideas.each &#38;:post &#187; emacs</title>
	<atom:link href="http://blog.tobiascrawley.net/tag/emacs/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tobiascrawley.net</link>
	<description>Another not so cleverly named blog mostly about software.</description>
	<lastBuildDate>Fri, 28 May 2010 13:56:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>open_exception gem: now with better emacs support!</title>
		<link>http://blog.tobiascrawley.net/2010/05/28/open_exception-gem-now-with-better-emacs-support/</link>
		<comments>http://blog.tobiascrawley.net/2010/05/28/open_exception-gem-now-with-better-emacs-support/#comments</comments>
		<pubDate>Fri, 28 May 2010 13:56:51 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.tobiascrawley.net/?p=325</guid>
		<description><![CDATA[I just released v0.3.1 of the open_exception gem. This release does a better job of handling exceptions that have been munged by Rails, and now provides a tempfile containing the full stack trace to the open command. If you are using emacs, you can use the :emacs_with_trace open command, and get the stack trace as [...]]]></description>
			<content:encoded><![CDATA[<p>I just released <a href="http://rubygems.org/gems/open_exception">v0.3.1</a> of the <a href="http://blog.tobiascrawley.net/2010/04/26/open_exception-gem-auto-open-exceptions-in-your-editor/">open_exception gem</a>. This release does a better job of handling exceptions that have been munged by Rails, and now provides a tempfile containing the full stack trace to the open command. </p>

<p>If you are using emacs, you can use the <code>:emacs_with_trace</code> open command, and get the stack trace as a navigable compilation buffer (next to || below) the source file in a split frame. For this to work, you&#8217;ll need to add the following function to your emacs init:</p>

<script src="http://gist.github.com/417151.js?file=gistfile1.el"></script>

<p>See github for the <a href="http://github.com/tobias/open_exception">code</a> and <a href="http://github.com/tobias/open_exception/blob/master/README.md"><span class="caps">README</span></a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2010/05/28/open_exception-gem-now-with-better-emacs-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>open_exception gem: auto open exceptions in your editor</title>
		<link>http://blog.tobiascrawley.net/2010/04/26/open_exception-gem-auto-open-exceptions-in-your-editor/</link>
		<comments>http://blog.tobiascrawley.net/2010/04/26/open_exception-gem-auto-open-exceptions-in-your-editor/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 21:58:13 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gems]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.tobiascrawley.net/?p=318</guid>
		<description><![CDATA[open_exception opens an exception in your favorite editor when developing locally. It works by parsing the backtrace, and opening the offending file at the offending line in your favorite editor (assuming your favorite editor supports remote open commands). You can add filters that allow you to ignore some exceptions, and filters that allow you to [...]]]></description>
			<content:encoded><![CDATA[<p>open_exception opens an exception in your favorite editor when developing locally. It works by parsing the backtrace, and opening the offending file at the offending line in your favorite editor (assuming your favorite editor supports remote open commands).</p>

<p>You can add filters that allow you to ignore some exceptions, and filters that allow you to scope the backtrace search. The backtrace scoping is useful for opening the last call in your application code when the exception occurs in a framework or lib.</p>

<p>If you are on MacOSX and have the <a href="http://rubygems.org/gems/growl">growl gem</a> installed, you will get a growl notification with the exception message when the file is opened.</p>

<h3>Editors</h3>

<p>Out if the box, the gem supports three editors (with the following open commands):</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    <span style="color:#ff3333; font-weight:bold;">:emacs</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'/usr/bin/emacsclient -n +{line} {file}'</span>,
    <span style="color:#ff3333; font-weight:bold;">:textmate</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'/usr/local/bin/mate -a -d -l {line} {file}'</span>,
    <span style="color:#ff3333; font-weight:bold;">:macvim</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'/usr/local/bin/mvim +{line} {file}'</span></pre></div></div>




<p>Note: if using emacs, you will need to be running <code>emacsserver</code>. To start the server: <code>M-x server-start</code><br />
or add <code>(server-start)</code> to your init.</p>

<h3>Configuration</h3>

<p>To configure, pass a block to the configure method:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    OpenException.<span style="color:#9900CC;">configure</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>oe<span style="color:#006600; font-weight:bold;">|</span>
      <span style="color:#008000; font-style:italic;"># open_with can be one of the built in editors (:emacs, :macvim, :textmate)</span>
      <span style="color:#008000; font-style:italic;"># or a command to execute to open the file, where {file} and {line} will be replaced</span>
      <span style="color:#008000; font-style:italic;"># with the file path and line number, respectively. See 'Editors' above for an example.</span>
      <span style="color:#008000; font-style:italic;"># The default editor is :emacs.</span>
&nbsp;
      oe.<span style="color:#9900CC;">open_with</span> = <span style="color:#ff3333; font-weight:bold;">:emacs</span>
&nbsp;
      <span style="color:#008000; font-style:italic;"># you can add exclusion filters to ignore exceptions. A filter can be an exception class to </span>
      <span style="color:#008000; font-style:italic;"># ignore, or a proc that is passed the exception, and should evaluate to true if the exception </span>
      <span style="color:#008000; font-style:italic;"># should be ignored. Be careful with using a class - it uses is_a?, so any subclasses of the</span>
      <span style="color:#008000; font-style:italic;"># passed class will be ignored as well. The list of filters is [] by default.</span>
&nbsp;
      oe.<span style="color:#9900CC;">exclusion_filters</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> SomeErrorClass
      oe.<span style="color:#9900CC;">exclusion_filters</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#CC0066; font-weight:bold;">lambda</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>exception<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#0000FF; font-weight:bold;">true</span> <span style="color:#9966CC; font-weight:bold;">if</span> exception_should_be_excluded <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
      <span style="color:#008000; font-style:italic;"># you can scope the search for the file:line to open with a filter as well. A filter can be a </span>
      <span style="color:#008000; font-style:italic;"># regular expression that is matched against the line, or a proc that is passed the line and </span>
      <span style="color:#008000; font-style:italic;"># should evaluate to true if the line should be used. The first line that any filter passes for </span>
      <span style="color:#008000; font-style:italic;"># will be the file:line that is opened. This is useful for opening the point in the stack just</span>
      <span style="color:#008000; font-style:italic;"># before control passes out of your app code when the exception occurs in an external </span>
      <span style="color:#008000; font-style:italic;"># lib/framework. The list of filters is [] by default. </span>
&nbsp;
      oe.<span style="color:#9900CC;">backtrace_line_filters</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">/</span>app<span style="color:#006600; font-weight:bold;">/</span>root<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#40;</span>app<span style="color:#006600; font-weight:bold;">|</span>lib<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#125;</span> 
      oe.<span style="color:#9900CC;">backtrace_line_filters</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#CC0066; font-weight:bold;">lambda</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>backtrace_line<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#0000FF; font-weight:bold;">true</span> <span style="color:#9966CC; font-weight:bold;">if</span> line_should_be_used <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>




<h3>Rails Integration</h3>

<p>The gem also alias chains in to rails&#8217; <code>ActionController#rescue_action_locally</code> method to automatically open exceptions in development mode. The gem also adds the following filter to the <code>:backtrace_line_filters</code> to scope the opened files to the app:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    @<span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#008000; font-style:italic;">#{Rails.root}/(app|lib)}@</span></pre></div></div>




<p>To replace or remove this filter, you will need to reset the <code>:backtrace_line_filters</code> in your configure block:</p>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    OpenException.<span style="color:#9900CC;">configure</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>oe<span style="color:#006600; font-weight:bold;">|</span>
      oe.<span style="color:#9900CC;">backtrace_line_filters</span> = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      oe.<span style="color:#9900CC;">backtrace_line_filters</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> my_new_filter
    <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>




<p>This has been tested with rails v2.3.5, but should work fine with 2.1 &lt;= rails &lt; 3. It may work with rails 3 as well, I just haven&#8217;t yet looked at rails 3.</p>

<h3>Standalone/Other Frameworks</h3>


<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">    <span style="color:#008000; font-style:italic;"># To manually open an exception, or wire it up in another framework, you call:</span>
    OpenException.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>exception<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
    <span style="color:#008000; font-style:italic;"># You can override the default (or configured) options by passing a hash as the second arg:</span>
    OpenException.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>exception, <span style="color:#006600; font-weight:bold;">&#123;</span>:open_with <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:textmate</span>, <span style="color:#ff3333; font-weight:bold;">:backtrace_line_filters</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#91;</span>filter, another_filter<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>




<p>The source is on <a href="http://github.com/tobias/open_exception">github</a>, and the gem is on <a href="http://rubygems.org/gems/open_exception">rubygems</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2010/04/26/open_exception-gem-auto-open-exceptions-in-your-editor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Generate a migration and open it in a buffer (in Emacs)</title>
		<link>http://blog.tobiascrawley.net/2010/03/19/generate-a-migration-and-open-it-in-a-buffer-in-emacs/</link>
		<comments>http://blog.tobiascrawley.net/2010/03/19/generate-a-migration-and-open-it-in-a-buffer-in-emacs/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 13:35:57 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://blog.tobiascrawley.net/?p=312</guid>
		<description><![CDATA[Requires rinari]]></description>
			<content:encoded><![CDATA[<p><script src="http://gist.github.com/337495.js?file=rails-generate-migration.el"></script><br />
<strong>Requires <a href="http://rinari.rubyforge.org/">rinari</a></strong></p>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2010/03/19/generate-a-migration-and-open-it-in-a-buffer-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commenting out blocks of ruby in emacs</title>
		<link>http://blog.tobiascrawley.net/2010/02/17/commenting-out-blocks-of-ruby-in-emacs/</link>
		<comments>http://blog.tobiascrawley.net/2010/02/17/commenting-out-blocks-of-ruby-in-emacs/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 04:56:37 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.tobiascrawley.net/?p=302</guid>
		<description><![CDATA[I&#8217;ve been an emacs user for 12+ years, and am ashamed to admit that I&#8217;ve never learned emacs lisp (yes, my last post was about emacs lisp code, but it was a copy and paste with a few changes, and I certainly didn&#8217;t understand what it was doing). Until now, that is. I started reading [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been an <a href="http://www.gnu.org/software/emacs/">emacs</a> user for 12+ years, and am ashamed to admit that I&#8217;ve never learned <a href="http://en.wikipedia.org/wiki/Emacs_Lisp">emacs lisp</a> (yes, my last post was about emacs lisp code, but it was a copy and paste with a few changes, and I certainly didn&#8217;t understand what it was doing). Until now, that is. I started reading the <a href="http://www.gnu.org/software/emacs/emacs-lisp-intro/">emacs lisp intro</a>, but only got about fifty pages in to it before I got the itch to write some code.</p>

<p>So here it is. Its a package that allows you to comment out a block of ruby code from a keybinding (I&#8217;m sure there is code out there to do this already, but it was a fun learning challenge).</p>

<p>The main function is <code>comment-ruby</code>, which I have bound to <code>C-:</code>. If there is a region active, it comments out the region. If that region is less than five lines, each line is commented with  &#8216;# &#8216;, otherwise the entire region is wrapped in <code>=begin...=end</code>. If the region is not active, the current line is commented out with &#8216;# &#8216;.</p>

<p>After a region has been commented out, the point (cursor) is set to the line above or below the region, depending on whether the point was at the beginning or end of the region when called.</p>

<p>Here is the code &#8211; it probably isn&#8217;t idiomatic lisp. If you have any suggestions on improving the code or making it more idiomatic, please let me know!</p>

<script src="http://gist.github.com/306302.js?file=comment-ruby.el"></script>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2010/02/17/commenting-out-blocks-of-ruby-in-emacs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Emacs tip: running ack in the project root w/rinari</title>
		<link>http://blog.tobiascrawley.net/2010/02/11/emacs-tip-running-ack-in-the-project-root-wrinari/</link>
		<comments>http://blog.tobiascrawley.net/2010/02/11/emacs-tip-running-ack-in-the-project-root-wrinari/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 04:16:25 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blog.tobiascrawley.net/?p=292</guid>
		<description><![CDATA[This post covers how to combine the awesomeness of ack with rinari in emacs to run ack in the project root by default. (If you aren&#8217;t using ack, definitely check it out for searching your codebase. If you aren&#8217;t using emacs, this post isn&#8217;t going to convince you to switch). I&#8217;ve been using Kim van [...]]]></description>
			<content:encoded><![CDATA[<p>This post covers how to combine the awesomeness of <a href="http://betterthangrep.com/">ack</a> with <a href="http://rinari.rubyforge.org/">rinari</a> in emacs to run ack in the project root by default. (If you aren&#8217;t using ack, definitely check it out for searching your codebase. If you aren&#8217;t using emacs, this post isn&#8217;t going to convince you to switch). </p>

<p>I&#8217;ve been using <a href="http://www.rooijan.za.net/">Kim van Wyk&#8217;s</a> <a href="http://www.rooijan.za.net/?q=ack_el">ack.el</a> for a few months now, but was annoyed that I had to tell it the directory where to run ack, when in most cases I wanted it to run in the root of my Rails app. So I copied the <code>ack</code> function from ack.el and made one that only asks for the search pattern, then runs in the root of the app (provided by rinari&#8217;s <code>rinari-root</code> function). I then bound that function to <code>C-c f a</code>. </p>

<p>Here is the code:<br />
<script src="http://gist.github.com/301205.js?file=ack-in-project.el"></script></p>

<p><strong>Note:</strong> you will need <a href="http://rinari.rubyforge.org/">rinari</a> and <a href="http://www.rooijan.za.net/?q=ack_el">ack.el</a> loaded, and <a href="http://betterthangrep.com/">ack</a> will need to be in your path.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2010/02/11/emacs-tip-running-ack-in-the-project-root-wrinari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generating a TAGS file from a git hook</title>
		<link>http://blog.tobiascrawley.net/2009/01/01/generating-a-tags-file-from-a-git-hook/</link>
		<comments>http://blog.tobiascrawley.net/2009/01/01/generating-a-tags-file-from-a-git-hook/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 19:05:02 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.handbuiltsoftware.com/?p=86</guid>
		<description><![CDATA[Any decent programmer&#8217;s text editor provides some form of symbol lookup. With TextMate, the lookup table generation is built in. If you are using vim or emacs, you will need to use an external program to generate the lookup table. This post covers generating the lookup table for emacs (and with some slight modification, vi), [...]]]></description>
			<content:encoded><![CDATA[<p>Any decent programmer&#8217;s text editor provides some form of symbol lookup. With <a href="http://macromates.com/">TextMate</a>, the lookup table generation is built in. If you are using vim or emacs, you will need to use an external program to generate the lookup table. This post covers generating the lookup table for emacs (and with some slight modification, vi), and adding a hook to git to regenerate the table after a pull/merge. For more information on using symbol (tag) lookup with emacs or vim, see <a href="http://vim.wikia.com/wiki/Browsing_programs_with_tags">this wikia entry</a> for vim, or <a href="http://www.emacswiki.org/emacs/EmacsTags">this emacswiki entry</a> for emacs.</p>

<h3>ctags</h3>

<p>Traditionally, the <code>ctags/etags</code> executable was used to generate lookup tables for vi/emacs respectively. <code>ctag</code> would create a <code>tags</code> file for vi, and <code>etag</code> would create a <code>TAGS</code> file for emacs. Unfortunately, the <code>etags/ctags</code> that ships with MacOS X does not parse ruby code. For that, you will need to use <a href="http://ctags.sourceforge.net/">Exuberant Ctags</a>. You can install Exuberant Ctags on MacOS via <a href="http://macports.org/">MacPorts</a> with <code>sudo port install ctags</code>. </p>

<h3>git hooks</h3>

<p>There are some nice hooks that you can define for git to call after/before it performs certain actions. You can read the full list <a href="http://www.kernel.org/pub/software/scm/git/docs/githooks.html">here</a>. Hooks are defined by placing properly named executables into <code>.git/hooks/</code> in your repo. The two hooks we care about here are <a href="http://www.kernel.org/pub/software/scm/git/docs/githooks.html#_post_merge">post-merge</a> and <a href="http://www.kernel.org/pub/software/scm/git/docs/githooks.html#_post_commit">post-commit</a> ( <strong>Update:</strong> the script has been modified to register for the <a href="http://www.kernel.org/pub/software/scm/git/docs/githooks.html#_post_checkout">post-checkout</a> hook as well, based on a suggestion from <a href="http://smartic.us/2009/04/03/creating-ctags-with-git-hooks/">Bryan Liles</a>). The <code>post-merge</code> hook will get called after you do a <code>git pull</code> to merge from another repository, and <code>post-commit</code> is called after a local commit. An important thing to remember about these hooks (and anything else in <code>.git</code>) is that they will not be pushed to the remote repo. So if you develop on multiple machines, or want to share hooks with coworkers, you will need to install them in each local repo.</p>

<h3>the kitchen sink</h3>

<p>Here is the script I use to handle generating tags from ruby code explicitly, generating tags from a git hook, and installing the git hooks. It really should be two different scripts, but&#8230; well&#8230; isn&#8217;t.</p>

<script src="http://gist.github.com/42308.js"></script>

<p>You can read it and see what it does. To have it install the hooks in the current repo, call it with the <code>-i@ option. If you use vim instead of emacs, you will need to remove the @-e</code> option and change <code>TAGS</code> to <code>tags</code> on the  <code>ctags</code> call.</p>

<p>Once it is installed, your tags will be regenerated after every commit or pull. You can manually regenerate the tags by calling the script from the repo base directory. </p>

<p><strong>Update:</strong> to see a video of this script in action, check out Bryan Liles&#8217; post on <a href="http://smartic.us/2009/04/03/creating-ctags-with-git-hooks/">smartic.us</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.tobiascrawley.net/2009/01/01/generating-a-tags-file-from-a-git-hook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
