<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>Tribal Pizza</title>
    
    <link rel="hub" href="http://hubbub.api.typepad.com/" />
    <link rel="alternate" type="text/html" href="http://blog.tribalpizza.com/" />
    <id>tag:typepad.com,2003:weblog-1308356</id>
    <updated>2007-12-30T14:03:48-05:00</updated>
    <subtitle>Inside the creation of the next great pizza chain.</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="self" href="http://feeds.feedburner.com/TribalPizza" type="application/atom+xml" /><feedburner:emailServiceId>TribalPizza</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title>Now In The Freezer Aisle</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/2b9-G_Zm-Xc/now-in-the-free.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/12/now-in-the-free.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-43422148</id>
        <published>2007-12-30T14:03:48-05:00</published>
        <updated>2007-12-30T14:03:48-05:00</updated>
        <summary>No, we aren't going to start selling frozen pizza. Instead, we're putting Tribal into "deep freeze". Our first shot at getting off the ground didn't pan out. We've contacted the folks who bought Pizza Designs and the refund checks have...</summary>
        <author>
            <name>Jay Grieves</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;a href="http://goodjuju.typepad.com/photos/uncategorized/2007/12/30/freezeraisle_2.jpg"&gt;&lt;img width="200" height="130" border="0" src="http://blog.tribalpizza.com/images/2007/12/30/freezeraisle_2.jpg" title="Freezeraisle_2" alt="Freezeraisle_2" style="margin: 0px 5px 5px 0px; float: left;" /&gt;&lt;/a&gt;No, we aren't going to start selling frozen pizza.&amp;nbsp; Instead, we're putting Tribal into &amp;quot;deep freeze&amp;quot;.&amp;nbsp; Our first shot at getting off the ground didn't pan out.&amp;nbsp; We've contacted the folks who bought Pizza Designs and the refund checks have been mailed out.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Our sincere thanks goes out to everyone who cheered us on along the way!&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=2b9-G_Zm-Xc:MiSr5M5Z9qw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=2b9-G_Zm-Xc:MiSr5M5Z9qw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=2b9-G_Zm-Xc:MiSr5M5Z9qw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=2b9-G_Zm-Xc:MiSr5M5Z9qw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=2b9-G_Zm-Xc:MiSr5M5Z9qw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=2b9-G_Zm-Xc:MiSr5M5Z9qw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=2b9-G_Zm-Xc:MiSr5M5Z9qw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=2b9-G_Zm-Xc:MiSr5M5Z9qw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/2b9-G_Zm-Xc" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/12/now-in-the-free.html</feedburner:origLink></entry>
    <entry>
        <title>Comfort != Happiness</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/nuC5WTyg24w/comfort-happine.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/10/comfort-happine.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-40083438</id>
        <published>2007-10-11T11:50:49-04:00</published>
        <updated>2007-10-11T11:50:49-04:00</updated>
        <summary>The last couple of posts (Brussels Sprouts and Difficulty Is A Vector) might give you the impression that it's all doom and gloom at Tribal these days and that's not the case. We're currently in The Dip , where we've...</summary>
        <author>
            <name>Jay Grieves</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Startup Life" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;a href="http://goodjuju.typepad.com/photos/uncategorized/2007/10/11/joy.jpg"&gt;&lt;img width="200" height="299" border="0" src="http://blog.tribalpizza.com/images/2007/10/11/joy.jpg" title="Joy" alt="Joy" style="margin: 0px 0px 5px 5px; float: right;" /&gt;&lt;/a&gt;The last couple of posts (&lt;a href="http://blog.tribalpizza.com/2007/10/brussels-sprout.html"&gt;Brussels Sprouts&lt;/a&gt; and &lt;a href="http://blog.tribalpizza.com/2007/10/difficulty-is-a.html"&gt;Difficulty Is A Vector&lt;/a&gt;) might give you the impression that it's all doom and gloom at Tribal these days and that's not the case.&amp;nbsp; We're currently in &lt;a href="http://www.amazon.com/gp/product/1591841666?ie=UTF8&amp;amp;tag=tribalpizza-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1591841666"&gt;The Dip&lt;/a&gt;&lt;img width="1" height="1" border="0" src="http://www.assoc-amazon.com/e/ir?t=tribalpizza-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1591841666" style="border: medium none  ! important; margin: 0px ! important;" /&gt;, where we've made a massive push and have made serious progress,&amp;nbsp; but have hit our first real wall -- getting unit #1 open and operating.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;The gloomy posts serve two purposes. The first is to let people who are going through similar challenges know that we share their angst.&amp;nbsp; The other reason is that if we don't capture the difficult times now, we'll likely gloss over them in the future when they're behind us.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;That brings me to the title of the post.&amp;nbsp; We simply don't equate comfort with happiness.&amp;nbsp; I'm not sure when this got drilled into us, but I think it really gelled during our &amp;quot;big company&amp;quot; days.&amp;nbsp; All too often, we saw folks choose the path of comfort and with pretty dismal results.&amp;nbsp; Opportunities were missed, implementations were mediocre, and innovation withered all because someone (or several someones) in the dependency graph decided that they didn't want to be uncomfortable.&lt;/p&gt;

