<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>interfacelab</title>
	
	<link>http://interfacelab.com</link>
	<description />
	<pubDate>Wed, 02 Jul 2008 18:04:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Interfacelab" type="application/rss+xml" /><feedburner:emailServiceId>2111142</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>Filmmakers Finding New Action Online</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/325082358/</link>
		<comments>http://interfacelab.com/filmmakers-finding-new-action-online/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 18:04:39 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[Massify]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=28</guid>
		<description><![CDATA[Filmmakers finding new action online &#124; Web Scout &#124; Los Angeles Times
Got great coverage about Massify in the LA times.  Go Massify!










]]></description>
			<content:encoded><![CDATA[<p><a href="http://latimesblogs.latimes.com/webscout/2008/07/massifyfilmakaj.html">Filmmakers finding new action online | Web Scout | Los Angeles Times</a></p>
<p>Got great coverage about Massify in the LA times.  Go Massify!</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ffilmmakers-finding-new-action-online%2F&amp;title=Filmmakers+Finding+New+Action+Online" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=t88i3J"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=t88i3J" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=BXFj4j"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=BXFj4j" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=t5I2xJ"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=t5I2xJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=3TiTxj"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=3TiTxj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=TrQgtJ"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=TrQgtJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=9XRWyJ"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=9XRWyJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=kHRp3j"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=kHRp3j" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/325082358" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/filmmakers-finding-new-action-online/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/filmmakers-finding-new-action-online/</feedburner:origLink></item>
		<item>
		<title>Wordle</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/318265618/</link>
		<comments>http://interfacelab.com/wordle/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:31:19 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=26</guid>
		<description><![CDATA[Found this awesome toy today.











]]></description>
			<content:encoded><![CDATA[<p>Found this awesome toy today.</p>
<p><a title="Wordle: Awesome" href="http://wordle.net/gallery/wrdl/13019/Awesome"><img style="padding:4px;border:1px solid #ddd" src="http://wordle.net/thumb/wrdl/13019/Awesome" alt="" /></a></p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Finterfacelab.com%2Fwordle%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Finterfacelab.com%2Fwordle%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Finterfacelab.com%2Fwordle%2F&amp;title=Wordle" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=mP0gBI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=mP0gBI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=fpNHfi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=fpNHfi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=0XOaWI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=0XOaWI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=n9zXii"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=n9zXii" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=QpNjeI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=QpNjeI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=PzTB9I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=PzTB9I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=uJ4Mni"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=uJ4Mni" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/318265618" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/wordle/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/wordle/</feedburner:origLink></item>
		<item>
		<title>Ciarán Walsh’s Blog » TextMate Tip – Using PHP for Commands</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/318247070/</link>
		<comments>http://interfacelab.com/tip-php-for-commands-textmate/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:29:18 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=25</guid>
		<description><![CDATA[Ciarán Walsh’s Blog » TextMate Tip – Using PHP for Commands
A must read for anyone doing php development with TextMate.  I&#8217;m about 50/50 between TM and Eclipse, trying to wean myself over slowly.










]]></description>
			<content:encoded><![CDATA[<p><a href="http://ciaranwal.sh/2008/04/04/textmate-tip-using-php-for-commands">Ciarán Walsh’s Blog » TextMate Tip – Using PHP for Commands</a></p>
<p>A must read for anyone doing php development with TextMate.  I&#8217;m about 50/50 between TM and Eclipse, trying to wean myself over slowly.</p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ftip-php-for-commands-textmate%2F&amp;title=Ciar%C3%A1n+Walsh%E2%80%99s+Blog+%C2%BB+TextMate+Tip+%E2%80%93+Using+PHP+for+Commands" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=1lXcnI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=1lXcnI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=XBCk2i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=XBCk2i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=8HSfCI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=8HSfCI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=jFvNPi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=jFvNPi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=LJRYhI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=LJRYhI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=DSUXKI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=DSUXKI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=xxnU6i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=xxnU6i" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/318247070" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/tip-php-for-commands-textmate/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/tip-php-for-commands-textmate/</feedburner:origLink></item>
		<item>
		<title>Feedburner WP Plugin Category Fix</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/314406962/</link>
		<comments>http://interfacelab.com/feedburner-wp-plugin-fix/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 07:07:30 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=23</guid>
		<description><![CDATA[I&#8217;ve patched the current Feedburner 2.3 plugin to support feedburner feeds for categories.
When you install the plugin and activate it, navigate to Settings -> Feedburner.
You should now see options for adding in URL&#8217;s for all of your category rss feeds.
Download here.
Note: The url for your feeds by category should be by name, eg:
http://interfacelab.com/feed?category_name=php










]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve patched the current Feedburner 2.3 plugin to support feedburner feeds for categories.</p>
<p>When you install the plugin and activate it, navigate to Settings -> Feedburner.</p>
<p>You should now see options for adding in URL&#8217;s for all of your category rss feeds.</p>
<p><a href="http://interfacelab.com/code/feedburner2.3.catfix.zip">Download here</a>.</p>
<p>Note: The url for your feeds by category should be by name, eg:</p>
<p><a href="http://interfacelab.com/feed?category_name=php">http://interfacelab.com/feed?category_name=php</a></p>

<span class="slashdigglicious">
<a href="http://slashdot.org/bookmark.pl?url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Slashdot It!"><img src="http://slashdot.org/favicon.ico" height="16" width="16" alt="[Slashdot]" /></a>
<a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Digg This Story"><img src="http://digg.com/favicon.ico" width="16" height="16" alt="[Digg]" /></a>
<a href="http://reddit.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Reddit"><img src="http://reddit.com/favicon.ico" width="16" height="16" alt="[Reddit]" /></a>
<a href="http://del.icio.us/post?url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Save to del.icio.us" onclick="window.open('http://del.icio.us/post?v=4&amp;noui&amp;jump=close&amp;url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix', 'delicious', 'toolbar=no,width=700,height=400'); return false;"><img src="http://del.icio.us/favicon.ico" width="16" height="16" alt="[del.icio.us]" /></a>
<a href="http://www.facebook.com/share.php?u=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F" title="Share on Facebook"><img src="http://www.facebook.com/favicon.ico" width="16" height="16" alt="[Facebook]" /></a>
<a href="http://technorati.com/faves?add=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F" title="Add to my Technorati Favorites"><img src="http://technorati.com/favicon.ico" width="16" height="16" alt="[Technorati]" /></a>
<a href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Save to Google Bookmarks"><img src="http://www.google.com/favicon.ico" width="16" height="16" alt="[Google]" /></a>
<a href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Finterfacelab.com%2Ffeedburner-wp-plugin-fix%2F&amp;title=Feedburner+WP+Plugin+Category+Fix" title="Stumble it!"><img src="http://www.stumbleupon.com/favicon.ico" width="16" height="16" alt="[StumbleUpon]" /></a>
</span><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=tDHp7I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=tDHp7I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=WsJU7i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=WsJU7i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=IwHYbI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=IwHYbI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=KuHe9i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=KuHe9i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=Nhz96I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=Nhz96I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=fOoR5I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=fOoR5I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=aOwcNi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=aOwcNi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/314406962" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/feedburner-wp-plugin-fix/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/feedburner-wp-plugin-fix/</feedburner:origLink></item>
		<item>
		<title>Variables in CSS via PHP</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/314292671/</link>
		<comments>http://interfacelab.com/variables-in-css-via-php/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 03:19:10 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=22</guid>
		<description><![CDATA[UPDATED: Added support for expressions with variables so that you can add, multiply, divide, etc. variables when using them in the CSS.  See below for more info.
Back in April of 2008, I came across a proposal by Daniel Glazman and David Hyatt for using variables in CSS stylesheets.  I thought the proposal was absolutely [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATED:</strong> Added support for expressions with variables so that you can add, multiply, divide, etc. variables when using them in the CSS.  See below for more info.</p>
<p>Back in April of 2008, I came across a <a href="http://disruptive-innovations.com/zoo/cssvariables/">proposal</a> by Daniel Glazman and David Hyatt for using variables in CSS stylesheets.  I thought the proposal was absolutely brilliant, filling a much needed void for sites using complicated stylesheets across a variety of different pages.  Another part of their proposal was being able to include/import other stylesheets.  I don&#8217;t know anyone that couldn&#8217;t find this useful.</p>
<p>I put together a quick class for implementing most of their proposal using PHP.  Nothing fancy going on here, most of it is some simple regexes.</p>
<p><a href="http://interfacelab.com/code/css_compiler.zip">Download the code here</a>.</p>
<p><span id="more-22"></span></p>
<p><strong>Using the CSS Compiler</strong></p>
<p>Let&#8217;s first talk about how to setup your CSS stylesheets to use variables and imports.</p>
<p><strong>Important:</strong> Any stylesheet that uses variables or includes stylesheets that use variables <strong>must</strong> end with the extension &#8216;<strong>.cssp</strong>&#8216;.</p>
<p>To declare variables, you place them within an @variables at-rule like so:</p>
<pre name="code" class="css">

@variables
{
    titleFont:bold 18px &quot;Verdana, Arial&quot;;
    titleBG: #FF0000;
}
</pre>
<p>To use the variables:</p>
<pre name="code" class="css">

div.title { font: var(titleFont); background: var(titleBG); }
</pre>
<p>Couldn&#8217;t get much simpler.</p>
<p><strong>Importing CSS and Variables</strong></p>
<p>You can also import/include css and variables from an external stylesheet using @import:</p>
<pre name="code" class="css">

@import &quot;vars.cssp&quot;;

div.title { font: var(defaultFont); };
</pre>
<p>Alternately:</p>
<pre name="code" class="css">

@import url(&quot;vars.cssp&quot;);

div.title { font: var(defaultFont); };
</pre>
<p><strong>Evaluating Expressions</strong></p>
<p>You can also perform math operations with measurement units.  For instance, you could do something like:</p>
<pre name="code" class="css">

@variables {
    lc_width: 240px;
    rc_width: 180px;
    all_padding: 20px;
}

#some_div {
    width: eval((lc_width+rc_width)-(all_padding*2));
    padding: eval(all_padding/2);
}
</pre>
<p>You can only do this with px/em/% measurement units and the units must match.  For instance you can&#8217;t add a variable that is 2em with another that is 120px.  Doing so will throw an exception.  Also, if you use a variable reference that doesn&#8217;t exist, it will also throw an Exception.</p>
<p><strong>Using in HTML Pages</strong></p>
<p>To use these stylesheets, you&#8217;re going to have to write a little PHP, but not too much:</p>
<pre name="code" class="php">

&lt;?
    // include the compiler
    include &#039;css_compiler.php&#039;;

    // set the compile environment variable
    // otherwise it will spit out a static file
    // in a production environment comment this out:
    define(&#039;COMPILE_CSS&#039;,true);
?&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;? style(dirname(__FILE__),&#039;testing&#039;); ?&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div class=&quot;nice&quot;&gt;Hello World&lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>At the top of this file, we&#8217;re including the css compiler and then defining a global variable <strong>COMPILE_CSS</strong>.  <strong>COMPILE_CSS</strong> tells the compiler to do the compilation and save the resulting .css files.  You will not want to do this in a production environment, so comment out the define when deploying to the masses.</p>
<p>In the head tags, the style() function is a helper function that compiles the css.  The first argument is the full path to where the css is.  The second argument is the css file to use without it&#8217;s extension.  Note: if your css files have a relative path of /css/whatever.css on your webserver, the relative path should be part of the second argument and not the first.</p>
<p>For example, let&#8217;s say our PHP application is located at /var/www/.  Our css files are located at /var/www/css/.  Our style function is going to look like:</p>
<pre name="code" class="php">

style(&#039;/var/www/&#039;,&#039;/css/testing&#039;);
</pre>
<p>Our actual usage of this code at <a href="http://massify.com/">massify</a> is way different.  I&#8217;ve added the style() function so that people reading this blog can use it, but you should definitely do your own legwork to blend it into whatever framework you are using.  This should be enough to get started however.</p>
<p>Also, make sure that your css directory is writable by your webserver or the whole thing won&#8217;t work at all.</p>
<p>Leave a comment or <a href="mailto:jon.gilkison@gmail.com">drop me a line</a> if you find this useful/find bugs/have suggestions.</p>
<p>Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=5Hwl2I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=5Hwl2I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=MEooCi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=MEooCi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=joZSdI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=joZSdI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=tKF3Si"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=tKF3Si" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=sNEumI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=sNEumI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=tt3NkI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=tt3NkI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=zhCcVi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=zhCcVi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/314292671" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/variables-in-css-via-php/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/variables-in-css-via-php/</feedburner:origLink></item>
		<item>
		<title>Metadata/Attributes in PHP</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/312891159/</link>
		<comments>http://interfacelab.com/metadataattributes-in-php/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 07:56:09 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://interfacelab.com/metadataattributes-in-php/</guid>
		<description><![CDATA[There&#8217;s a ton of stuff I miss from C#, having moved to PHP. Did I say a ton? I meant a megaton.
One of the things I miss the most (besides the sanity) are attributes (annotations for Java peeps). To be able to ascribe metadata to class, method and property definitions opens up a whole new [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a ton of stuff I miss from C#, having moved to PHP. Did I say a ton? I meant a megaton.</p>
<p>One of the things I miss the most (besides the sanity) are attributes (<a href="http://en.wikipedia.org/wiki/Java_annotations" target="_blank">annotations</a> for Java peeps). To be able to ascribe metadata to class, method and property definitions opens up a whole new world of introspection which enables you to do some pretty wicked hacks.</p>
<p>In this post, I present a PHP class that allows you to do metadata/attribute programming with PHP.  You can download the class <a href="http://interfacelab.com/code/attribute.zip">here</a>.  But before we dig in, we must understand what attributes are and how they are useful&#8230;</p>
<p><span id="more-21"></span></p>
<p><strong>Introduction to Attributes</strong></p>
<p>For those that don&#8217;t know about attribute based programming, let me quote an excerpt from <a href="http://www.ondotnet.com/pub/a/dotnet/excerpt/prog_csharp_ch18/index.html" target="_blank">OnDotnet</a>:</p>
<blockquote><p>Attributes are a mechanism for adding metadata, such as compiler instructions and other data about your data, methods, and classes, to the program itself. Attributes are inserted into the metadata and are visible through ILDasm and other metadata-reading tools.</p>
<p>Reflection is the process by which a program can read its own metadata. A program is said to reflect on itself, extracting metadata from its assembly and using that metadata either to inform the user or to modify its own behavior.</p></blockquote>
<p>One of the last things I wrote in C# before switching over was a simplistic REST-esque framework for web services for C#. I used attributes on classes to mark which ones were exposed to the outside world and then used attributes on the methods to specify such things as the URI, description, etc. This allowed the services to be discoverable versus declared and to be self documenting. For example:</p>
<pre name="code" class="c#">

namespace SimpleWebService {
    [RestService(baseURI=&#039;/simple/&#039;,Name=&#039;Simple&#039;, Description=&#039;Simple service&#039;, Persistent=false)]
    class Service
    {
        [RestMethod(URI=&#039;something&#039;,Name=&#039;Do Something&#039;,Description=&#039;Does something.&#039;)]
        public void DoSomething()
        {
            // &#8230;
        }
    }
}
</pre>
<p>In the above example, the attributes are declared in the brackets.  On our <strong>Service</strong> class, we give the service a name, define it&#8217;s base URI, give it a description and declare if the service is persistant between requests (meaning that the class is only instantiated once, or is instantiated every time).  On the <strong>DoSomething</strong> method it&#8217;s a similar deal: we declare the URI endpoint for the method, the name of the method and it&#8217;s description.</p>
<p>By going to <strong><em>http://example.com/simple/something</em></strong> would eventually invoke the <strong>DoSomething</strong> method on our <strong>Service</strong> class.  The beautiful thing here is that my classes needn&#8217;t implement any interfaces or descend from any parent classes to be exposed as a web service.  I could drop the attributes on the class, recompile and they would then be instantly available.  When the application loaded, it scanned all of the classes in the loaded assemblies, did some reflection on them and created a cache of exposed services.  An <a href="http://www.developerfusion.co.uk/show/4643/" target="_blank">HTTPHandler</a> would dispatch the incoming requests to the corresponding service, map any POST/GET or URI fragments to the parameters of the method being called and then returned the results of the method call as serialized XML.</p>
<p>Nice and easy.</p>
<p><strong>Attributes and PHP</strong></p>
<p>PHP has no built-in mechanism for declaring attributes, but it does have a primitive retrospection capability.  For any class or function in PHP, there are a set of functions that you can call that will provide information about the class.  For instance, with methods, you can get it&#8217;s parameters and any associated block of comments:</p>
<pre name="code" class="php">

class DumbClass
{
    /**
     * Comment block
     */
    public function thing($parameter,$another)
    {
        return false;
    }
}

$method=new ReflectionMethod(&#039;DumbClass&#039;,&#039;thing&#039;);
echo $method-&gt;getDocComment();
</pre>
<p>In the above example, we create an instance of the ReflectionMethod class and echo the comment block.  If we run this script, the output would look like:</p>
<pre name="code" class="php">

    /**
     * Comment block
     */
</pre>
<p>Now if we put 2 and 2 together, you&#8217;ll see that we could use the comment block to insert our class metadata.  Now all we need &#8230;</p>
<p><strong>Introducting AttributeReader</strong></p>
<p>The AttributeReader class is a simple class that extracts <a href="http://devzone.zend.com/article/2585-Using-YAML-With-PHP-and-PECL">YAML</a> from the comment block on a class, it&#8217;s methods or properties.  You can download the class <a href="http://interfacelab.com/code/attribute.zip">here</a>.  Note:  You must have the pecl syck package installed, details are <a href="http://pecl.php.net/package/syck">here</a>.</p>
<p>Since we have access to the comment block, it&#8217;s the most obvious place to express our metadata.  Obviously, the 100% correct solution would be to patch PHP to support attributes out of the box, but that&#8217;s a much bigger effort that would require some serious coding.  The performance of this method is fast enough for most use cases.</p>
<p>So how do we use this?  At <a href="http://massify.com">massify</a>, we use metadata for our ORM layer.  All of our models have metadata attached to them that define what database table to use, the column name, etc.  Here&#8217;s an example:</p>
<pre name="code" class="php">

/**
 * Sample model
 *
 * [[
 * table: sample.item
 * database: default
 * read_only: false
 * ]]
 *
 */
class Item extends Model
{
    //@ fields

    /**
     * [[
     * label: Title
     * type: string
     * length: 32
     * description: Title of the item
     * validate:
     *   required: true
     *   length: 8-32
     *   unique: true
     * ]]
     */
    public $title;

    /**
     * [[
     * label: URI
     * type: string
     * length: 32
     * description: URI of the item
     * validate:
     *   required: true
     *   length: 4-32
     *   unique: true
     *   format: alpha_numeric
     * ]]
     */
    public $uri;

    /**
     * [[
     * label: Description
     * type: text
     * description: Description of the item
     * ]]
     */
    public $description;

    //@ end fields
}
</pre>
<p>In the above example, our metadata is nestled between double brackets [[]].  Inside the double brackets is YAML expressing the metadata.  The cool thing here is that we can nest attributes of the metadata.  Let&#8217;s look at what we&#8217;ve done:</p>
<p>On the declaration for the Item class, we&#8217;ve described metadata that tells us which database table this model represents, which database it resides in and if it&#8217;s read_only (a view, in database parlance).  On the properties of the model, the metadata describes the label to use for forms, what the database type is (simplified), the length (for string types), a description and a list of validators.  For instance, on the $uri property, we&#8217;ve declared validators that make sure the property has a value before saving (required), is of a specified length (4-32 characters), is unique in the database (unique) and matches a specific format (alpha_numeric).</p>
<p>Since the class extends from Model, the model knows to use the metadata to build the correct SQL statements for insert, updates, etc.  It also knows how to validate itself when saved to the database, returning the correct errors to the user if any of the validations fail.  Finally, we are able to automatically build forms to edit the models by using the metadata as a guide when constructing the form in code.</p>
<p>All of this is completely possible to do without using metadata, but would require a lot of redundant code with a predetermined set of use cases.  Metadata frees us from this because we can write use cases that work with a known quantity, rather than the other way around.</p>
<p><strong>Using the AttributeReader</strong></p>
<p>Using the class is straight forward.  Here&#8217;s an example.  Let&#8217;s assume we have the Item model from the previous example loaded and want to extract metadata for it and it&#8217;s URI property:</p>
<pre name="code" class="php">

$item=new Item();

$class=AttributeReader::ClassAttributes($item);

echo $class-&gt;database;
echo $class-&gt;table;

$method=AttributeReader::PropertyAttributes($item,&#039;uri&#039;);

echo $method-&gt;label;
if ($method-&gt;validate-&gt;required)
    echo &quot;Required field&quot;;
else
    echo &quot;Not required.&quot;;
</pre>
<p>It&#8217;s that simple.</p>
<p><strong>Caveats</strong></p>
<p>Make sure you are familiar with the rules of YAML.</p>
<p>Performance is acceptable, but always make sure you measure performance for yourself.  We use a caching strategy via APC at <a href="http://massify.com">massify</a> for caching model metadata.  This requires that you restart apache if your models change (you can disable APC on your development/staging to get around this).  With the APC caching strategy, it&#8217;s super fast.  Find out what works best for you.</p>
<p>I hope people find this useful, I think it opens a whole new world for serious PHP development.  Feel free to drop me an <a href="mailto:jon.gilkison@gmail.com">email</a> if you have questions or successes.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=7OEKQI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=7OEKQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=cNUvIi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=cNUvIi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=CvNH8I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=CvNH8I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=O2UMIi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=O2UMIi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=Q5x5NI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=Q5x5NI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=aJzfiI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=aJzfiI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=M9dnxi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=M9dnxi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/312891159" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/metadataattributes-in-php/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/metadataattributes-in-php/</feedburner:origLink></item>
		<item>
		<title>Flying Solo</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/312835758/</link>
		<comments>http://interfacelab.com/quintuple-up/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 08:13:57 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[Poker]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=20</guid>
		<description><![CDATA[Dave had to head back to San Francisco, leaving me to fend for myself. I was initially hesitant, playing with a buddy is really the best way to go. You can protect each other in multi-way action, you can do some sick post game analysis and just sounding ideas on betting, constructing table image and what not always push the game to that next level.

Like a true degenerate, he tried to change his flight so we could cram in another 2/5 session, but the airlines weren't having it and he had to be back to San Fran at a time that made it unfeasible. There is a blurry line between a degenerate and a great player, and I think had he pushed the flight we'd have landed on the wrong side of that line.

I wish he had been there to see some of the sickness though.]]></description>
			<content:encoded><![CDATA[<p>Dave had to head back to San Francisco, leaving me to fend for myself.  I was initially hesitant, playing with a buddy is really the best way to go.  You can protect each other in multi-way action, you can do some sick post game analysis and just sounding ideas on betting, constructing table image and what not always push the game to that next level.</p>
<p><span id="more-20"></span></p>
<p>Like a true degenerate, he tried to change his flight so we could cram in another 2/5 session, but the airlines weren&#8217;t having it and he had to be back to San Fran at a time that made it unfeasible.  There is a blurry line between a degenerate and a great player, and I think had he pushed the flight we&#8217;d have landed on the wrong side of that line.</p>
<p>I wish he had been there to see some of the sickness though.</p>
<p><strong>Settling in By Myself</strong></p>
<p>Honestly, I wasn&#8217;t feeling up to another session of poker.  Dave and I had stumbled into an early morning game that same day and Dave had run a bad session while I landed up $800.  Truth be told we were both exhausted and off our games, but I honestly believe our half-game is two steps ahead of most people&#8217;s best games.  I know that sounds egotistical, and it is, but ego is an essential ingredient when playing poker.  If you can spike up your ego and have faith that you are a great player, that comes across the table in a confidence level that instantly sets up a favorable table image.  It carries through in your bluffs and your body language in general, making it that much harder for people to put you on hands and hesitant to call your pot spiking raises.</p>
<p>So I took some time to have a meal, write some notes on the early morning degenerate session and plan out a few scenarios for the next session.  I decided during dinner that I was going to hold off on the bluffing and practice a more trapping game using some betting strategy that Dave and I had talked about while waiting for his flight.  I also committed myself to an 8 hour session and I think this is important to highlight.  Telling yourself that you are going to play 8 hours or 10 hours frees you from the novice mistake of thinking you need to be involved in every monster pot or you have to play semi-strong hands when the correct play is to fold.  When you fold QJ, KJ, A10 or some other flopping/drawing hand, I always look at my watch and tell myself I have plenty more time for a more perfect setup.  When you rush you make mistakes.  Slow, deliberate play wins in the long run, so give yourself time and be lenient with yourself in making solid folds when things feel fishy.</p>
<p>I head to the 2/5 game at MGM and land on a table of monster stacks.  I was slightly intimidated until a little voice in my head told me &#8220;Those stacks belong to you.&#8221;</p>
<p>It&#8217;s all my brain had to do throw me into the game.  I did my standard start off of fold, watch and listen.  I think this is critical to my play.  I need to understand the table before I can start moving on it.  Additionally, by playing tight, or not at all, the pro&#8217;s will pick up that you are studying the action and throw a little respect your way when you do start showing up in some pots.</p>
<p><strong>Sick Ducks</strong></p>
<p>My first action pot had me with 22 in the small blind.  I have about $400 and some change, $100 over my $300 buy-in.  Button raises 35 bucks and I instantly put him on AK.</p>
<p>2/5 is real predictable in this way.</p>
<p>Any large pre-flop raise is almost certainly AA, AK, AQ or big pocket pair.  Unfortunately for the raiser, I had him down as a super weak stack and knew it was coin flip going into the flop so I call without hesitation.  Calling speed is critical, I&#8217;ve found.  When small blind calls without hesitation, weaker players start the sweat, specifically if he doesn&#8217;t have a made hand.  I personally feel that AK is a crap hand post-flop so calling here is a no brainer.  For 2/5 the best you can hope for is 2 pair or trips, but the flop rarely goes that way with AK.  Since I&#8217;m only 35 in with a made hand that he can&#8217;t put me on, it&#8217;s no sweat to fold to a flop favorable to his AK.</p>
<p>Flop falls down 2-4-J.  Mister AK has me on J-10 or JQ which is as perfect as perfect can be.  First to act, I spike the pot for $100 which I knew he would call with his two overs and two cards to come.  To my chagrin, he pushes all in which I call instantly since he&#8217;s drawing dead.  Two pair can&#8217;t save him.  Two running kings or aces gives me a full house.  If his AK is suited, he&#8217;ll need runner runner to catch a flush which I&#8217;ll gladly play off as a reward for letting me trap him in a sick hand.</p>
<p>I insta-call and make a mind fuck play of proudly flipping my 2&#8217;s and declaring his &#8220;AK suited&#8221; dead before he even shows.  I&#8217;ll eat my crow if the turn and river go his way.</p>
<p>But it doesn&#8217;t.  Another 4 comes on the turn, giving me a boat and his hand is dead as dead can be.</p>
<p>Double up puts me at $800 and I&#8217;m right in my comfort zone with my chip stack to start making moves.  My little show when I flip has broadcasted to the rest of the table that I have cahones the size of boulders which I take advantage of later to steal some pots with a few semi-bluffs.</p>
<p><strong>Mind Fuck Part Deux</strong></p>
<p>This was a picture perfect psychology play.</p>
<p>I&#8217;m dealt AA in 4th position.  I limp in for $5, which I honestly feel is the best play in early position holding AA because so many people have yet to act and I want a read on hands before I spike it.  3 callers and a bunch of folds follow.  The guy in the small blind raises 35 bucks.  Hello AJ!</p>
<p>Action comes back to me, with button calling Mister AJ&#8217;s raise.  I do a fairly obvious re-checking of my hand, sprinkling the top with some feigned running of the math, so that Mister AJ puts me on QQ or KK.  Dude on the button is of no concern to me.  He&#8217;s calling with small pair or 9-10 hoping to hit a flop.  I re-raise $100 on top, honestly hoping to take it down right here, but knowing that Mister AJ is likely to call because he&#8217;s a total fish.</p>
<p>He hems and haws but finally calls.  He acts like he can&#8217;t put me on a hand, but I know he has me on QQ or KK.  Someone holding AA would have spiked from 4th seat and not had to re-check their cards or spend some time thinking about his raise.  I know that post-flop I&#8217;m going to play a very dirty trick and I think I would only allow myself to do this once per session because it&#8217;s such a filthy move.</p>
<p>Before I tell you what I did, I want to tell you why I did it.  There is a chance I have misread, but misreading with AA in the pocket is acceptable.  If he has KK or QQ, then he has me on AJ or AQ.  To illicit a call if he does have KK or QQ, I&#8217;m going to have to induce him into doing it.  Honestly, I don&#8217;t really think this guy can put me on any hand at all, he just doesn&#8217;t seem that good of a player.  If he&#8217;s holding KK or QQ, hell even AQ/AJ/AK, he&#8217;s going to replay some move he saw on television and walk right into my trap.</p>
<p>The flop comes down junk.  There is a pause right after the dealer flips the flop and I jump in declaring &#8220;All In&#8221; acting out of position.</p>
<p>Told you this was a filthy dirty move.</p>
<p>A savvy player might see my trap right there, but I&#8217;ve consciously broadcasted to the guy that I&#8217;m very eager to play my KK or QQ with this kind of flop by declaring my intentions out of turn.  Since he was suppose to be first to act, the dealer tells me to cool my jets and turns to the guy to have him act.  The guy checks to me and I instantly redeclare my All In.  Thanks for helping me with my play Mr. Dealer!</p>
<p>Before I tell you what happened, I want to point out that I&#8217;m perfectly happy at this point to take the pot down if Mister AJ folds to my All In.  David is big on maximizing value for a hand, which is awesome playing, but I put a little less importance on it because too many times you can get caught in some weird crossfire that junks your winning hand when you could have walked off with the pot on post-flop action.  Here is where setting an amount of time for play is important because you can thrive on picking up $100-$200 pots here and there to slowly build up your stack.  Patience pays in spades.</p>
<p>At first, I think the guy is going to fold.  I have around $900 in front of me, with about $300 in the pot.  He has around $700 in front of him (most of which he picked up on a bullshit gutshot draw that got him a lot of heat from the table for sucking out).  He calls, flipping over AQ so my read was pretty damn close.  A solid player would have folded, and I honestly think this guy would have folded too had I not acted so dirty.  By coming out as an eager beaver and/or a bully, he wants to &#8220;teach me a lesson&#8221; or pull out a &#8220;Degree All-In Moment&#8221;.  Wrong move.</p>
<p>Needless to say the rest of the board came out junk and I took it down.  You wouldn&#8217;t believe the incredulous table banter that exploded from the solid players as I raked in chips.  One guy that I had been paying a shitload of respect to calls me out for limping in 4th position with pocket AA&#8217;s telling me what a dumb move that was.  If there is one thing that can easily drop me on tilt, it&#8217;s when a respected player does post play analysis on the way I&#8217;ve played.  As I&#8217;m raking in the reds, I turn to the guy and say:</p>
<p>&#8220;Dude, this table is so soft it&#8217;s like butter.  The guy over here (pointing to the guy whom I had just busted) is going to call with any sizable pocket pair and his raise told me he was on AJ/KK/QQ.  I limp and the flop comes down as the perfect trap.  I&#8217;m not afraid of getting my aces cracked at all.  I can throw that shit away all day and not cry about it.  And, shit, it&#8217;s not like I didn&#8217;t broadcast what I had with my re-raise and my all-in.  It&#8217;s his fault he let me put him in that trap.  Furthermore, how the hell is anyone going to put me on a hand for the next hour?  I respect your plays man, but after this not even you are going to be able to put me on a hand and trust me I&#8217;m going to play that to the tilt.&#8221;</p>
<p>I know I gave up way too much information here, but I did it on purpose.  I wanted the table to know that I played that hand hard and it wasn&#8217;t random luck.  I wanted them to know that I was observing and had people&#8217;s plays pegged.  While it gave me the asshole image at the table, it also gives me the semi-pro/pro image and that&#8217;s going to have people back off when I start pulling out my semi-bluffs and bluffs.</p>
<p><strong>Cracking Rocks</strong></p>
<p>The guy in seat 9 I had played in a couple of other sessions and knew him to be a bit of an ATM machine.  Definitely not good at reading other players, but I will give him credit for otherwise being a very tight player willing to grind it out until he hits a good hand.</p>
<p>I&#8217;m in the small blind with pocket 6&#8217;s.  I raise 35 hoping for a single caller and everyone folds except for The Rock.  He calls and I&#8217;m assuming AJ/AQ.  Did I mention 2/5 was predicatable in this way?</p>
<p>The flop comes down perfect.  A-J-6, rags.  I check to him and he raises 50.  I smooth call and the turn comes junk so I know I&#8217;m good.  I&#8217;ll pay JJ off, but I don&#8217;t put The Rock on JJ with his call on my pre-flop raise.  I lead out with $75 and he insta-calls and I have to put him on AJ because he&#8217;s going to protect his set of jacks with a re-raise or an All-In which I can&#8217;t call.  He could be laying a trap with AA, but he&#8217;s not that good and at this point he&#8217;s afraid of me, but - like the other dude - wants to snap a piece off the bully.</p>
<p>River comes more junk, the only possible hands in play are set over set, but I have him on 2 pair.  I check to him and he bets $75 which I promptly reraise to $200.  Pow, right in the kisser.</p>
<p>He runs the math and realizes that he&#8217;s priced into the pot.  I&#8217;m hoping for an all-in move, but he simply calls the $200 and I flip the set.  He shows AJ and storms from the table.  There is deathly silence as I pull in the pot and stack it up.  When he returns to the table, obviously steaming at his bad play, I can overhear him and another guy running post-play analysis.  The end result is that he should have pushed me on the turn with an all-in raise which I would have had to fold because he&#8217;d be representing JJ and his set would have been larger.  His mistake was putting me on AK, but honestly I don&#8217;t expect that anyone could have put me on sixes with an out of position raise like that.</p>
<p><strong>Rack Em Up</strong></p>
<p>This is probably the best move I made during that session.  I racked up my chips when I had quintupled up.  I could have stayed and grinded longer, but the math showed me I was making $300 an hour for 5 hours of play.  I had just lost about $150 in a bluff gone bad, so I made the right choice to close that session out.  I know I had planned to play for 8 hours, but it struck me as a better idea to rack up, take a break for a few hours and write about the session so that I could make notes on my plays.  I&#8217;ll be heading back for another session soon with the assumption that I&#8217;ll play for another 10 hours.</p>
<p>After the degenerate analysis with David, I&#8217;ve decided I have a strict single $300-$400 buy-in policy for 2/5.  If I lose that buy-in I leave the table and take a walk/nap/meal.  It hasn&#8217;t happened yet, but the biggest mistake I&#8217;ve seen repeatedly is people buying and rebuying over and over.  When your tilted, and you will be when you lose your buy-in, just walk away from the goddamn table.  It&#8217;ll be there when you get back.  Do something to knock out the bad energy and once you feel the power again, go hit the session and show it who&#8217;s boss.</p>
<p><a href="http://flickr.com/photos/misterfingers/2567367482/in/photostream/"><img src="http://farm4.static.flickr.com/3011/2567367482_12904b54e4.jpg" alt="" width="500" height="375" /></a></p>
<p><strong>Racked Up</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=kinPXI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=kinPXI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=dnq4Mi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=dnq4Mi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=Wuoj1I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=Wuoj1I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=89amui"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=89amui" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=3tqJqI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=3tqJqI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=Wnkz9I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=Wnkz9I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=RsP7oi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=RsP7oi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/312835758" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/quintuple-up/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/quintuple-up/</feedburner:origLink></item>
		<item>
		<title>Upping The Game</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/312835759/</link>
		<comments>http://interfacelab.com/upping-the-game/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 00:24:21 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[Poker]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=19</guid>
		<description><![CDATA[I fell in love today.

Her name is 2/5 No Limit Hold 'Em and she is beautiful. I had always been sheepish around her. Flirtive glances here and there; always considering her beauty from afar. I'd often daydream of the time when we'd finally meet, but - to be honest - I always thought I wasn't good enough for her. I always thought she required more than I could give. She also seemed a little bit like a gold digger, and I wasn't sure my ATM card could carry the weight.]]></description>
			<content:encoded><![CDATA[<p><strong>I Thought a Week of Poker in Vegas Would Cure Me</strong></p>
<p>I fell in love today.</p>
<p>Her name is 2/5 No Limit Hold &#8216;Em and she is beautiful.  I had always been sheepish around her.  Flirtive glances here and there; always considering her beauty from afar.  I&#8217;d often daydream of the time when we&#8217;d finally meet, but - to be honest - I always thought I wasn&#8217;t good enough for her.  I always thought she required more than I could give.  She also seemed a little bit like a gold digger, and I wasn&#8217;t sure my ATM card could carry the weight.</p>
<p><span id="more-19"></span></p>
<p>David knows her well.  He had been riding her ragged for years, and gave her nothing but the highest accolades and compliments. &#8220;Sensational from start to finish&#8221;, he&#8217;d tell me. &#8220;Top notch.&#8221;</p>
<p>In a scene out of a Rocky movie - replacing Rocky with a slightly paunchy middle aged guy and the crotchety old trainer with an equally paunchy Korean guy with headlight sized sunglasses - David hyped me up with some pre-game pep talk.  &#8220;You&#8217;re good enough!&#8221;, he exclaimed.  &#8220;You just have to <strong>believe </strong>you are good enough!&#8221;</p>
<p>I conceded to let him introduce us.  I was shy at first, intimidated almost.  But then she gave me a gift in the form of a small stack of red, lime green and blue casino chips.  I suddenly knew that I was going to be alright.  And I was.</p>
<p><strong>Stepping Up to the Plate</strong></p>
<p>The real story is that we decided to check out the room at Caesar&#8217;s Palace.  David and I agreed that we&#8217;d play the same table to help each other analyze our plays and pointing out each others tells.  He told me the 2/5 game was a way better game than 1/2 because more people play it as it should be played.  You are way less likely to deal with Bachelor Party Guy at the 2/5 table.  I have a semi-aggressive style that he said would be a good match.  So I thought I&#8217;d give it a spin and see how it went.</p>
<p>We drop into a 2/5 table and are seated with four professionals, one of which was a european WPT title holder.  Ok, so I&#8217;m totally intimidated at this point?  A few hands pass around and David ends up making a mistake on one pot that costs him his initial stack.  He rebuys and then asks for a table switch, leaving me alone with these sharks.  The intensity of the situation caused my nuts to climb into my throat.  My heart was totally rocking out, blood rushing to my head, burning palms.</p>
<p>The obvious thing to do is layback and observe the action, so I do just that.  I was a little frustrated at first because I felt like there is no way I could integrate myself with this table in such a way as to get respect.  I was also seated in the 9 seat (the seat second from the dealer) which sucks for someone who&#8217;s game is largely based on being as social as possible with everyone at the table.  I requested a seat change to 5 (the middle) which is prime real estate as far as I&#8217;m concerned.  I&#8217;m within conversation distance of everyone and I have a great view of the entire board.  I can also consider action in my peripheral vision while I&#8217;m laying out a bet.  Home game players tend to riffle chips as a tell and you can catch that from the side once you&#8217;ve put someone on that particular tell.  They think it represents skill, a statement that they&#8217;ve been playing the game for a long time.   Also, how they riffle is specific to the invidiual, some people spin up with monsters or some spin up on bluffs.  The guys that do the middle chip spin outs in both hands are corny by the way and the only respect I pay them is that they know how to watch videos on youtube.  Really, the dual chip spin out is douchey.</p>
<p>So I finally get into seat 5 and I immediately make buddies with the guy on my left.  To my right is the female professional, so I&#8217;m thankful I&#8217;m following her action to save on some chips.  In the 2 seat is a girl that David recognized from Seattle, so I used that to lead into conversation.  The great thing about her sitting in the 2 seat is that by talking across the table to her, you can hook others into the conversation but always be leary of the guy who never talks.  The guy in the 4 seat never said a word and was always fixated on the flop, in or out of a hand.  I avoided as many pots with him as I could.</p>
<p>I had not really considered what to do if there was a strong personality already running the table.  The guy in the 1 seat was a stand-up comedian and a solid player, so it&#8217;d be fruitless to try to compete with that.  I decided it would be best to play more early pots with him to get some respect and to get on his good side.  In this situation it&#8217;s good to rally other players into a team to work on the weaker stacks and generally try to avoid each other.  Also, I&#8217;m folding premiums at this point because I don&#8217;t have any image with these cats.  I&#8217;ve decided to use the next two hours to integrate into the table and make some friends, so I&#8217;m not going crazy and have no aims to win monster pots.  In fact, at one point I folded AK in the button because people didn&#8217;t have enough information on me and most certainly would catch me down in a bad situation.  Here it&#8217;s important that when you are receiving information from other players that you are giving information to other players, even if that information is a stone cold lie.  At one point I was talking up that I spent several years as a dealer in some big NYC clubs.  I&#8217;m not here to foster deep meaning relationships, so I&#8217;ve got no problems lying straight faced to them to build up my image.</p>
<p>I make some bad plays on purpose and am essentially calling the comedian running the table when I have a chance.  We start joking that I&#8217;m a calling station, so I play this up, making &#8220;choo choo&#8221; sounds when I call or telling him that &#8220;the train has arrived at the calling station.&#8221;</p>
<p>This works like a charm and once I&#8217;ve beaten him in a few pots we start to work together on the weaker stacks.  I can&#8217;t stress enough how important it is for my play to have team building going on.  You need to make yourself a resident and neighbor at the table.  This allows you to start sneaking in semi-bluffs and bluffs.  I was OK with getting caught in some bluffs too, to make my play seem slightly unpredictable - but never enough to make it look like I didn&#8217;t know what I was doing.  At this level you need to represent that you have the chops and the balls to play along.  Making small semi-bluffs and congenially giving up pots when you are caught can be a good start in that regard.  Trying to play the table dunce might work in 1/2, but your better off with a strong image at this bigger level because you want people to play a predicatable game with you.  They are only going to do that if they think you are a strong, seasoned player.</p>
<p>What really pushed me into a solid session of play was a picture perfect play of AK.  I get dealt AK in the small blind, limpers come around to me so I make a pre-flop raise of 35 and get called by one guy.  I hate AK post-flop, so I was hoping just to scoop up the pre-flop action and call it a hand.  One caller I can live with, so we go to the flop and K-K-3 gets dropped.  In 2/5 you need to protect your trips so I make a 100 bet into the pot and the guy calls me.  Now it&#8217;s important to note that this guy had just sat down at the table and was making a huge mistake.  It&#8217;s critical in the first few hours of play NOT to make moves unless you are 100% certain you are going to get away with it, and only then make your moves on small pots so it&#8217;s not expensive to get caught.  I figured he had trips, and I had him out kicked so I was feeling confident I was going to take this down.  The guy calls me and the turn drops me an ace giving me the boat - kings full of aces.  I check to my caller and he makes a $100 bet.  I promptly go all-in.  I had an inkling that he might call, but at this point I&#8217;m happy with the value I&#8217;ve gotten from the hand considering how early in the session it was.  Low and behold he calls me and I&#8217;ve double up my stack to around 700.  To be fair, he flopped a boat, holding K3 in the pocket, but he should have been clued in that I was holding AK by my pre-flop raise and post-flop action.  Maybe he had me on AA, but even then you know I&#8217;m now aces full.  To put me on anything else was a mistake.  After that beat, he promptly requested a table change and I was glad that he got it because he&#8217;s not going to be an action player after losing a monster pot like that.  He just got burnt and is going to play tight as a whistle.  You don&#8217;t want these guys on your table.  Once you are in the zone and have your team behind you, you want action to come to the table to build up your stack. He wasn&#8217;t going to give it, so good riddance to him.</p>
<p>Not 30 minutes later, some serious action stumbles up to our table.  Two drunk guys plop down in the 9 and 10 seat.  Initially, their action turned the game into a 1-2 game, it was obvious the drunks that landed in the 9 and 10 seats hadn&#8217;t any inkling on how to play.  Specifically the moron in the 10 seat.  He was raising a ruckus from the get go and let some information slide that he&#8217;s been kicked out of the Caesar&#8217;s poker room on multiple occasions for being too drunk.  I feel bad for alcoholics, but I also have a mild disdain for them.  It&#8217;s part of the reason I rarely drink ever.  If I was more moralistic I&#8217;d feel bad taking chips off them, but in other ways I feel like I&#8217;m doing him a favor by quickening his descent to rock bottom.</p>
<p>9 seat, a rough looking asian kid that didn&#8217;t broadcast any particular ability to play makes some stupid runner runner hits and triples up his stack almost immediately.  For him, he should have pushed off the table 15 minutes later and called it a night because he now has a huge target painted on his forehead.  Everyone is mocking him, the comedian has nicknamed him &#8220;the double gut&#8221; for &#8220;his big belly and his massive suck outs&#8221;.    He should have racked up and walkked away because all of us have the patience to extract those chips back when the time is right.  When you tell yourself that you are planning to play a 10+ hour session, it&#8217;s much easier to be patient with setting your traps and waiting for the opportune time to get in a hand where you can make a dent on the weak stacks. His table awareness was so weak he hadn&#8217;t any idea that we were waiting to feed.</p>
<p>10 seat, the drunk, had no idea how to play.  Raising all in pre-flop with AA is moronic because you aren&#8217;t maximizing the value of your hand.  Make a nice raise, for sure, but try to get one caller.  Don&#8217;t be afraid to ditch those aces either if the flop doesn&#8217;t come your way unless you have the cahones to bluff the shit out of the pot, but be wary that insightful players have you pegged on AA already so those bluffs might get called.  A couple of times I&#8217;m involved in pots with him and he tries to put me on tilt by calling for a clock on me to make a decision, or telling me that I should fold.  I&#8217;m the wrong dude to pull that shit with because I&#8217;m willing to spend money to make money and have no qualms putting in bets that are going to shut you up and make you think about what to do next.  Not being married to your stack is hugely liberating in these situations.  It also helps to remind him that I&#8217;m from NYC and he&#8217;ll have to try harder to put me on tilt.  In fact, that&#8217;s really a prime time to pull out the passive aggression and flip the situation around so you put him on tilt.  I ask him how well the alcohol is fueling his game, reminding him that he&#8217;s a drunk which seems to be a sore spot.  When he makes a bad play and shows down crap hands, laugh at them and tell them they are good players.  Do what you can to slide the bamboo shoots beneath the fingernails, but don&#8217;t be overtly aggressive about it.  Here and there give the trash talking some zing, but use it minimally and sparingly otherwise your going to look like a big jerk just like him.  It&#8217;s important that people like you on the table, it&#8217;s critical that a few even adore you.  But the drunks, sock it to them and make sure you get some of the team to laugh with you when you mock them in a &#8220;good natured&#8221; passive aggressive way.</p>
<p>To make a long story short, the rest of the session was simply amazing.  My level of play was through the roof, mostly because of the level of people I was playing with and partially because I applied what I had learned in the 13 hours prior about socializing the game and working that to your advantage.  I was hitting a run of cards for sure, but I was also making some brilliant plays and put my aggressive semi-bluffing to work to make me some money.</p>
<p>A note about semi-bluffs and bluffing.  One thing that I do when I&#8217;m on a semi-bluff is that I visualize that I&#8217;m holding pocket AA&#8217;s or whatever the nuts for the board might be.  Forget that I&#8217;m holding 8-2 offsuit, I convince myself that I&#8217;m holding the nuts and bet at it like I have it.  When I do this, my hesitation on betting lessens and I portray strength through nice sized bets that make it damn near impossible for people to put me on any other hand than the nuts.  I have to be careful, I don&#8217;t want to recklessly commit my stack, so I hold off on the bluffing until integration with the table is complete and I have enough information on everyone to be sure of my bluffs.  It&#8217;s OK to get caught, you want to get caught once in awhile so that people know you can do it - which makes it harder to put you on a hand and gives you mad respect.  That you can sit and bluff at 4 professionals and laugh about it when you get caught says volumes with how comfortable you are with your play.  The pro&#8217;s will pick up on this and give you leeway in the next few pots.</p>
<p>I would say that you never want to bluff chasers.  The ROI is slim because they almost always call, forcing you to slap some weight into your bets that puts your chips at risk for a session ruining suck out.  Bluff the pro&#8217;s and let the chasers see it.  Once you&#8217;ve hit a bluff and taken down the pot, show it only once in a blue moon, but make sure you engage those chasers in conversation after you show down your bluff so that it sits in their heads that you have that capability.  Do this a few times and the chasers will start to be afraid of you and you can start picking off their stack with semi-bluffs or huge overbets.</p>
<p><strong>I Can Never Go Back</strong></p>
<p>Playing 2/5 has ruined 1/2 for me.  I almost feel like it&#8217;s ruined my home game for me too.  When we play Empty Pockets, I almost always have bad runs lately because of two factors that I&#8217;ve just now figured out.  The first factor is that I genuinely like everyone I play with at Empty Pockets and I always feel a little strange taking their money.  I sometimes even feel bad about bluffing someone off hands.  The second factor is that the game is so loose and willy nilly that playing serious would be a drag.  I&#8217;m thinking, however, that the next few Empty Pockets games be higher buy-in 2/5 for people that want to play at a higher level and want to do some play analysis post-game.  Run it as a home game, but more of a learning situation that preps us to go run Atlantic City every now and again.  I think if we&#8217;re up front about the buy-in and expected level of play, people will come to learn from each other and we can all strengthen each other&#8217;s game so that we can go decimate the tables in AC where it&#8217;s no problem taking money from degenerates.</p>
<p><strong>Look Ma, No Hands</strong></p>
<p><a href="http://flickr.com/photos/misterfingers/2560706475/in/photostream/"><img src="http://farm4.static.flickr.com/3262/2561526684_a3c9e24174.jpg" alt="Whoa" width="500" height="375" /></a></p>
<p><strong>Rocking the 2/5 Game</strong></p>
<p><a href="http://flickr.com/photos/misterfingers/2560706475/sizes/m/in/photostream/"><img src="http://farm4.static.flickr.com/3179/2560706475_e003f3bee1.jpg" alt="" width="500" height="375" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=uYLveI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=uYLveI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=ALgJei"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=ALgJei" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=YExoQI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=YExoQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=7sm4Fi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=7sm4Fi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=6cFoEI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=6cFoEI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=EcqEFI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=EcqEFI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=zGfD3i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=zGfD3i" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/312835759" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/upping-the-game/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/upping-the-game/</feedburner:origLink></item>
		<item>
		<title>14 Hours Non-Stop</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/312835760/</link>
		<comments>http://interfacelab.com/14-hours-non-stop/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 22:53:33 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[Poker]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=17</guid>
		<description><![CDATA[I just ended a 14 hour poker marathon that has taught me more about playing my game than the last two years combined.

The Back Story
I&#8217;ve been in Vegas for four days now.  The first day I had a good run, ending up 600 overall in about 4-5 hours of play. I was playing just [...]]]></description>
			<content:encoded><![CDATA[<p>I just ended a 14 hour poker marathon that has taught me more about playing my game than the last two years combined.</p>
<p><span id="more-17"></span></p>
<p><strong>The Back Story</strong></p>
<p>I&#8217;ve been in Vegas for four days now.  The first day I had a good run, ending up 600 overall in about 4-5 hours of play. I was playing just OK, no moments really stand out in my memory.  I ran conservative, only making a few bluffs.  I did crack a few loudmouths with some bullshit draws, but only a couple of times.</p>
<p>The next two days were depressing.  I was getting a run of paint with low kickers.  Even limping, flops landed miles away from where I needed them to be.  Lapses in patience and discipline found me involved in hands that I had no business being involved in.  I had a poor table image, so making moves got me caught more often than not.  And once you are down like that, it&#8217;s hard to rebound, so the second day of my bad run was even more depressing.</p>
<p><strong>Hours 1-2</strong></p>
<p>2pm rolls around and I decide to drop into the 1/2 game to waste some time while I wait for my friend David to get in from San Francisco.  Bought in for 200 and was having the same run as the day before.  J4, K5, Q7, A4 and a bunch of other junk in-between.  My poor table image continued and I couldn&#8217;t push anyone off with semi-bluffs.</p>
<p>I get a text message that Dave has arrived and realize I&#8217;m stuck for 180, leaving 20 in my pocket.  I excused myself from the table and met up with Dave, showing him our room.  After he settles in, we head back down to the poker room.  Dave jumps on the 2/5 table and I head back to the 1/2.</p>
<p><strong>Hour 3</strong></p>
<p>I got put on a table with a bunch of youngish looking guys and am able to strike up a few conversations with the people to my left which does two things:  it helps me start to build up my table image and gets me joking with the rest of the table.</p>
<p>I didn&#8217;t realize it then, but would later figure out, that almost 2/3rds of my game is talking down the table and using my gruff charm to place myself favorably in people&#8217;s heads.  Not only is that important for the psychology, it does two specific things: it let&#8217;s me get a better vibe on the people I&#8217;m playing with and it makes people feel bad when they bust me on my draws or out kick me on the river.  Taking a few hits and being congenial about it has people feeling sorry for me in the back of their minds, which is a huge opening to exploit as they&#8217;ll tend to let you slide with some bullshit calls as you chase down some miserable draws.</p>
<p>I nailed a few sizable pots, putting my chip stack up into a zone I am comfortable playing.  I&#8217;m good at the deep stack, even better when I have a favorable table image.  A few other tricks include talking up playing in NYC clubs which puts an exaggerated image of my skill into the heads of the home gamers and gives me cred with the lifers.  Once you have them charmed, you drop the resume and you get respect because they like you and they are afraid of whatever skills you might have learned playing in smoky underground clubs in NYC.</p>
<p><strong>Hours 4-5</strong></p>
<p>It&#8217;s up and down at this point, but my stack never drops below 200 and at this point I&#8217;ve gotten over being protective of my stack.  You know that saying, &#8220;If you love it, give it away?&#8221;  It applies here.  Part of my problem of the last two days was that I wasn&#8217;t willing to lose my stack and so I was playing in a guarded fashion when the correct play is to disregard the money and just put it in when it needs putting in.</p>
<p><strong>Hours 6-7</strong></p>
<p>I love gut shot draws.  They are an incredibly dangerous hand to play in a more serious 2-5 game, but in 1-2 - once you&#8217;ve become ok with giving away your chips - they are deadly instruments.  Because betting tends to side on the conservative, except for when somebody is broadcasting big hands with retarded raises, you usually are able to limp or smooth call to 4th street where you either hit or you don&#8217;t hit. But when you hit, you hit big.  People might whine about your suck out, but then you remind them that they let you suck out.  We musn&#8217;t forget that passive aggression is an incredibly useful tool at the table.  If done right, they don&#8217;t even realize you are passively putting them on tilt and pushing them to play more recklessly to try to strike back at you.</p>
<p>I hit a massive gut shot around hour 7 that doubles me up because none of the knuckleheads I&#8217;m playing with even saw the straight on the board, and they&#8217;re not good enough to put me on a backdoor hand.  When I flip the nuts and take the pot, I get some incredulous feedback from the guy I busted, but I also get some respect and claps on the back from the others I&#8217;ve endeared myself to.  Both of these types of feedback are important for my image.  My &#8220;friends&#8221; are not likely to call me down, giving me room to semi-bluff or straight out bluff them.  My new &#8220;enemy&#8221; - the guy who wants his chips back from me - is now trying to play some shitty hands to catch me in the same situation.</p>
<p>But, my read on the table is so good at this point that I can see them coming from a mile away and though they are trying to mix up their play, they don&#8217;t realize that they are sticking to some standard betting that practically gives away what they&#8217;re holding and I&#8217;m able to duck and dodge.</p>
<p><strong>Hour 8</strong></p>
<p>J8 in the pocket, I limp in and the flop lands 9-Q-3.  Now J8 is normally a dangerous hand.  If the flop came down 9-10-3, I&#8217;d be facing QJ and could get myself royally screwed when the K or 8 hits.  But with 9-Q-3, I&#8217;m waiting on a 10 and nobody sees that straight potential on the board.  And why should they?  How do you put someone on J8 when they bet the flop?  You can&#8217;t really, at best you are putting them on top pair top kicker.  When people check to me, of course I raise the action up to get people off the field - I&#8217;m not banking on hitting my 10, but know that if I do, fireworks are going to go off.</p>
<p>A raise is thrown in by an aggressive player which I instantly call because I know he&#8217;s maybe got top pair with a solid kicker, maybe even 2 pair.  Either way, I don&#8217;t really give aggressive players, specifically in a 1-2 game, much credit for being anything other than dumb brutes.  So I smooth call his 20 and low and behold, the turn completes my straight with a 10.</p>
<p>Mister two pairs make a big bet, but I have him trapped and I re-raise all in.  Of course, I get called, and double up my stack to around 550.</p>
<p>Again, we can&#8217;t discount the post win accolades and applying some manipulation of people to get them on your side.  &#8220;Sorry for that suck out, had a feeling&#8221;  You say things like these to ease the tilt, but you are actually kind of rubbing it in to make it worse.  Mister two pairs definitely slows down at this point, which gives the weaker players chances to fatten up the pot for you.  At the same time, the trap is laid because Mister Two Pairs is going to come at you sometime clutching to AQ like a life preserver even though you&#8217;ve flopped trip 9&#8217;s and boat up on the river.</p>
<p>The rest of the hour I see minimal action because I&#8217;ve put the brakes on myself.  I&#8217;m seeing 2 dollar flops but avoiding big pre-flop raises.  You would think that letting people bully you out of pots would increase their own sense of self-esteem, but what it actually does is slowly amp up their drive to get some of your stack back into their own.  This is a classic trap, but you aren&#8217;t dealing with super experienced players on a 1/2 table, so you can really put this to good work if you pay attention.</p>
<p>Did I mention that I love gutshots?</p>
<p><strong>Hour 9</strong></p>
<p>My stack is at 600, so I&#8217;m seeing a ton of flops.  I&#8217;m also running the table and have made sure everyone knows my name and evenly spread the joke cracking around to everyone.  You have to have the full table involved in the psychology to really make that advantage work, so you spread the jokes around and the poker jock talk and get everyone feeding into you.</p>
<p>This is why I love my parents.  I think I am uniquely qualified to play mind games with people because I moved around so much as a kid that I&#8217;ve learned how to chameleon my own personality to be attractive to others.  You had to if you wanted to make friends in whatever new school you found yourself in that year.  The poker table is no different.  The one thing I learned in this marathon session is that if you don&#8217;t run the table, request a table change until you land a table where you can run it.</p>
<p>With 600 in front of me, I&#8217;m calling a lot because my chip stack isn&#8217;t important to me, but it sure is important to everyone else.  They either want to fight you for a chunk of it, or they are afraid of it.  It&#8217;s easy to discern who is who in this situation, so you fold to the aggressors and lead the juvies into fattening the pot for you.  Never ever ever try to fight someone else with chips.  Never try to get revenge on a bad beat or on some loud mouth at the table who is playing an obvious game of &#8220;who can I put on tilt with my inane poker table banter&#8221;.  Those people will fuck themselves in the long run without you having to sacrifice chips to help them along.</p>
<p>Case in point and another gutshot victory:  An older gentleman come in to my left at the table with about 100 bucks.  He&#8217;s obviously a lifer - in NYC we call them degenerates - so I&#8217;ve got my eye on him but not too concerned because the problem with lifers is that they know the walk and they know the talk but they are long haul losers who clutch to standard strategy and expect everyone else to be doing the same.  It&#8217;s a 1/2 table dudes.  You&#8217;ve got some podunk from Kansas on his bachelor party who plays nickel and dime home games.  You&#8217;ve got jocks that maybe make it to the indian casino&#8217;s a couple of times a month.  You might have 1 guy who is serious and is at the table for the same reason as you, so you watch out for him, but everyone else is only a suck out danger, they are never going to out play you unless you let them.  You need to get a handle on who the calling stations are, the river chasers and only tangle with them when you&#8217;re made in the shade because you can&#8217;t shake them off hands.  I love watching people shake their heads after they get sucked out on by Mister Bachelor Party because they should know these monkeys are &#8220;gambling&#8221; just like they were &#8220;gambling&#8221; at the craps table an hour before.  These people are seeking the adrenaline of hitting big and have no idea what kind of mistakes they are making.  Stay away unless you have a made hand, let them fuck themselves and wait for the right time to take their chips from them.</p>
<p>Anyways, back to the gutshot.  I had 4-6 diamonds in the pocket.  I love suited gappers because people rarely will put you on them.  Everyone limps in, so I tag along.  Flop lands with 7d-8d-3s.  Two diamonds on the board for a flush and straight flush.  I need a diamond or five to complete or runner-runner 9-10.  The older gentleman grumbles and throws in 20 at a 12 dollar pot.  I call.  I base this call on two things: my love of gutshots and the fact that the guy has expressed some mentally unstable characteristics.  He&#8217;s also let me know that he&#8217;s been living in Vegas for 17 years and knows it all about Vegas.  The information here is that he&#8217;s a lifer.  He plays a lot, sure, but he loses even more.  His bet is broadcasting a nut flush draw or overpair and I can&#8217;t help to call with my own flush draw, straight flush draw and straight draw.  Even though I&#8217;m a 4 outter for the straight, I&#8217;ve got 9 outs to the flush.  I know, I know.  It&#8217;s a low flush I&#8217;m hitting for, but again this is why I love gutshots.  Also, 20 dollars from my stack of 600 is 3.3% of my stack.  I&#8217;ll call 3% of my stack for a big hit.</p>
<p>The turn comes down a 2.  Mister Lifer throws in 35, I call without hesitation.  Grumbling from the old man.  Boom, on the river comes the 5 of diamonds and I&#8217;ve hit my straight flush.  I&#8217;m really hoping he pushes here with an ace high flush, but he checks because he doesn&#8217;t have it.  I bet anyways, knowing he won&#8217;t call, BUT HE DOES.  I show the straight flush and am now pushing a stack a little over 700.</p>
<p>He is pissed.  A bunch of &#8220;How can you call with that&#8221; followed by a volley of made up statistics about hitting my outs.  I make a mistake here of letting his loser talk get under my skin so I hold up my hand to his face and tell him: &#8220;I won you lost.  Stop being a dick about it.&#8221;</p>
<p>He storms away from the table and I get a warning from the dealer not to do that again.  The nice side effect here is that I&#8217;ve beaten the asshole with an impossible hand and now everyone is even more warmed up to me because of that and because I was able to put him in his place with a little verbal kick in the pants.</p>
<p>He only plays a few more hands before switching tables.  I think because he realizes I&#8217;m running this shit and once in awhile I&#8217;ll say some passive aggressive shit to antagonize his tilt.  In the few pots we play, he never calls me down.</p>
<p><strong>Hours 10-12</strong></p>
<p>I&#8217;m coasting here and hitting pots like crazy, mostly because I&#8217;m able to push people out, but I&#8217;m also getting a good run of cards and an even better run of flops.  Also, at this point, the game is so crystal clear to me that I almost feel psychic.  I&#8217;ve played a few hundred hands at this point, so I know what I&#8217;m seeing.  I&#8217;m running purely on instinct now, I&#8217;ve got everyone at the table sorted out and classified and making calls where I need to and folding where I need to.</p>
<p>The main lesson I gleamed during these two hours is to integrate any newcomers to the table and get them to start feeding you information as soon as possible.  What are they doing in Vegas?  Where are they from?  Where do they play back home?  What do they do?  Try to find some common thing that you can discuss with them and get them talking because that is such a primary source of food for instinct play.</p>
<p>My father used to take me to shopping malls and we&#8217;d play a game of watching people and then making up back stories for them.  I do this all the time on the subway or when I&#8217;m out in public, it&#8217;s almost second nature for me to do so.  I think this has honed my ability to not only read people, but have some fairly keen accuracy in guessing personality types.  If I can leech some actual information out of them that matches with my supposition of what they are about, then I know I can read them and guess their plays.  Nothing is set in stone, however, so I give myself some leeway for being incorrect.  But after 10 hours of play, I&#8217;m getting really good at it and am able to make calls and play pots without having to run any math.  I&#8217;m totally playing off personalities at this point.</p>
<p>My stack is at 800 which seems to be a ceiling I can&#8217;t get around.  I&#8217;m aiming to make 1000, so I catch myself getting a little frustrated and having to remind myself that I&#8217;m in front of the curve and to just hang loose.</p>
<p><strong>Hour 13</strong></p>
<p>I&#8217;m putting my chips into a rack to call it a night, I&#8217;m suppose to be playing in the World Series the next day so it&#8217;s obviously time for bed.  My friend Dave is now slumming it at the 1/2 table with me and we&#8217;re able to play off each other to make some pots.</p>
<p>A kid from San Francisco sits down next to me with 200 in chips.  I get dealt 6-8 offsuit and raise it up 12 just to fuck around.  He calls.  The flop is 7-9-2.  He bets 25, I call.  Turn comes 10, I&#8217;ve hit my straight and he totally can&#8217;t see it.  He&#8217;s got 10&#8217;s maybe, I&#8217;m not sure because this is the first hand we&#8217;ve been in.  On the river comes a king and he makes a thirty dollar bet.  I push all in assuming he won&#8217;t call, but he does!  I show him the straight and he&#8217;s very good about it, but you can tell he&#8217;s upset.  I apologize, yadda, yadda.  Kid dips into the wallet for 200 more.</p>
<p>Next hand I&#8217;m dealt 99 in the pocket.  I raise 12 again, he calls.  Flop comes down K-10-9.  I&#8217;ve hit trips, I put him on two pair.  He makes a big bet, I call, turn is junk.  I check to him and he bets.  Again I call because I&#8217;m square with the trips to his two pair.  Turn comes with another 10, fetching me a full house.  I bet the rest of his stack and the kid calls.  I show the boat and he shows me his trip 10&#8217;s.</p>
<p>I have to thank him because now I&#8217;m up 1100 for the night.  I bid everyone farewell and call it a night.</p>
<p><strong>Conclusion</strong></p>
<p>My take away from this marathon:</p>
<ul>
<li>Stop worrying about your stack.  You have to spend money to make money.</li>
<li>Run the table, throw the personality out there and try to get people to rally for you.  I hate saying this, but people are sheep.  Give them a little leadership and use that to your advantage.</li>
<li>In 1/2 at a casino, your run of cards is secondary to how you manipulate the people at your table.  These people are not sophisticated players, take advantage of that.</li>
<li>Calling on instinct is better than calling on math on a 1/2 table full of amateurs.  Massage that table until you&#8217;re instincts are proven and once you can trust it, go with it.</li>
<li>People&#8217;s back stories almost always dictate the way they play.  Chat them up and find out what they are about.  Find commonalities to get them to rally behind you.  Take smoke breaks with other smokers to talk about other players at the table.</li>
</ul>
<p>I totally missed out playing in the World Series today, but I&#8217;m sort of glad because tournaments are a total grind and I&#8217;d much rather reapply what I learned last night to another marathon session today.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=avgfDI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=avgfDI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=YObI7i"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=YObI7i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=kYS9aI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=kYS9aI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=arjbci"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=arjbci" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=8kOSTI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=8kOSTI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=I4BOhI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=I4BOhI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=y11HSi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=y11HSi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/312835760" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/14-hours-non-stop/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/14-hours-non-stop/</feedburner:origLink></item>
		<item>
		<title>Fuck 37Signals and Their Bourgeois Bullshit</title>
		<link>http://feeds.feedburner.com/~r/Interfacelab/~3/312835761/</link>
		<comments>http://interfacelab.com/fuck-37signals-and-their-bourgeois-bullshit/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 08:27:13 +0000</pubDate>
		<dc:creator>Jon Gilkison</dc:creator>
		
		<category><![CDATA[37signals]]></category>

		<category><![CDATA[pragmatism gone wild]]></category>

		<guid isPermaLink="false">http://interfacelab.com/?p=16</guid>
		<description><![CDATA[37Signals can go fuck themselves.  There I said it and I feel better now.

Their last two postings about their workflow are heaping helpings of not awesomeness.  Their latest post, Designers Should Do Their Own HTML, is such complete near-sighted garbage I can&#8217;t help but to laugh at the cling-ons sucking the shit up [...]]]></description>
			<content:encoded><![CDATA[<p>37Signals can go fuck themselves.  There I said it and I feel better now.</p>
<p><span id="more-16"></span></p>
<p>Their last two postings about their workflow are heaping helpings of not awesomeness.  Their latest post, <a href="http://www.37signals.com/svn/posts/1066-web-designers-should-do-their-own-htmlcss">Designers Should Do Their Own HTML</a>, is such complete near-sighted garbage I can&#8217;t help but to laugh at the cling-ons sucking the shit up in the comments.</p>
<p>In summary, they suggest that designers do their own HTML/CSS.  This is so completely laughable I am not even sure how to respond.  But, before I do, let me give you a little of my own background so you can understand where I&#8217;m coming from:  I started out in the game roughly 15 years ago, give or take, doing multimedia/kiosk and eventually moving into the web around the time Netscape 3 was released.  I&#8217;ve been doing web related ever since then.  I&#8217;ve worked at small agencies, gargantuan agencies, start ups, big soulless pharmas and everywhere in-between.  I&#8217;ve been an art director, an html monkey, a back end warrior - and have even done such obscure things as writing control software for elevators and music sequencers for the desktop.</p>
<p>Their last blog entry essentially posits that designers should do their own HTML/CSS.  They theorize that it&#8217;ll learn those pesky designers on the limitations of HTML/CSS and - thus - design accordingly.  They also hint that it&#8217;ll save time in the workflow.  It totally explains why all of their stuff looks like it does, which is not to say that it looks bad, but perhaps not as good as it could be or should be.  It is clean and functional, but lacks personality and I&#8217;d be hard pressed to call any of it innovative in any sense of the word.</p>
<p>Back during bubble one, we used to call front-end developers Design Technologists.  They were the bridge between the designers and the backend, translating comps into workable front-end code and then integrating that front-end code with whatever madness the back end cooked up.  Design is a very specific skill set, it&#8217;s about visual communication.  The designer is responsible for taking a bucket load of information and not only showing it to the user in a way that makes sense, but also in a way that is usable <strong>and</strong> aesthetically pleasing.  To shackle them to HTML/CSS, which is it&#8217;s own very specific skill set, it constricting and limiting and has nothing to do with design at all.  Would you prefer someone that excels at one particular skill set, or someone that is simply marginal in both?  I&#8217;m not sure about you, but I want my designer/user experience person to focus on the one thing they excel at.  If they want to take a crack at doing some HTML/CSS, good for them, but I don&#8217;t expect anything of value from it because I have sharpshooting front-end people with brains who understand that design comps aren&#8217;t literal and know - or should know - how to deal with whatever the designer/UX throws at them.</p>
<p>Furthermore, that little save in the workflow will come around and fuck you when all that html/css is thrown out the window by someone who is actually skilled in html/css and sees it for what it is.  Honestly, I don&#8217;t see any save in time here at all.  Developing HTML/CSS is tedious enough as it is, to add in the task of doing design with it on the fly is just plain mentally retarded if you want to approach visuals that go beyond the simplistic shit.  Why does everything have to look like a wireframe with window dressing?  Where has the innovation gone?</p>
<p>No other communication industry does it this way.  In the print world it is retarded to assume that your designers are going to crank out press ready layouts, that shit almost always goes through someone skilled in pre-press production - the technical equivalent of an html/css jockey.  Designers don&#8217;t need to know about the mundane like printing screens, trapping, overprinting, color separations.</p>
<p>And then, what the fuck to do about flash/silverlight/SVG/HTML5?  Going to have to rejigger that workflow fellas because now the skillset on either side is to broad to expect more than a handful of individuals to do well at both.  UI is only going to get more complicated from here on out.  Feels better to me to be prepared for that eventuality than to cross that bridge when it comes to it, but maybe because I&#8217;ve been there before and understand that each innovation in client technology requires both disciplines to up their games.</p>
<p>Finally, 37signals doesn&#8217;t even do client work nor do they really take heed from their paying customers.  Their sites and their products are also relatively small compared to the rest of the web where this kind of discussion is applicable.  I suppose if you&#8217;re cranking out small apps like 37signals than their advice might be golden, but honestly I think it&#8217;ll be a nightmare for them down the road when someone less lazy eclipses their simplistic product offerings with something deeper and richer.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Interfacelab?a=dKS61I"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=dKS61I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=5cX2hi"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=5cX2hi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=VjsLOI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=VjsLOI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=Q1caai"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=Q1caai" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=jDUVYI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=jDUVYI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=VQmohI"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=VQmohI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/Interfacelab?a=wezSei"><img src="http://feeds.feedburner.com/~f/Interfacelab?i=wezSei" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Interfacelab/~4/312835761" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://interfacelab.com/fuck-37signals-and-their-bourgeois-bullshit/feed/</wfw:commentRss>
		<feedburner:origLink>http://interfacelab.com/fuck-37signals-and-their-bourgeois-bullshit/</feedburner:origLink></item>
	</channel>
</rss>
