<?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>willoller.com &#187; Basecamp</title>
	<atom:link href="http://www.willoller.com/category/basecamp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.willoller.com</link>
	<description>Learning to match the beat of the Old World man.</description>
	<lastBuildDate>Sat, 28 Aug 2010 00:33:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Generating amazing reports using Basecamp (Part 1 &#8211; Tagging)</title>
		<link>http://www.willoller.com/use-sql-to-query-your-basecamp-account/</link>
		<comments>http://www.willoller.com/use-sql-to-query-your-basecamp-account/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 20:36:23 +0000</pubDate>
		<dc:creator>will</dc:creator>
				<category><![CDATA[Basecamp]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[php programming]]></category>

		<guid isPermaLink="false">http://www.willoller.com/use-sql-to-query-your-basecamp-account/</guid>
		<description><![CDATA[We&#8217;ve been looking for good ways to produce advanced reports using Basecamp. We have hit upon a system in which we implement a rudimentary tagging system, and add additional metadata for time estimation. In this first part, I will explain the simple tagging system. Next time, I will tell you all about the Big XML [...]]]></description>
			<content:encoded><![CDATA[	<p>We&#8217;ve been looking for good ways to produce advanced reports using Basecamp.  We have hit upon a system in which we implement a rudimentary tagging system, and add additional metadata for time estimation.  </p>
	<p>In this first part, I will explain the simple tagging system.  Next time, I will tell you all about the Big XML Dump.</p>
<h2>Tagging System</h2>
	<p>Tagging will be implemented using { curly braces } around a comma-delimited list.  We will be using our regular work categories as tags, so a typical todo-list might look like:</p>
<blockquote>
   <h4>Implement new feature {Programming}</h4>
   <ul>
      <li>Add new processing loop</li>
      <li>Create new template {HTML Production}</li>
      <li>Connect to pre-existing API</li>
</blockquote> 
	<p>We want our tagging parser to be smart, and change an item&#8217;s tag list on the fly based on it&#8217;s parent item&#8217;s tag list.  That sounds complicated; here&#8217;s an example using the list above.</p>
	<p><h4>Computed Tags</h4><br />
<blockquote>
   <h4>Implement new feature {Programming}</h4>
   <ul>
      <li>Add new processing loop {<em>Programming</em>}</li>
      <li>Create new template {<em>Programming</em>, HTML Production}</li>
      <li>Connect to pre-existing API {<em>Programming</em>}</li><br />
</blockquote> </p>
	<p>The <em>italicized</em> tags are derived from the list&#8217;s name (Implement new feature) and will be programmatically added. </p>
<h2>Time Estimation</h2>
	<p>Time estimates are handled in much the same way as the tags, just using straight brackets instead ([, ]).</p>
	<p>Adding time estimation to our list:</p>
<blockquote>
   <h4>Implement new feature {Programming}</h4>
   <ul>
      <li>Add new processing loop [1]</li>
      <li>Create new template [6.5] {HTML Production}</li>
      <li>Connect to pre-existing API [9]</li>
</blockquote> 
	<p>This way, each todo-item has a time value associated with it.  We will use this data later on to test our estimation skills and to quantify our productivity.</p>
	<p>Next: Part 2 &#8211; The Big XML Dump</p>


 ]]></content:encoded>
			<wfw:commentRss>http://www.willoller.com/use-sql-to-query-your-basecamp-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