&lt;p&gt;So, the forecast for the next few weeks is &lt;a href="http://blog.tribalpizza.com/2007/09/higher-highs-lo.html"&gt;lower lows, with a chance of higher highs&lt;/a&gt; and gusting &lt;a target="_new" href="http://www.gapingvoid.com/Moveable_Type/archives/zzzbambam30.jpg"&gt;difficulties&lt;/a&gt; in the direction of our choosing.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=nuC5WTyg24w:iC1CBHvlmWY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=nuC5WTyg24w:iC1CBHvlmWY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=nuC5WTyg24w:iC1CBHvlmWY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=nuC5WTyg24w:iC1CBHvlmWY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=nuC5WTyg24w:iC1CBHvlmWY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=nuC5WTyg24w:iC1CBHvlmWY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=nuC5WTyg24w:iC1CBHvlmWY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=nuC5WTyg24w:iC1CBHvlmWY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/nuC5WTyg24w" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/10/comfort-happine.html</feedburner:origLink></entry>
    <entry>
        <title>"Difficulty" Is A Vector</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/zOa1U09ekek/difficulty-is-a.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/10/difficulty-is-a.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-40043298</id>
        <published>2007-10-10T13:49:39-04:00</published>
        <updated>2007-10-10T13:49:39-04:00</updated>
        <summary>Webb and I were talking about some options with Tribal's first delivery unit. As with any set of options, each one had it's pros and cons. A couple of the options represented several miserable months while we got our systems,...</summary>
        <author>
            <name>Jay Grieves</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Startup Life" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;a href="http://goodjuju.typepad.com/photos/uncategorized/2007/10/10/autocad_hard.jpg"&gt;&lt;img width="200" height="150" border="0" src="http://blog.tribalpizza.com/images/2007/10/10/autocad_hard.jpg" title="Autocad_hard" alt="Autocad_hard" style="margin: 0px 5px 5px 0px; float: left;" /&gt;&lt;/a&gt;Webb and I were talking about some options with Tribal's first delivery unit.&amp;nbsp; As with any set of options, each one had it's pros and cons.&amp;nbsp; A couple of the options represented several miserable months while we got our systems, schedule, and staff put into place.&lt;/p&gt;

&lt;p&gt;These were still considered viable options and he hit the nail on the head when he said, &amp;quot;It doesn't suck any more than walking into a cushy job and losing a little piece of your soul each day . . . it's just different.&amp;quot;&lt;/p&gt;

&lt;p&gt;Thus was born the Tribal Pizza Unified Theory of Suckitude, which states: &amp;quot;Sometimes you control the magnitude of the suckiness, sometimes you control the direction, you may even be able to exchange control of one for the other.&amp;nbsp; Good luck trying to control both.&amp;quot;&lt;/p&gt;

&lt;p&gt;The next time you find yourself in a difficult situation, ask yourself: &amp;quot;Am I here because I chose the magnitude or the direction?&amp;quot;&amp;nbsp; If you chose the direction, then it's your own fault that it sucks so much.&amp;nbsp; If you chose the magnitude, then it's your fault for being there in the first place.&amp;nbsp; And what if you chose neither?&amp;nbsp; Then it's your fault for treating difficulty as point with neither direction nor magnitude in an attempt to violate the laws of nature.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=zOa1U09ekek:zsMulo8yXis:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=zOa1U09ekek:zsMulo8yXis:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=zOa1U09ekek:zsMulo8yXis:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=zOa1U09ekek:zsMulo8yXis:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=zOa1U09ekek:zsMulo8yXis:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=zOa1U09ekek:zsMulo8yXis:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=zOa1U09ekek:zsMulo8yXis:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=zOa1U09ekek:zsMulo8yXis:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/zOa1U09ekek" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/10/difficulty-is-a.html</feedburner:origLink></entry>
    <entry>
        <title>Brussels Sprouts</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/tIKawk6FxsU/brussels-sprout.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/10/brussels-sprout.html" thr:count="1" thr:updated="2007-10-01T19:07:37-04:00" />
        <id>tag:typepad.com,2003:post-39624622</id>
        <published>2007-10-01T16:19:07-04:00</published>
        <updated>2007-10-01T16:19:07-04:00</updated>
        <summary>I'm pretty open about food and as I have aged I have become more accepting to different tastes. However, one thing that has never changed is that I can't stand Brussels Sprouts. As a kid, I tried three strategies for...</summary>
        <author>
            <name>Michael Webb</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Startup Life" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;I'm pretty open about food and as I have aged I have become more accepting to different tastes. However, one thing that has never changed is that I can't stand Brussels Sprouts. As a kid, I tried three strategies for dealing with forced consumption of the horrid little buggers. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;First, I railed, threw a fit and refused to eat them. That didn't work!&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Second, I swallowed them whole and forced them down with water. Well, I didn't have to taste them, but, almost choked. Plus the darn texture bothered me more that way.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Lastly, I accepted my fate and decided to eat them first. I knew I wouldn't like it, but, I would eat them first and get them out of the way. Then I could cleanse my pallet with my other food and enjoy my meal -- sprout free.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;When my task list becomes filled (as often it does), I am reminded to eat my Brussels Sprouts first (in other words the most despised tasks get done first). This leaves my remaining work to cleanse my pallet and refresh my soul.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;How do you deal with despised tasks?&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=tIKawk6FxsU:VB0kEIlHEJ0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=tIKawk6FxsU:VB0kEIlHEJ0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=tIKawk6FxsU:VB0kEIlHEJ0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=tIKawk6FxsU:VB0kEIlHEJ0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=tIKawk6FxsU:VB0kEIlHEJ0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=tIKawk6FxsU:VB0kEIlHEJ0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=tIKawk6FxsU:VB0kEIlHEJ0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=tIKawk6FxsU:VB0kEIlHEJ0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/tIKawk6FxsU" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/10/brussels-sprout.html</feedburner:origLink></entry>
    <entry>
        <title>Meatball Sundae or Tomato Basil Goodness?</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/4pWGt26yhxY/meatball-sundae.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/meatball-sundae.html" thr:count="1" thr:updated="2007-09-25T22:04:33-04:00" />
        <id>tag:typepad.com,2003:post-39313911</id>
        <published>2007-09-24T10:22:58-04:00</published>
        <updated>2007-09-24T10:22:58-04:00</updated>
        <summary>Today, Seth Godin talked about his new book Meatball Sundae. He published a thought piece from the book describing what a Meatball Sundae is. In particular, he was describing it in terms of Web 2.0. You know: social networks, user...</summary>
        <author>
            <name>Michael Webb</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Books" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;

&lt;p class="MsoNormal"&gt;Today, Seth Godin talked about his new book &lt;a href="http://www.squidoo.com/meatballsundae"&gt;Meatball Sundae&lt;/a&gt;.
He published a thought piece from the book describing what a Meatball Sundae
is. In particular, he was describing it in terms of Web 2.0. You know: social
networks, user generated content, viral marketing, and AJAXy goodness! The analogy
is relevant to many market trends though. It’s the idea that you can simply
have a better business by tacking on whatever the latest trend is. Currently
that is Web 2.0.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;This made me think about our approach to Tribal Pizza. The
core idea behind Tribal Pizza breaks down into three parts:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ul type="disc" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;Tight logistical management of the supply chain. (Whew! Jargon overload)&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A unique (for now) user experience, ala user participation via Pizza Design and Pizza Battle. Add to that order tracking. &lt;/li&gt;

&lt;li class="MsoNormal"&gt;An in your face attitude, all the way from the Web Site, to our approach to marketing. We are different, not trying to be different!&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;





&lt;p class="MsoNormal"&gt;I weighed each of these prongs against the Meatball Sundae
analogy. Here are some conclusions:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ul type="disc" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;Tight logistical management is critical to the operation. This is not Marketechure. Tightly controlling the bottom line allows us to compete in a market where food and gas prices will continue to increase in the future. This key enabling technology will allow us to run harder and faster than our competition. Period!&lt;/li&gt;

&lt;li class="MsoNormal"&gt;The user experience is highly influenced by Web 2.0 trends. Jay and I have always felt that brining our customers into the experience and actually making them part of the company is part of our not so secret Juju. We want our customers to feel like they own part of Tribal Pizza and our success can be theirs as well. Further, we think once we are up and running this is going to be a big part of driving our word of mouth marketing. “Dude, I kicked Johnny’s butt in a Pizza Battle yesterday! I took his money and his design.” “Really, that sounds cool, what’s a Pizza Battle?”&lt;/li&gt;

&lt;li class="MsoNormal"&gt;Our attitude at the surface seems to be very Web 2.0’ish. Not really. This is just our combined personality manifested in a corporate entity. Jay and I have really tried to build the company that reflects us. Behind the visions of sugar plums dancing in our heads, the real motivation is to&amp;nbsp; build our company. You can see it in everything. From the vague references to &lt;a href="http://en.wikipedia.org/wiki/Snow_Crash"&gt;Snowcrash&lt;/a&gt; to the deep red tomato colored website. Tribal Pizza is us!&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;





&lt;p class="MsoNormal"&gt;I like the analogy Seth uses. Going forward I think it’s a
salient mental picture for us to weigh some of our approaches against. Does
this make the sundae taste better or are we just placing meatballs on top?&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;What’s your experience with Meatball Sundaes and the high
priests of what is cool today?&lt;/p&gt;

&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=4pWGt26yhxY:mQQoUYxicmo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=4pWGt26yhxY:mQQoUYxicmo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=4pWGt26yhxY:mQQoUYxicmo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=4pWGt26yhxY:mQQoUYxicmo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=4pWGt26yhxY:mQQoUYxicmo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=4pWGt26yhxY:mQQoUYxicmo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=4pWGt26yhxY:mQQoUYxicmo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=4pWGt26yhxY:mQQoUYxicmo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/4pWGt26yhxY" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/meatball-sundae.html</feedburner:origLink></entry>
    <entry>
        <title>Minimizing Procrastination or the Careful Art of Negotiating with a Rogue State!</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/C9bWDDx0I6Q/minimizing-proc.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/minimizing-proc.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-39078563</id>
        <published>2007-09-18T18:33:10-04:00</published>
        <updated>2007-09-18T18:33:10-04:00</updated>
        <summary>I've been thinking about procrastination quite a bit since starting my own company. There is an entire industry promoting helpful tips on how to avoid procrastination. I've never really spent much time until recently reading any of the advice. Instead,...</summary>
        <author>
            <name>Michael Webb</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Startup Life" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;I've been thinking about procrastination quite a bit since starting my&#xD;
own company. There is an entire industry promoting helpful tips on how&#xD;
to &lt;span style="font-weight: bold;"&gt;avoid &lt;/span&gt;procrastination. I've&#xD;
never really spent much time until recently reading any of the advice.&#xD;
Instead, in the past I just tried to avoid procrastination. My success&#xD;
rate is hit and miss. Some careful analysis of my own love/hate&#xD;
relationship with procrastination has led me to some interesting&#xD;
conclusions. First, if you are like me -- you just can't &lt;span style="font-weight: bold;"&gt;avoid &lt;/span&gt;procrastination.&#xD;
It's just part of your character. I know I like to work in spurts. Do&#xD;
nothing. Pulse. Do nothing. Do nothing. Do nothing. Pulse. Well, this&#xD;
pulsing strategy works really well for some types of adventures. Some&#xD;
it doesn't. It's not conducive to owning your own business -- there are&#xD;
just too many plates to spin. Something always needs your attention. So&#xD;
if we can't avoid procrastination, how can we minimize it? How can we&#xD;
negotiate with it?&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;First, see procrastination as a strategy or a&#xD;
technique for achieving a host of different goals. I've begun to see&#xD;
procrastination as a form of asymmetrical warfare a part of my psyche&#xD;
uses against the more successful, driven and motivated portion of my&#xD;
psyche. But why? Well, I would categorize the goals behind&#xD;
procrastination this way:&lt;/p&gt;&#xD;
&#xD;
&lt;ul&gt;&lt;li&gt;Delaying a potential frustrating, embarrassing, or difficult event&lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;Using my time in an alternative time-wasting manner, such as daydreaming&lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;Avoiding a boring or uninteresting task&lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;Being lazy because I'm either mentally or physically exhausted&lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;Being lazy because I believe I'm either mentally or physically exhausted&lt;/li&gt;&lt;/ul&gt;&#xD;
&#xD;
&lt;p&gt;The&#xD;
little rogue state that encourages the use of procrastination isn't&#xD;
such a boogie man -- just misunderstood and underrepresented. Also, he's not&#xD;
that mature; so he doesn't use good techniques in dealing with&#xD;
situations. Armed with this information, I've come up with some&#xD;
alternative negotiating strategies for dealing with him. Yes, I&#xD;
negotiate with myself! I'm not that concerned with my sanity because&#xD;
they are bilateral talks -- if they were six party talks, well then I'd&#xD;
be riding the crazy train. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Here's a few different negotiation strategies, they go something like this:&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Scenario 1:&lt;/span&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"OK, so I see you want to procrastinate. Why?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Well there is some unpleasant event I don't want to deal with." &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"OK, let's take care of that right away! Now!"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Now."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Absolutely, the sooner the better. That way there is no time to worry about it. The more you worry the more dreadful it seems."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"I don't want to."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"I know, guess what, let's use that time we free up from worrying to do something fun."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Fun?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Oh yeah, let's daydream, read a book, walk in the park, grab a beer, or catch a movie."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Really? Can we get a beer and see a movie?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Sure. But, first we deal with the event."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"OK!"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Scenario 2:&lt;br&gt;&lt;br&gt;&lt;/span&gt;"Hey, do we have to do such and such? Let's do nothing instead!"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Why don't you want to do such and such?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"It's boring!"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Yeah, I know"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Cool. Agreed? We can do nothing then?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Hold&#xD;
on. We really need to get this done. Here are the consequences of not&#xD;
getting this done. Guess what, it may actually mean we have to work&#xD;
harder."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"So. But, not right now."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"I hear ya. Guess&#xD;
what, I'll make you a deal. Let's work on it for 40 minutes and then we&#xD;
can take a little 20 minute screw off break. What do you think?"&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"I don't know."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"Come on."&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;"OK, but, just this time."&lt;span style="font-weight: bold;"&gt;&lt;strong&gt;&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;At&#xD;
this point, I think to myself, no problem I can negotiate with you all&#xD;
day like this. We'll get 8 or 9 hours of work done at this pace.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;strong&gt;&lt;br&gt;&lt;br&gt;&lt;/strong&gt;&lt;/span&gt;Anyways,&#xD;
you get the point. When you find yourself trying to procrastinate find&#xD;
out why. Then try to negotiate with the part of you that wants to.&#xD;
Trade with that part of yourself if you have to. Sometimes, when you've&#xD;
driven procrastination a way for a while let him win a few&#xD;
negotiations. Just don't let him in on the secret that you have only&#xD;
let him win the battles you wanted to loose. You're consciously&#xD;
creating free time for your mind and body to relax and have fun -- and&#xD;
that is doing something! That helps you drive your success and stay&#xD;
motivated.&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;How do you deal with procrastination?&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=C9bWDDx0I6Q:EG3CzD8VKAU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=C9bWDDx0I6Q:EG3CzD8VKAU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=C9bWDDx0I6Q:EG3CzD8VKAU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=C9bWDDx0I6Q:EG3CzD8VKAU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=C9bWDDx0I6Q:EG3CzD8VKAU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=C9bWDDx0I6Q:EG3CzD8VKAU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=C9bWDDx0I6Q:EG3CzD8VKAU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=C9bWDDx0I6Q:EG3CzD8VKAU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/C9bWDDx0I6Q" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/minimizing-proc.html</feedburner:origLink></entry>
    <entry>
        <title>How do we secure your password you ask?</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/meftQ9Tkv78/how-do-we-secur.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/how-do-we-secur.html" thr:count="2" thr:updated="2007-09-17T18:28:04-04:00" />
        <id>tag:typepad.com,2003:post-39020171</id>
        <published>2007-09-17T16:07:00-04:00</published>
        <updated>2007-09-17T16:07:00-04:00</updated>
        <summary>Actually, you didn't ask. But, we think you should have. Better yet, we think you shouldn't have to. Expect this information to migrate on to the main site. We feel as a holder of your account and personal information we...</summary>
        <author>
            <name>Michael Webb</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technology" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
&lt;p&gt;Actually, you didn't ask. But, we think you should have. Better yet,&#xD;
we think you shouldn't have to. Expect this information to migrate on&#xD;
to the main site. We feel as a holder of your account and personal&#xD;
information we have a responsibility to inform you on how we manage your password and personal information.&#xD;
We feel every website you interact with should do the same. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;Found a fairly timely post on digg this morning regarding this topic&#xD;
-- &lt;a href="http://www.codinghorror.com/blog/archives/000953.html"&gt;You're Probably Storing Passwords Incorrectly&lt;/a&gt;. It's timely because I was&#xD;
planning on writing about this topic today. Glad to see other people&#xD;
are concerned about this. This is an interesting topic; most websites&#xD;
(even several of the more famous) do this wrong). Jay and I put a bit of&#xD;
thought into this upfront. We made a few conscious decisions regarding&#xD;
management of passwords and personal information we thought was best&#xD;
for the consumer. Namely: &lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;We would not store passwords. Rather, we would store salted hashes.&#xD;
This brings up one minor inconvenience -- if you loose your password we&#xD;
generate you a new random one. We CANNOT recover your password. At the&#xD;
same time, outside of a brute force attack neither can someone who&#xD;
snags our customer database. We use a SHA-512 HASH along with a&#xD;
randomly generated 8 byte salt for each password stored. One thing we could improve is increasing the size of the salt. &lt;br&gt; &lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;We would not have a pre-canned set of security questions for&#xD;
password reminders or reset. We can't recover your password anyways.&#xD;
Instead we provide you a reminder -- you can put what you want there.&#xD;
Doesn't matter to us. Lot's of folks put a hint or the word 'standard'&#xD;
to indicate this is the one they normally use. One thing we feel&#xD;
strongly about is canned questions are inherently insecure and a&#xD;
reminder &lt;em&gt;can be secure if you choose it to be&lt;/em&gt;. &#xD;
&lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;We did not want to put password strength checks into the&#xD;
password requirements. Oh no! You guys don't care about my security!&#xD;
Actually, we do. Those that use good strong passwords will continue to&#xD;
use good strong passwords. Those that don't wont. Rather than force you&#xD;
to conform to a set of rules we think is good we let you choose. I&#xD;
think it is arrogant to assume someone who can't remember a complicated&#xD;
password will if you force them to for their own good. They will&#xD;
simply write it down somewhere! Now what did you achieve? This one is&#xD;
near and dear to my heart. I used to work as a sysadmin for the&#xD;
University of North Texas. I worked for this great old tinkerer named&#xD;
Jerry. Jerry maintained the servers and the computers for the&#xD;
Department of Engineering. One day I got the bright idea to put in a&#xD;
more secure admin password. Shortly I realized my mistake. Jerry was a&#xD;
smart guy, but, older and just couldn't remember the password I created&#xD;
so he wrote it down on a sticky. All I did was&#xD;
lower the security of the system! &lt;/li&gt;&#xD;
&#xD;
&lt;li&gt;When we start accepting orders we are going to provide you&#xD;
the option of storing your credit card information for quick checkout.&#xD;
When we do this, we will encrypt the information using your password to&#xD;
synthesize a key. This means that we will ask you for your password one&#xD;
more time before processing a speed order -- remember we don't have it!&#xD;
If our database is stolen then each credit card number stored must be&#xD;
brute forced. The difficulty of this act will depend on each user's&#xD;
password. Yes, this means if you reset your password we will discard&#xD;
the encrypted credit card information because it can no longer be&#xD;
recovered. &lt;/li&gt;&lt;/ol&gt;&#xD;
&#xD;
&#xD;
&lt;p&gt;One weakness in our current system is that during password reset&#xD;
your new password is sent to your email. As we all know, depending on&#xD;
the route from us to your inbox that email may be read by snoopers&#xD;
along the way. There aren't many great solutions to this problem that&#xD;
do not incur lots of verification headaches for you and us. Again, we&#xD;
don't feel too terrible about this because if you did store any super&#xD;
sensitive information with us, it would have been destroyed by the&#xD;
password recovery. This is an area we will continue to think about and&#xD;
refine. Any suggestions out there are welcome. &lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;We feel these choices provide a good compromise between securing&#xD;
your personal data and providing a good customer experience. We also&#xD;
feel that websites should be more forthcoming in how the manage and&#xD;
secure your accounts and personal information. Hiding this information&#xD;
only helps attacker and would be &lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;malfeasants.&lt;/span&gt; &lt;/p&gt;&#xD;
&lt;p&gt;What do you think of our choices?&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=meftQ9Tkv78:Y6H5umnZ9B4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=meftQ9Tkv78:Y6H5umnZ9B4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=meftQ9Tkv78:Y6H5umnZ9B4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=meftQ9Tkv78:Y6H5umnZ9B4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=meftQ9Tkv78:Y6H5umnZ9B4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=meftQ9Tkv78:Y6H5umnZ9B4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=meftQ9Tkv78:Y6H5umnZ9B4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=meftQ9Tkv78:Y6H5umnZ9B4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/meftQ9Tkv78" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/how-do-we-secur.html</feedburner:origLink></entry>
    <entry>
        <title>Dealing With The Database - The Great Impedance Mismatch (Part I)</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/RHl_zIDtgOI/dealing-with-th.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/dealing-with-th.html" thr:count="5" thr:updated="2007-09-25T15:36:38-04:00" />
        <id>tag:typepad.com,2003:post-38966365</id>
        <published>2007-09-16T16:26:18-04:00</published>
        <updated>2007-09-16T16:26:18-04:00</updated>
        <summary>First, a minor confession, I dislike loathe databases. The only thing I may loathe more are the self-appointed high-priests of databases, DBA's. However, They are a necessary evil. Invariably, most software solutions need one, so I begrudgingly accept its role....</summary>
        <author>
            <name>Michael Webb</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Technology" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p class="MsoNormal"&gt;First, a minor confession, I dislike &lt;del&gt;loathe&lt;/del&gt; databases. &lt;del&gt;The only thing I may loathe more are the self-appointed high-priests of databases, DBA's.&lt;/del&gt; However, They are &lt;del&gt;a&lt;/del&gt;
necessary&lt;del&gt; evil&lt;/del&gt;. Invariably, most software solutions need one, so I &lt;del&gt;begrudgingly&lt;/del&gt;
accept its role. My major complaint is that the industrial solutions that exist
today are all some form of Relational Database Management System (RDMS).
Working with them always is a hassle. The software I write has nice little
object abstractions for the entities I deal with it – it's great. I don’t worry
much about how they do what they do – they just do it. That is until I must
bridge the &lt;a href="http://en.wikipedia.org/wiki/Object-Relational_impedance_mismatch"&gt;great impedance mismatch&lt;/a&gt; to get them in and out of the RDMS. &lt;/p&gt;





&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;There are many solutions to this problem – most of which I
am continually disappointed with. There are several Object-To-Relational
Mapping (ORM) solutions out there; most of which I despise. Why? Well, they ask
me to know too much about the database (remember I loathe them???). I don’t
want to design stored procedures, I don’t want to design tables, and I don’t
want to map the two. I want to build objects!&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;Why must I:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ul type="disc" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;Maintain data layout information in two places?&lt;/li&gt;

&lt;li class="MsoNormal"&gt;Know some less than conformant version of SQL syntax?&lt;/li&gt;

&lt;li class="MsoNormal"&gt;Deal with a mess of SQL scripts as I adjust the definition of objects over time?&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;p class="MsoNormal"&gt;In my previous commercial existence, I and some very
talented folks have waded right into this problem. The first time we tackled
the problem, it was to provide an RDMS like view of network data. As things
went forward, we realized we wanted to address this problem in such away as the
backing store did not matter. In other words, the objects we requested
information from could be backed up by a database, network calls, excel
spreadsheets, etc. You get the idea!&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Before you all start posting comments, yes I have heard of
ODBC, ADO.NET, WMI, CSLA, and Hibernate. Hold your horses. Each of these
doesn’t really help solve the problem I want solved. I DON”T WANT TO DEAL WITH
THE DATABASE.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Further, when querying I am a huge fan of Query by Example
(QBE). Let me show you an object and you give me back a list of them that look
like it.&lt;/p&gt;


&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;Here is how this works (lights, camera, pseudo-code):&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;Formula exemplar = new Formula();&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;IStore store =
ServiceFactory.Instance.Retrieve&amp;lt;IStore,Formula&amp;gt;();&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;exemplar.Email = ‘mwebb@tribalpizza.com’;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p class="Courier"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;Console.WriteLine (“My formulas”);&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;foreach (Formula f in store.Retrieve (exemplar))&lt;br /&gt;{&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;em&gt;&lt;span style="color: #000000;"&gt;Console.WriteLine (f.Display);&lt;br /&gt;
}&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;Yes, this is how our current system works. Short, sweet, and
to the point.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;In dealing with this problem, I want to work with three real
abstractions:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ul type="disc" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;An entity&lt;/li&gt;

&lt;li class="MsoNormal"&gt;An entity’s definition&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A store&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;





&lt;p class="MsoNormal"&gt;An entity is just that -- well let’s say something like a
Pizza Formula. I want to describe its properties, their constraints, relevant
data-types, and be done. We’ll call this description an entity’s definition.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;



&lt;p class="MsoNormal"&gt;A store is a place to store and retrieve entities from. &lt;/p&gt;



&lt;p class="MsoNormal"&gt;Here is how I want life to work:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ol type="1" start="1" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;I describe an entity declaratively&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A code generator creates me a magic wrapper for ease of dealing with the entity. This is not entirely necessary but damn handy. The system needs to be able to retrieve and operate on entities for which these wrappers don’t exist though! &lt;/li&gt;

&lt;li class="MsoNormal"&gt;A store is selected based on an implementation of the service factory and the type of identity. This gives me great flexibility in changing out backing store as well as potentially selecting the type (and characteristics) of the backing store based on entity.&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A store must be able to read an entities’ definition and create the necessary backing store for the entity. Period! I don’t want to help it. Read the definition and create the store. I’m not creating your SQL scripts, got it.&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A store must be able to read an entity’s definition and realize that a newer description exists. The store must be able to take reasonable actions to upgrade the backing store to realize these changes. When I say reasonable, I say the store should be smart enough to handle the additions of columns. Changing the data-type and/or deleting of columns may be beyond the capability of the store. I generally try to avoid these operations anyways.&lt;/li&gt;

&lt;li class="MsoNormal"&gt;A store must be able to perform relevant read, delete, and update operations. &lt;/li&gt;

&lt;li class="MsoNormal"&gt;I want to be able to access existing data without having the original data definitions. How? Well, easy, the backing store is also responsible for keeping track of the data definitions used to create objects. Wow! This has huge implications. More to come on this in the future.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/li&gt;&lt;/ol&gt;





&lt;p class="MsoNormal"&gt;Now, I know I loose some things:&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;ol type="1" start="1" style="margin-top: 0in;"&gt;&lt;li class="MsoNormal"&gt;I may not be able to eeck out every micro-second of performance that a perfectly tuned SQL script could offer. However, I intend to deal with this problem another way. The selection of which store to use is done by requesting a store from a service factory based on entity. This allows me to *tune* up specialized stores for performance critical entities that have special characteristics. I shouldn’t need to do this much, but, I have a back door if needed.&lt;/li&gt;

&lt;li class="MsoNormal"&gt;I am accepting some amount of lowest common denominator in backing store capabilities. Again, if this is a challenge see my solution to the problem above.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/li&gt;&lt;/ol&gt;





&lt;p class="MsoNormal"&gt;I’ve made some pretty good progress on a solution that works
for us. This is the first part in my series of explaining the design philosophy and its inner workings. Eventually,
we will be sharing an open source solution to this problem.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;What are your thoughts on the great impedance mismatch and my approach to the
problem?&lt;/p&gt;

&lt;p class="MsoNormal"&gt;
&lt;br /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=RHl_zIDtgOI:aoWadlN8W4A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=RHl_zIDtgOI:aoWadlN8W4A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=RHl_zIDtgOI:aoWadlN8W4A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=RHl_zIDtgOI:aoWadlN8W4A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=RHl_zIDtgOI:aoWadlN8W4A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=RHl_zIDtgOI:aoWadlN8W4A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=RHl_zIDtgOI:aoWadlN8W4A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=RHl_zIDtgOI:aoWadlN8W4A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/RHl_zIDtgOI" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/dealing-with-th.html</feedburner:origLink></entry>
    <entry>
        <title>Fun With Animoto</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/MFzdrgIqwSI/fun-with-animot.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/fun-with-animot.html" thr:count="1" thr:updated="2007-09-04T14:07:42-04:00" />
        <id>tag:typepad.com,2003:post-38454299</id>
        <published>2007-09-04T09:50:48-04:00</published>
        <updated>2007-09-04T09:50:48-04:00</updated>
        <summary>Sometimes you want to tell a story. Sometimes you want to tell a poetry-slam haiku in video form -- that's what Animoto (http://www.animoto.com) let's you do. Upload some photos, upload some music, and drop it into their rendering queue. Not...</summary>
        <author>
            <name>Jay Grieves</name>
        </author>
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;object width="432" height="250" id="W46dd5d4835853f72" quality="high" data="http://widgets.clearspring.com/o/46928cc51133af17/46dd5d4835853f72" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="movie" value="http://widgets.clearspring.com/o/46928cc51133af17/46dd5d4835853f72" /&gt;&lt;param name="scaleMode" /&gt;&lt;param name="allowNetworking" value="all" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="flashvars" /&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;
Sometimes you want to tell a story.&amp;nbsp; Sometimes you want to tell a poetry-slam haiku in video form -- that's what Animoto (&lt;a href="http://www.animoto.com"&gt;http://www.animoto.com&lt;/a&gt;) let's you do.&amp;nbsp; Upload some photos, upload some music, and drop it into their rendering queue.&amp;nbsp; Not happy with version 1.0?&amp;nbsp; Hit remix and watch again.&amp;nbsp; These are some photos -- courtesy of Ecor Rouge Photography (&lt;a href="http://www.ecorrouge.com/photography"&gt;http://www.ecorrouge.com/photography&lt;/a&gt;) -- taken in our warehouse a couple of weeks ago.&lt;/p&gt;

&lt;p&gt;If you don't see the video, click through to this post.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=MFzdrgIqwSI:dUIAkv6KiC8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=MFzdrgIqwSI:dUIAkv6KiC8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=MFzdrgIqwSI:dUIAkv6KiC8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=MFzdrgIqwSI:dUIAkv6KiC8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=MFzdrgIqwSI:dUIAkv6KiC8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=MFzdrgIqwSI:dUIAkv6KiC8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=MFzdrgIqwSI:dUIAkv6KiC8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=MFzdrgIqwSI:dUIAkv6KiC8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/MFzdrgIqwSI" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/fun-with-animot.html</feedburner:origLink></entry>
    <entry>
        <title>Higher Highs, Lower Lows</title>
        <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TribalPizza/~3/ijDmVweODPc/higher-highs-lo.html" />
        <link rel="replies" type="text/html" href="http://blog.tribalpizza.com/2007/09/higher-highs-lo.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-38360249</id>
        <published>2007-09-01T12:13:04-04:00</published>
        <updated>2007-09-01T12:13:04-04:00</updated>
        <summary>I read a lot about startups. Blogs, books, magazines, pretty much anything I can get my hands on. A lot of people talk about "the roller coaster ride" of starting a company, which seems like a great analogy until you...</summary>
        <author>
            <name>Jay Grieves</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Startup Life" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blog.tribalpizza.com/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;a href="http://goodjuju.typepad.com/photos/uncategorized/2007/09/01/admitone.jpg"&gt;&lt;img width="200" height="107" border="0" alt="Admitone" title="Admitone" src="http://blog.tribalpizza.com/images/2007/09/01/admitone.jpg" style="margin: 0px 5px 5px 0px; float: left;" /&gt;&lt;/a&gt;I read a lot about startups.&amp;nbsp; Blogs, books, magazines, pretty much anything I can get my hands on.&amp;nbsp; A lot of people talk about &amp;quot;the roller coaster ride&amp;quot; of starting a company, which seems like a great analogy until you actually do it.&lt;/p&gt;

&lt;p&gt;Sure, there are lots of ups and downs.&amp;nbsp; There's definitely excitement.&amp;nbsp; Certainly an admission fee must be paid.&amp;nbsp; Sounds just like a roller coaster, right?&amp;nbsp; If this were the case then any adrenaline junkie with the cost of the ticket in his pocket would jump right in.&lt;/p&gt;

&lt;p&gt;Here's the problem: the &amp;quot;lows&amp;quot; aren't the dips in the ride.&amp;nbsp; The dips in the ride are simply part of the excitement -- they're fun, they add to the experience.&amp;nbsp; The real lows are the wait in line between rides.&amp;nbsp; You need to not only crave the ride, you have to be able to stick it out to get on in the first place.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Most of what I read hints at the wait in line, but no one ever seems to capture it fully, probably because by the time they write about their experience they've forgotten just how bad the line can be.&amp;nbsp; So, here's my addition to the analogy to try to give you an idea of how low the lows can go:&amp;nbsp; &lt;strong&gt;Sometimes while waiting in line, you'll be set on fire.&lt;/strong&gt;&amp;nbsp; That's right, actually engulfed in flames.&amp;nbsp; The rules are simple: if you wait it out and make it to the front of the line, all of the physical damage will disappear and you get to ride.&amp;nbsp; If you step out of line, the flames go out, but the damage remains.&amp;nbsp; You are informed of this rule not at the beginning of your wait, but right about the time you can see the boarding area.&amp;nbsp; You will have just enough time to say, &amp;quot;You must be fuh&amp;quot; before the match is struck and the heat is on.&lt;/p&gt;

&lt;p&gt;There are two questions, then: Do you ever even consider getting on the ride?&amp;nbsp; After having not only shuffled along in line but having done so while on fire, do you get back in line to ride again?&amp;nbsp; If the answer to either of these is no, then you're probably best off just grabbing a funnel cake and watching the show.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=ijDmVweODPc:6Rrx_4N_UBA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=ijDmVweODPc:6Rrx_4N_UBA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=ijDmVweODPc:6Rrx_4N_UBA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=ijDmVweODPc:6Rrx_4N_UBA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=ijDmVweODPc:6Rrx_4N_UBA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=ijDmVweODPc:6Rrx_4N_UBA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TribalPizza?a=ijDmVweODPc:6Rrx_4N_UBA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TribalPizza?i=ijDmVweODPc:6Rrx_4N_UBA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TribalPizza/~4/ijDmVweODPc" height="1" width="1"/&gt;</content>


    <feedburner:origLink>http://blog.tribalpizza.com/2007/09/higher-highs-lo.html</feedburner:origLink></entry>
 
</feed><!-- ph=1 --><!-- nhm:dynamic-ssi -->
