<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Digging My Blog - Dan Hounshell</title><link>http://danhounshell.com/blogs/dan/default.aspx</link><description>Another .Dan Powered Site</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><geo:lat>39.441008</geo:lat><geo:long>-84.365828</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DiggingMyBlog" type="application/rss+xml" /><feedburner:emailServiceId>DiggingMyBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>An answer for the “So what do you do?” question</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/jRDnMnlWd20/an-answer-for-the-so-what-do-you-do-question.aspx</link><pubDate>Fri, 26 Jun 2009 04:35:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11332</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11332</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx#comments</comments><description>&lt;p&gt;I get asked this question a lot from friends and family, I’m sure we all do. It’s easy to explain to my geeky friends, not so easy to explain to my friends and family who aren’t so geeky. It usually goes something like this &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Me: “I work for Telligent Systems, we build community collaboration tools.”&lt;/p&gt;    &lt;p&gt;Them: &amp;lt;blank stare&amp;gt;&lt;/p&gt;    &lt;p&gt;Me: “We build forums, blogs, wikis, … that kind of stuff.”&lt;/p&gt;    &lt;p&gt;Them: &amp;lt;blank stare&amp;gt;&lt;/p&gt;    &lt;p&gt;Me: “Companies like Dell, Intel, Microsoft run our software for a lot of their customer community sites.” &lt;/p&gt;    &lt;p&gt;Them: &amp;lt;more blank stares&amp;gt;&lt;/p&gt;    &lt;p&gt;Me: “You ever used MySpace forums? That’s us.”&lt;/p&gt;    &lt;p&gt;Them: “Oh, okay. That’s cool, so what do &lt;b&gt;you&lt;/b&gt; do?”&lt;/p&gt;    &lt;p&gt;Me: &amp;lt;sigh, I know this is going nowhere fast&amp;gt; “I’m a programmer.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Over most of the last year I’ve worked on a product called Telligent Analytics, formerly called Harvest. It’s a package that mines a Telligent Community site’s information and shows all kinds of cool stuff. The last version, Harvest 2, was a pretty good product. But we’ve been adding a lot of great features since November and I think we’ve put together a great product. &lt;/p&gt;  &lt;p&gt;We’ve been really tight lipped over the past few months about the new features in Telligent Analytics and I’ve felt like I was going to explode because I really wanted to tell people about the great stuff we’ve been adding: Social Network Analysis (showing how people interconnect and rank inside the community), Topic Detection and Analysis (showing what things people are talking about), Sentiment Analyis (showing how people feel about the things they are saying), Web Analytics (showing the page views, logins, unique visitors and all the things people expect from “web tracking”), extending the monitoring of your keywords to outside your community (looking for the topics that you care about in key sites and services on the internet), and much more. &lt;/p&gt;  &lt;p&gt;Did I lose you somewhere in the above paragraph? I hope not, but if so just check this video out and it should help. Rob Howard, our founder and CTO, did a brief interview and demo of Telligent Analytics at the recent Enterprise 2.0 conference (about 15 minutes). This will help you see and understand what I’ve been working on.&amp;nbsp; I think I’m going to try to load this video to my phone and when someone asks “So, what do you do?” I’ll just hand it to them.&lt;/p&gt;  &lt;p&gt;&lt;script src="http://static.livestream.com/scripts/playerv2.js?channel=E2TV&amp;amp;layout=playerEmbedDefault&amp;amp;backgroundColor=0xffffff&amp;amp;backgroundAlpha=1&amp;amp;backgroundGradientStrength=0&amp;amp;chromeColor=0x000000&amp;amp;headerBarGlossEnabled=true&amp;amp;controlBarGlossEnabled=true&amp;amp;chatInputGlossEnabled=false&amp;amp;uiWhite=true&amp;amp;uiAlpha=0.5&amp;amp;uiSelectedAlpha=1&amp;amp;dropShadowEnabled=true&amp;amp;dropShadowHorizontalDistance=10&amp;amp;dropShadowVerticalDistance=10&amp;amp;paddingLeft=10&amp;amp;paddingRight=10&amp;amp;paddingTop=10&amp;amp;paddingBottom=10&amp;amp;cornerRadius=10&amp;amp;backToDirectoryURL=null&amp;amp;bannerURL=http://mogulus-user-uploads.s3.amazonaws.com/AA47FA79-F0DE-EA9D-D78B-08C9CC0680E2.png&amp;amp;bannerText=E2TV&amp;amp;bannerWidth=320&amp;amp;bannerHeight=50&amp;amp;showViewers=true&amp;amp;embedEnabled=true&amp;amp;chatEnabled=false&amp;amp;onDemandEnabled=true&amp;amp;programGuideEnabled=false&amp;amp;fullScreenEnabled=true&amp;amp;reportAbuseEnabled=false&amp;amp;gridEnabled=false&amp;amp;initialIsOn=false&amp;amp;initialIsMute=false&amp;amp;initialVolume=5&amp;amp;contentId=pla_6832848320377413728&amp;amp;initThumbUrl=null&amp;amp;playeraspectwidth=4&amp;amp;playeraspectheight=3&amp;amp;mogulusLogoEnabled=true&amp;amp;width=400&amp;amp;height=400&amp;amp;wmode=window" mce_src="http://static.livestream.com/scripts/playerv2.js?channel=E2TV&amp;amp;layout=playerEmbedDefault&amp;amp;backgroundColor=0xffffff&amp;amp;backgroundAlpha=1&amp;amp;backgroundGradientStrength=0&amp;amp;chromeColor=0x000000&amp;amp;headerBarGlossEnabled=true&amp;amp;controlBarGlossEnabled=true&amp;amp;chatInputGlossEnabled=false&amp;amp;uiWhite=true&amp;amp;uiAlpha=0.5&amp;amp;uiSelectedAlpha=1&amp;amp;dropShadowEnabled=true&amp;amp;dropShadowHorizontalDistance=10&amp;amp;dropShadowVerticalDistance=10&amp;amp;paddingLeft=10&amp;amp;paddingRight=10&amp;amp;paddingTop=10&amp;amp;paddingBottom=10&amp;amp;cornerRadius=10&amp;amp;backToDirectoryURL=null&amp;amp;bannerURL=http://mogulus-user-uploads.s3.amazonaws.com/AA47FA79-F0DE-EA9D-D78B-08C9CC0680E2.png&amp;amp;bannerText=E2TV&amp;amp;bannerWidth=320&amp;amp;bannerHeight=50&amp;amp;showViewers=true&amp;amp;embedEnabled=true&amp;amp;chatEnabled=false&amp;amp;onDemandEnabled=true&amp;amp;programGuideEnabled=false&amp;amp;fullScreenEnabled=true&amp;amp;reportAbuseEnabled=false&amp;amp;gridEnabled=false&amp;amp;initialIsOn=false&amp;amp;initialIsMute=false&amp;amp;initialVolume=5&amp;amp;contentId=pla_6832848320377413728&amp;amp;initThumbUrl=null&amp;amp;playeraspectwidth=4&amp;amp;playeraspectheight=3&amp;amp;mogulusLogoEnabled=true&amp;amp;width=400&amp;amp;height=400&amp;amp;wmode=window" type="text/javascript"&gt;&lt;/script&gt;    &lt;/p&gt;&lt;div id="mogulus_1245990806750722"&gt;&lt;object id="mogulus_player_new_12459908067508579" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" switchtochannel="switchtochannel" ison="ison" height="400" width="400"&gt;&lt;param name="_cx" value="10583"&gt;&lt;param name="_cy" value="10583"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://cdn.livestream.com/grid/PlayerV2.swf?version=303"&gt;&lt;param name="Src" value="http://cdn.livestream.com/grid/PlayerV2.swf?version=303"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="0"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value="LT"&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value="always"&gt;&lt;param name="Scale" value="NoScale"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value="FFFFFF"&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="true"&gt;&lt;/object&gt;&lt;/div&gt;    &lt;div style="display: none;"&gt;&lt;a href="http://www.quantcast.com/p-caea5A8f9YSRU" mce_href="http://www.quantcast.com/p-caea5A8f9YSRU" target="_blank"&gt;&lt;img src="http://pixel.quantserve.com/pixel/p-caea5A8f9YSRU.gif" style="display: none;" alt="Quantcast" mce_src="http://pixel.quantserve.com/pixel/p-caea5A8f9YSRU.gif" border="0" height="1" width="1"&gt;&lt;/a&gt;&lt;/div&gt;   &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;[You can also see the video here: &lt;a href="http://www.livestream.com/E2TV/ondemand/pla_6832848320377413728" title="http://www.livestream.com/E2TV/ondemand/pla_6832848320377413728" mce_href="http://www.livestream.com/E2TV/ondemand/pla_6832848320377413728"&gt;http://www.livestream.com/E2TV/ondemand/pla_6832848320377413728&lt;/a&gt;]&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;I’ll be talking a lot more about all of these awesome Telligent Analytics features over the coming months – expect lots of demos, insider information, how-to customize, etc. &lt;/p&gt;  &lt;p&gt;Don’t worry if you still didn’t “get it”, Becki. I’ll explain it to you later.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx&amp;amp;;subject=An+answer+for+the+%e2%80%9cSo+what+do+you+do%3f%e2%80%9d+question" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx&amp;amp;;title=An+answer+for+the+%e2%80%9cSo+what+do+you+do%3f%e2%80%9d+question" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx&amp;amp;;title=An+answer+for+the+%e2%80%9cSo+what+do+you+do%3f%e2%80%9d+question" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx&amp;amp;;title=An+answer+for+the+%e2%80%9cSo+what+do+you+do%3f%e2%80%9d+question&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11332" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/jRDnMnlWd20" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Harvest/default.aspx">Harvest</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Telligent+Analytics/default.aspx">Telligent Analytics</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/06/26/an-answer-for-the-so-what-do-you-do-question.aspx</feedburner:origLink></item><item><title>How to add NUnit as a test framework option to the ASP.NET MVC 1.0 dialog for VS2008</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/KZzq2HXTZzA/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx</link><pubDate>Sat, 20 Jun 2009 03:42:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11315</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11315</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx#comments</comments><description>&lt;p&gt;There are much longer more detailed ways involving editing the registry, running "devenv ..." command-line stuff, etc. This is by far the fastest and easiest way: &lt;/p&gt;&lt;p&gt;0.a. Make sure you have the ASP.NET MVC 1.0 Framework installed. I'm a dummy and still had the Beta installed and was surprised when the project wouldn't build. Then I realized my blunder.&lt;br&gt;&lt;/p&gt;&lt;p&gt;0.b. Close any open instances of Visual Studio 2008&amp;nbsp; &lt;br&gt;&lt;/p&gt;&lt;p&gt;1. Go to this URL: &lt;a href="http://blogs.msdn.com/webdevtools/archive/2009/04/28/updated-nunit-templates-for-asp-net-mvc-1-0-rtm.aspx" mce_href="http://blogs.msdn.com/webdevtools/archive/2009/04/28/updated-nunit-templates-for-asp-net-mvc-1-0-rtm.aspx"&gt;http://blogs.msdn.com/webdevtools/archive/2009/04/28/updated-nunit-templates-for-asp-net-mvc-1-0-rtm.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. Click on the "NUnit Test Templates" link. Download the zipped file.&lt;/p&gt;&lt;p&gt;3. Unzip the file.&lt;/p&gt;&lt;p&gt;4. Run the installNUnit.cmd file.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;That's it. Done. Enjoy. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx&amp;amp;;subject=How+to+add+NUnit+as+a+test+framework+option+to+the+ASP.NET+MVC+1.0+dialog+for+VS2008" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx&amp;amp;;title=How+to+add+NUnit+as+a+test+framework+option+to+the+ASP.NET+MVC+1.0+dialog+for+VS2008" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx&amp;amp;;title=How+to+add+NUnit+as+a+test+framework+option+to+the+ASP.NET+MVC+1.0+dialog+for+VS2008" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx&amp;amp;;title=How+to+add+NUnit+as+a+test+framework+option+to+the+ASP.NET+MVC+1.0+dialog+for+VS2008&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11315" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/KZzq2HXTZzA" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/NUnit/default.aspx">NUnit</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/06/19/how-to-add-nunit-as-a-test-framework-option-to-the-asp-net-mvc-1-0-dialog-for-vs2008.aspx</feedburner:origLink></item><item><title>Nerd Dinner at Dewey’s Pizza in West Chester tonight</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/1-74CGmGDME/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx</link><pubDate>Fri, 12 Jun 2009 14:28:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11159</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11159</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx#comments</comments><description>&lt;p&gt;There is a &lt;a href="http://www.nerddinner.com/465" title="Nerd Dinner at Dewey’s Pizza in West Chester, OH tonight (June 12, 2009) at 6:30 PM" mce_href="http://www.nerddinner.com/465"&gt;Nerd Dinner at Dewey’s Pizza in West Chester, OH tonight (June 12, 2009) at 6:30 PM&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;The organizers of the event intended it to be a:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;Gathering for those in town and those coming in town for the CINNUG ORM Firestarter at Dewey's Pizza, West Chester, OH&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m fairly certain we’re a little more all-inclusive than that and we will welcome anyone who would like to attend. If you meet any one or more of the following criteria you are welcome to join us for the fun and festivities:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You are a nerd&lt;/li&gt;    &lt;li&gt;You normally don’t consider yourself a nerd but you work in a traditionally nerdy job or industry&lt;/li&gt;    &lt;li&gt;You are not a nerd buy you like nerds&lt;/li&gt;    &lt;li&gt;You are considering choosing a nerd to be your next significant other&lt;/li&gt;    &lt;li&gt;You have the innate ability to make people laugh&lt;/li&gt;    &lt;li&gt;You have the innate ability to make people think&lt;/li&gt;    &lt;li&gt;You like talking about technology and other nerdy things (like Star Trek)&lt;/li&gt;    &lt;li&gt;You want to drop some knowledge on your peeps&lt;/li&gt;    &lt;li&gt;You want to find some new peeps&lt;/li&gt;    &lt;li&gt;You want to learn something&lt;/li&gt;    &lt;li&gt;You like to laugh&lt;/li&gt;    &lt;li&gt;You like good beer. Dewey’s Pizza keeps a variety of micro brews on tap. I’m sure there will be one or two that you’ve never even heard of.&lt;/li&gt;    &lt;li&gt;You have ever been called “eye candy” &lt;/li&gt;    &lt;li&gt;You have ever felt excluded from anything in your life&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I know this is late notice but if you’d like to attend make sure you &lt;a href="http://www.nerddinner.com/465" title="submit an RSVP on the NerdDinner.com web site" mce_href="http://www.nerddinner.com/465"&gt;submit an RSVP on the NerdDinner.com web site&lt;/a&gt; so we’ll know how many to expect. &lt;/p&gt;  &lt;p&gt;See you there!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx&amp;amp;;subject=Nerd+Dinner+at+Dewey%e2%80%99s+Pizza+in+West+Chester+tonight" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx&amp;amp;;title=Nerd+Dinner+at+Dewey%e2%80%99s+Pizza+in+West+Chester+tonight" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx&amp;amp;;title=Nerd+Dinner+at+Dewey%e2%80%99s+Pizza+in+West+Chester+tonight" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx&amp;amp;;title=Nerd+Dinner+at+Dewey%e2%80%99s+Pizza+in+West+Chester+tonight&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11159" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/1-74CGmGDME" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Nerd+Dinner/default.aspx">Nerd Dinner</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/06/12/nerd-dinner-at-dewey-s-pizza-in-west-chester-tonight.aspx</feedburner:origLink></item><item><title>Say Hello to Homebrewing</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/9ExlCzG2QT8/say-hello-to-homebrewing.aspx</link><pubDate>Mon, 08 Jun 2009 15:10:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11114</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11114</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx#comments</comments><description>&lt;p&gt;My brother, Andy, and I began homebrewing beer in January of this year. We had been talking about taking up the hobby for years and finally made the leap. Since then we’ve brewed about seven 5-gallon batches of different styles. We’ve used ingredient kits from &lt;a href="http://www.ldcarlson.com/Flagship_brands.html" title="Brewer’s Best" mce_href="http://www.ldcarlson.com/Flagship_brands.html"&gt;Brewer’s Best&lt;/a&gt;, &lt;a href="http://www.midwestsupplies.com/" title="Midwest Homebrewing and Winemaking Supplies" mce_href="http://www.midwestsupplies.com/"&gt;Midwest&lt;/a&gt;, and one from a local company. We’ve been really pleased with the Brewer's Best and Midwest kits. &lt;/p&gt;  &lt;p&gt;One of our best and favorites (so far), a Russian Imperial Stout, was reviewed by Mr. Porch of &lt;a href="http://www.beerandcigars.net/2009/awesome-andys-russian-stout/" title="Awesome Andy's Russian Imperial Stout" mce_href="http://www.beerandcigars.net/2009/awesome-andys-russian-stout/"&gt;BeerAndCigars.net&lt;/a&gt; about a month ago. &lt;/p&gt;  &lt;p&gt;Saturday we brewed up a batch of American Micro Style Pale Ale, a &lt;a href="http://www.ldcarlson.com/public%20catalog/Chapter%2001.htm#Brewer%27s%20Best%E2%84%A2%20Ingredient%20Package" title="Brewer’s Best kit" mce_href="http://www.ldcarlson.com/public%20catalog/Chapter%2001.htm#Brewer%27s%20Best%E2%84%A2%20Ingredient%20Package"&gt;Brewer’s Best kit&lt;/a&gt;. I was surprised to learn that Sam from BeerAndCigars.net would be joining us. Sam took a bunch of pictures as we tried to relay the little bit of knowledge that we’ve built up over the last couple of months to him. Sam published a short video of the experience and he did a great job!: &lt;a href="http://www.beerandcigars.net/2009/home-brewing-in-5-minutes/" title="http://www.beerandcigars.net/2009/home-brewing-in-5-minutes/" mce_href="http://www.beerandcigars.net/2009/home-brewing-in-5-minutes/"&gt;http://www.beerandcigars.net/2009/home-brewing-in-5-minutes/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/wZRwG_AY8ZE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/wZRwG_AY8ZE&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en&amp;amp;feature=player_embedded&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/object&gt;&lt;/p&gt;  &lt;p&gt;Now that we have a few kit beers under out belt we’re planning on stepping things up a bit. Next we’re going to move up to 10-gallon batches doing a full-boil. Full-boil means we’ll be boiling the full batch rather than only a portion and adding the remaining water to fill out the batch afterward (on the home stove we can only keep 2.5 gallons at a full rolling boil). For us, this means a 15+ gallon brewing kettle and a turkey/fish fryer – the kitchen stove won’t handle it. After that we’re planning on going full grain where we will actually buy our own grains and boil the starches out of it rather than use the cans of extract that kits provide. Among other things this gives the brewmaster more control over taste, texture and finished product. &lt;/p&gt;  &lt;p&gt;There is nothing wrong with the kits though – there have been plenty of home brewing awards won with kit beers. They make great beer at about half the price it would cost for something equivalent off the store shelf. And you get the pleasure of saying that you brewed it yourself.&lt;/p&gt;  &lt;p&gt;It’s really easy to get started and the equipment requirements are simple, as you can see in the video. If you’re at all interested in beer, especially good micro brewed beer, then find someone in your area who brews and ask if you can sit in on their next brew session. Home brewers are a really down to earth and overly friendly lot and love to share info, recipes and even beer. They’ll usually have a couple of different styles of brew on tap and are more than willing to pour you a pint or two or three. You might be surprised to learn (or not) that a lot of home brewers are nerds (programmers, engineers, etc) like yourself.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.homebrewchatter.com/board/" title="HomeBrewChatter.com" mce_href="http://www.homebrewchatter.com/board/"&gt;HomeBrewChatter.com&lt;/a&gt; is a great resource and welcomes beginners. And &lt;a href="http://www.brewcast.tv/" title="BrewCast.tv" mce_href="http://www.brewcast.tv/"&gt;BrewCast.tv&lt;/a&gt; is a new site from the founders of HomeBrewChatter that’s really enjoyable, too.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx&amp;amp;;subject=Say+Hello+to+Homebrewing" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx&amp;amp;;title=Say+Hello+to+Homebrewing" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx&amp;amp;;title=Say+Hello+to+Homebrewing" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx&amp;amp;;title=Say+Hello+to+Homebrewing&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11114" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/9ExlCzG2QT8" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/beer/default.aspx">beer</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/homebrewing/default.aspx">homebrewing</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/06/08/say-hello-to-homebrewing.aspx</feedburner:origLink></item><item><title>Must Have Windows Home Server Add-Ons?</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/XEGtXLr2sdk/must-have-windows-home-server-add-ons.aspx</link><pubDate>Wed, 03 Jun 2009 19:15:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11080</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11080</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx#comments</comments><description>&lt;p&gt;I’m still an inquisitive kid at heart. As soon as I bring home a new toy I spend a lot of time figuring out how it works, customizing it to my liking, adding things to it to make it better. My browsers have my favorite add-ons, extensions, and plug-ins installed (del.icio.us, Evernote, etc). I add memory, hard drives, etc. to my computers and laptops. There are few things that I own that are easily modified that are not modified. &lt;/p&gt;  &lt;p&gt;The surprising thing that I haven’t mucked with yet is my Windows Home Server. When I was doing the research before buying and setting it up I saw that there were a lot of commercial and community developed add-ons for WHS. I just knew that I would add all kinds of cool things to it. Yet here I sit nearly 9 months later and I haven’t really touched it. One of the reasons is because it “just works”. I don’t have to think about it, worry about it – it just cruises along and does its thing. In fact a lot of times I completely forget that it’s there (until I’m coding something late at night and get a popup warning that a backup is about to start on my PC). &lt;/p&gt;  &lt;p&gt;But I still have a desire to make it “better, stronger, faster”. Rather than just jump in head first I’ll question the community for suggestions. So, community, what are the must have Windows Home Server add-ons that I should try?&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx&amp;amp;;subject=Must+Have+Windows+Home+Server+Add-Ons%3f" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx&amp;amp;;title=Must+Have+Windows+Home+Server+Add-Ons%3f" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx&amp;amp;;title=Must+Have+Windows+Home+Server+Add-Ons%3f" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx&amp;amp;;title=Must+Have+Windows+Home+Server+Add-Ons%3f&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11080" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/XEGtXLr2sdk" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/06/03/must-have-windows-home-server-add-ons.aspx</feedburner:origLink></item><item><title>Best @TFFRatio Requests, Part III</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/lDK3XOWtcI8/best-tffratio-requests-part-iii.aspx</link><pubDate>Sat, 30 May 2009 05:09:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:11046</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=11046</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx#comments</comments><description>&lt;p&gt;I’ve been trying to convince myself over the last couple of weeks that I should write a blog post, but I truly feel that I have nothing worth sharing that couldn’t be put down in 140 characters or less (referring to Twitter/Facebook, of course). I’m sure you don’t really care about the minor yard work I’ve been doing or the hours I spend puttering around in the garage. Now that warm weather and sunshine have returned to my part of the world I’ve been spending more free time outside and as far away from the computer as possible. Less time spent monkeying around with new technologies means less blog fodder. The time I have logged on the computer at night has been spent on maintenance, updates and small new features for the &lt;a href="http://twitterratio.com/" title="TwitterRatio" mce_href="http://twitterratio.com/"&gt;TwitterRatio&lt;/a&gt; and &lt;a href="http://aspdotnetmvc.com/" title="AspDotNetMVC" mce_href="http://aspdotnetmvc.com/"&gt;AspDotNetMVC&lt;/a&gt; sites. There’s really nothing new worth calling out about those sites that I haven’t already.&amp;nbsp; I’ve also challenged myself to read a fiction or non-computer related non-fiction book between each programming-related book (&lt;a href="http://www.amazon.com/gp/product/0743497465?ie=UTF8&amp;amp;tag=diggimyblogda-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0743497465" mce_href="http://www.amazon.com/gp/product/0743497465?ie=UTF8&amp;amp;tag=diggimyblogda-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0743497465"&gt;Dan Brown’s Deception Point&lt;/a&gt; is a great read!). &lt;/p&gt;  &lt;p&gt;Since I don’t have anything new for you I’m falling back to something tried-and-true: the Best @TFFRatio Requests! &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://danhounshell.com/blogs/dan/archive/2008/04/29/the-best-tffratio-requests.aspx" title="The Best @TFFRatio Requests, Part 1" mce_href="http://danhounshell.com/blogs/dan/archive/2008/04/29/the-best-tffratio-requests.aspx"&gt;The Best @TFFRatio Requests, Part 1&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://danhounshell.com/blogs/dan/archive/2008/05/12/best-tffratio-requests-part-ii.aspx" title="The Best @TFFRatio Requests, Part 2" mce_href="http://danhounshell.com/blogs/dan/archive/2008/05/12/best-tffratio-requests-part-ii.aspx"&gt;The Best @TFFRatio Requests, Part 2&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In my studies I’ve found that there are several types of TFF Ratio requests…&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Brief&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/MobilityMatters" mce_href="http://twitter.com/MobilityMatters"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/52111059/danSP3_normal.jpg" alt="Dan Hibbitts" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/52111059/danSP3_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/MobilityMatters" mce_href="http://twitter.com/MobilityMatters"&gt;MobilityMatters&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; What up? &lt;a href="http://twitter.com/MobilityMatters/status/1041636223" mce_href="http://twitter.com/MobilityMatters/status/1041636223"&gt;10:15 PM Dec 5th, 2008&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/grabinski" mce_href="http://twitter.com/grabinski"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/208590589/Owen_054-700k_normal.jpg" alt="Jim Grabinski" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/208590589/Owen_054-700k_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/grabinski" mce_href="http://twitter.com/grabinski"&gt;grabinski&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; What is my TFF Ratio? &lt;a href="http://twitter.com/grabinski/status/1075601937" mce_href="http://twitter.com/grabinski/status/1075601937"&gt;7:21 PM Dec 23rd, 2008&lt;/a&gt;     &lt;/p&gt;&lt;p&gt;&lt;a href="http://twitter.com/DapperSnappers" mce_href="http://twitter.com/DapperSnappers"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/147264138/profilepic_normal.jpg" alt="Chelle Cazella" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/147264138/profilepic_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;      &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/DapperSnappers" mce_href="http://twitter.com/DapperSnappers"&gt;DapperSnappers&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; give it to me &lt;a href="http://twitter.com/DapperSnappers/status/1112577632" mce_href="http://twitter.com/DapperSnappers/status/1112577632"&gt;10:47 PM Jan 11th&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://twitter.com/I_CRE8" mce_href="http://twitter.com/I_CRE8"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/70908265/1e956ff_normal.jpg" alt="Dave Buchholz" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/70908265/1e956ff_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;      &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/I_CRE8" mce_href="http://twitter.com/I_CRE8"&gt;I_CRE8&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; what's my ratio ? &lt;a href="http://twitter.com/I_CRE8/status/1193589935" mce_href="http://twitter.com/I_CRE8/status/1193589935"&gt;3:15 PM Feb 9th&lt;/a&gt;&lt;/p&gt;   &lt;p&gt;&lt;a href="http://twitter.com/JamieLottering" mce_href="http://twitter.com/JamieLottering"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/219547332/lol_normal.png" alt="Jamie Lottering" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/219547332/lol_normal.png" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/JamieLottering" mce_href="http://twitter.com/JamieLottering"&gt;JamieLottering&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; give &lt;a href="http://twitter.com/JamieLottering/status/1131716510" mce_href="http://twitter.com/JamieLottering/status/1131716510"&gt;3:16 PM Jan 19th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Friendly&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/SteveAndrews" mce_href="http://twitter.com/SteveAndrews"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/84710526/Me_normal.jpg" alt="Steve Andrews" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/84710526/Me_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/SteveAndrews" mce_href="http://twitter.com/SteveAndrews"&gt;SteveAndrews&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; What do you think, old friend? &lt;a href="http://twitter.com/SteveAndrews/status/1647422727" mce_href="http://twitter.com/SteveAndrews/status/1647422727"&gt;1:56 AM Apr 29th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/sbanwart" mce_href="http://twitter.com/sbanwart"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/54706506/img_3212-2_normal.jpg" alt="Scott Banwart" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/54706506/img_3212-2_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/sbanwart" mce_href="http://twitter.com/sbanwart"&gt;sbanwart&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; We haven't talked in a while. How are things? &lt;a href="http://twitter.com/sbanwart/status/1490064361" mce_href="http://twitter.com/sbanwart/status/1490064361"&gt;5:47 AM Apr 10th&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;nbsp;&lt;a href="http://twitter.com/skimedic" mce_href="http://twitter.com/skimedic"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/215778489/self_81_normal.jpg" alt="Phil Japikse (MVP)" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/215778489/self_81_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/skimedic" mce_href="http://twitter.com/skimedic"&gt;skimedic&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt;, how are you doing today? &lt;a href="http://twitter.com/skimedic/status/1470344692" mce_href="http://twitter.com/skimedic/status/1470344692"&gt;9:04 AM Apr 7th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/ninob" mce_href="http://twitter.com/ninob"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/71408036/nino_normal.jpg" alt="Nino Benvenuti" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/71408036/nino_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/ninob" mce_href="http://twitter.com/ninob"&gt;ninob&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; did you miss me? &lt;a href="http://twitter.com/ninob/status/1225413682" mce_href="http://twitter.com/ninob/status/1225413682"&gt;7:14 PM Feb 18th&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://twitter.com/jblankenburg" mce_href="http://twitter.com/jblankenburg"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/119021018/jeffatmix_normal.jpg" alt="Jeff Blankenburg" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/119021018/jeffatmix_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/jblankenburg" mce_href="http://twitter.com/jblankenburg"&gt;jblankenburg&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; how are you old friend? it's been a while... &lt;a href="http://twitter.com/jblankenburg/status/1053545141" mce_href="http://twitter.com/jblankenburg/status/1053545141"&gt;7:30 AM Dec 12th, 2008&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Weird Stalker-like "Romantics"&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/spiritdeus" mce_href="http://twitter.com/spiritdeus"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/20871782/starface_normal.jpg" alt="J Leask (Telligent)" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/20871782/starface_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/spiritdeus" mce_href="http://twitter.com/spiritdeus"&gt;spiritdeus&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; I've missed your phone calls, have you found another man? &lt;a href="http://twitter.com/spiritdeus/status/1245864142" mce_href="http://twitter.com/spiritdeus/status/1245864142"&gt;10:36 AM Feb 24th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/mikelikesbikes" mce_href="http://twitter.com/mikelikesbikes"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/76644204/mlbabstract_normal.jpg" alt="mikelikesbikes" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/76644204/mlbabstract_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/mikelikesbikes" mce_href="http://twitter.com/mikelikesbikes"&gt;mikelikesbikes&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; I didn't forget about you. I just had to keep you on the backburner while I tricked @&lt;a href="http://twitter.com/laserem" mce_href="http://twitter.com/laserem"&gt;laserem&lt;/a&gt; into marrying me. &lt;a href="http://twitter.com/mikelikesbikes/status/1234965976" mce_href="http://twitter.com/mikelikesbikes/status/1234965976"&gt;11:23 AM Feb 21st&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/objo" mce_href="http://twitter.com/objo"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/82028006/Photo_87_revised_normal.jpg" alt="Joe O'Brien" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/82028006/Photo_87_revised_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/objo" mce_href="http://twitter.com/objo"&gt;objo&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; I'm starting to reconsider that whole 'seeing other people' idea. What do you say? &lt;a href="http://twitter.com/objo/status/1189211643" mce_href="http://twitter.com/objo/status/1189211643"&gt;9:05 AM Feb 8th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/JimHolmes" mce_href="http://twitter.com/JimHolmes"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/114357070/wizpic_normal.jpg" alt="Jim Holmes" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/114357070/wizpic_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/JimHolmes" mce_href="http://twitter.com/JimHolmes"&gt;JimHolmes&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; It's been one of those days. Will you pick me up, or, as @&lt;a href="http://twitter.com/fallenrogue" mce_href="http://twitter.com/fallenrogue"&gt;fallenrogue&lt;/a&gt; would say, hammer me in the sack? &lt;a href="http://twitter.com/JimHolmes/status/1048222602" mce_href="http://twitter.com/JimHolmes/status/1048222602"&gt;4:54 PM Dec 9th, 2008&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/fallenrogue" mce_href="http://twitter.com/fallenrogue"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/112509104/Photo_11_normal.jpg" alt="Leon (EdgeCase)" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/112509104/Photo_11_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/fallenrogue" mce_href="http://twitter.com/fallenrogue"&gt;fallenrogue&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; I want to kiss you all over... and over and again... till the night closes in. TILL THE NIGHT CLOSES IN!!!!! &lt;a href="http://twitter.com/fallenrogue/status/1116055540" mce_href="http://twitter.com/fallenrogue/status/1116055540"&gt;9:03 AM Jan 13th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/skimedic" mce_href="http://twitter.com/skimedic"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/215778489/self_81_normal.jpg" alt="Phil Japikse (MVP)" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/215778489/self_81_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/skimedic" mce_href="http://twitter.com/skimedic"&gt;skimedic&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; talk sexy to me, tffratio &lt;a href="http://twitter.com/skimedic/status/1112158567" mce_href="http://twitter.com/skimedic/status/1112158567"&gt;6:21 PM Jan 11th&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;The Out of Work Comedians&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/CyprianoHawaii" mce_href="http://twitter.com/CyprianoHawaii"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/76616470/Chicken_Laulau_normal.jpg" alt="R, K Cypriano" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/76616470/Chicken_Laulau_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/CyprianoHawaii" mce_href="http://twitter.com/CyprianoHawaii"&gt;CyprianoHawaii&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; ~ You gave me your worst already. What do ya have to say NOW? &lt;a href="http://twitter.com/CyprianoHawaii/status/1037667473" mce_href="http://twitter.com/CyprianoHawaii/status/1037667473"&gt;9:48 PM Dec 3rd, 2008&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://twitter.com/graemearthur" mce_href="http://twitter.com/graemearthur"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/61608001/bug_small01_normal.jpg" alt="graemearthur" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/61608001/bug_small01_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;    &lt;br&gt;&lt;b&gt;&lt;a href="http://twitter.com/graemearthur" mce_href="http://twitter.com/graemearthur"&gt;graemearthur&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; hey whats my twitter ratio or whatever &lt;a href="http://twitter.com/graemearthur/status/1127253479" mce_href="http://twitter.com/graemearthur/status/1127253479"&gt;5:04 PM Jan 17th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lucadip" mce_href="http://twitter.com/lucadip"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/71494955/io_avatar_copia4_normal.jpg" alt="Luca di Pierro" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/71494955/io_avatar_copia4_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/lucadip" mce_href="http://twitter.com/lucadip"&gt;lucadip&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; let's see how much I suck &lt;a href="http://twitter.com/lucadip/status/1193680674" mce_href="http://twitter.com/lucadip/status/1193680674"&gt;3:48 PM Feb 9th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/spiritdeus" mce_href="http://twitter.com/spiritdeus"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/20871782/starface_normal.jpg" alt="J Leask (Telligent)" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/20871782/starface_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/spiritdeus" mce_href="http://twitter.com/spiritdeus"&gt;spiritdeus&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; I wish you had historical data, so I could see if I'm any less of a loser now than I was when you first started telling me so! &lt;a href="http://twitter.com/spiritdeus/status/1477112892" mce_href="http://twitter.com/spiritdeus/status/1477112892"&gt;8:16 AM Apr 8th&lt;/a&gt;    &lt;br&gt;[Editor’s Note: Ask and ye shall receive!!!]&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/mjeaton" mce_href="http://twitter.com/mjeaton"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/70726846/3187419672_7c6bbee1d4_normal.jpg" alt="Michael Eaton" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/70726846/3187419672_7c6bbee1d4_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/mjeaton" mce_href="http://twitter.com/mjeaton"&gt;mjeaton&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; "I would drape myself in velvet if it were socially acceptable." &lt;a href="http://twitter.com/mjeaton/status/1218917815" mce_href="http://twitter.com/mjeaton/status/1218917815"&gt;5:59 AM Feb 17th&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/MayorPercy" mce_href="http://twitter.com/MayorPercy"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/72935609/Percy_Pic_normal.jpg" alt="Percival J. Brown" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/72935609/Percy_Pic_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/MayorPercy" mce_href="http://twitter.com/MayorPercy"&gt;MayorPercy&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/tffratio" mce_href="http://twitter.com/tffratio"&gt;tffratio&lt;/a&gt; Hello? Testing. Is this thing on? So a priest, a monk, and a rabbi walk into a bar ... &lt;a href="http://twitter.com/MayorPercy/status/1238967388" mce_href="http://twitter.com/MayorPercy/status/1238967388"&gt;5:28 PM Feb 22nd&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;b&gt;Huh?&lt;/b&gt;  &lt;p&gt;&lt;a href="http://twitter.com/jordybug2jee" mce_href="http://twitter.com/jordybug2jee"&gt;&lt;img src="http://s3.amazonaws.com/twitter_production/profile_images/184557692/j_normal.jpg" alt="jordan" mce_src="http://s3.amazonaws.com/twitter_production/profile_images/184557692/j_normal.jpg" height="48" width="48"&gt;&lt;/a&gt;&lt;b&gt;     &lt;br&gt;&lt;a href="http://twitter.com/jordybug2jee" mce_href="http://twitter.com/jordybug2jee"&gt;jordybug2jee&lt;/a&gt;&lt;/b&gt;@&lt;a href="http://twitter.com/TFFRatio" mce_href="http://twitter.com/TFFRatio"&gt;TFFRatio&lt;/a&gt; --- do this and get YOUR ratio more deets on there twit page &lt;a href="http://twitter.com/jordybug2jee/status/1286947477" mce_href="http://twitter.com/jordybug2jee/status/1286947477"&gt;8:38 PM Mar 5th&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx&amp;amp;;subject=Best+%40TFFRatio+Requests%2c+Part+III" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx&amp;amp;;title=Best+%40TFFRatio+Requests%2c+Part+III" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx&amp;amp;;title=Best+%40TFFRatio+Requests%2c+Part+III" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx&amp;amp;;title=Best+%40TFFRatio+Requests%2c+Part+III&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=11046" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/lDK3XOWtcI8" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Twitter/default.aspx">Twitter</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/tffratio/default.aspx">tffratio</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Twitter+Ratio/default.aspx">Twitter Ratio</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/05/30/best-tffratio-requests-part-iii.aspx</feedburner:origLink></item><item><title>The Bacon and Cheese Stuffed Pizza Burger</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/vLadzbHG7-8/the-bacon-and-cheese-stuffed-pizza-burger.aspx</link><pubDate>Thu, 30 Apr 2009 05:19:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10909</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10909</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx#comments</comments><description>&lt;p&gt;What wondrous specimen of perfection has the following ingredients list? &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Two (2) DiGiorno Cheese Stuffed Crust frozen pizzas&lt;/li&gt;    &lt;li&gt;Two (2) 12-oz packages of bacon&lt;/li&gt;    &lt;li&gt;One (1) egg&lt;/li&gt;    &lt;li&gt;One (1) pound of ground beef&lt;/li&gt;    &lt;li&gt;One (1) medium sized onion&lt;/li&gt;    &lt;li&gt;Two (2) cloves of garlic&lt;/li&gt;    &lt;li&gt;Approximately two (2) pounds of various shredded and sliced cheese&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://thechive.com/2009/02/how-to-make-a-bacon-and-cheese-stuffed-pizza-burger-11-photos/" mce_href="http://thechive.com/2009/02/how-to-make-a-bacon-and-cheese-stuffed-pizza-burger-11-photos/"&gt;&lt;img src="http://danhounshell.com/blogs/dan/abaconcheesestuffedpizzaburger_thumb_0D3EA820.jpg" title="a-bacon-cheese-stuffed-pizza-burger" style="border: 0px none ; display: inline;" alt="a-bacon-cheese-stuffed-pizza-burger" mce_src="http://danhounshell.com/blogs/dan/abaconcheesestuffedpizzaburger_thumb_0D3EA820.jpg" border="0" height="372" width="498"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The heavenly goodness that is &lt;a href="http://thechive.com/2009/02/how-to-make-a-bacon-and-cheese-stuffed-pizza-burger-11-photos/" mce_href="http://thechive.com/2009/02/how-to-make-a-bacon-and-cheese-stuffed-pizza-burger-11-photos/"&gt;The Bacon and Cheese Stuffed Pizza Burger&lt;/a&gt;, that’s what! (Warning: some advertisements on theChive.com could be considered as NSFW)&lt;/p&gt;  &lt;p&gt;I won’t cheat you by including a picture of the end result here. You’ll have to click the above link to see the process and beautiful results. That is if you think you are worthy to gaze upon its glory.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx&amp;amp;;subject=The+Bacon+and+Cheese+Stuffed+Pizza+Burger" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx&amp;amp;;title=The+Bacon+and+Cheese+Stuffed+Pizza+Burger" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx&amp;amp;;title=The+Bacon+and+Cheese+Stuffed+Pizza+Burger" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx&amp;amp;;title=The+Bacon+and+Cheese+Stuffed+Pizza+Burger&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10909" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/vLadzbHG7-8" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Funny/default.aspx">Funny</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Food/default.aspx">Food</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/04/30/the-bacon-and-cheese-stuffed-pizza-burger.aspx</feedburner:origLink></item><item><title>Create a Twitter-like logo</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/5BA_U79bj4o/creating-a-twitter-like-logo.aspx</link><pubDate>Thu, 23 Apr 2009 03:48:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10892</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10892</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx#comments</comments><description>&lt;p&gt;I recently upgraded the look of the &lt;a href="http://twitterratio.com" mce_href="http://twitterratio.com"&gt;TwitterRatio&lt;/a&gt; site. The charcoal look was okay for starters but I wanted to make it look more Twitter-like, something that I’d noticed that a lot of other Twitter utility sites had been doing. In the process I created a Twitter-like logo and thought I’d share how it was done in case one of you loyal readers was wondering just how to make a Twitter-like logo for yourself. Additionally I thought it was about time to impress you once again with my less than adequate design skillz.&lt;/p&gt;  &lt;p&gt;I use an old version of Photoshop 7.0 that I’ve had for years. For the minor “design” (psuedo-design-like in my case) things that I do it has more than enough functionality and I find no need to upgrade. You should be able to do something similar with Paint Shop Pro, Gimp or any other graphics editing software. I tried to do something similar with Paint.NET but I’m just not familiar enough with it to be successful.&lt;/p&gt;  &lt;p&gt;1. Create an empty canvas. I chose a transparent background approx 400px wide x 100px tall.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/1.Canvas_2FE1F2C2.jpg" title="1.Canvas" style="border: 0px none ; display: inline;" alt="1.Canvas" mce_src="http://danhounshell.com/blogs/dan/1.Canvas_2FE1F2C2.jpg" width="551" border="0" height="231"&gt; &lt;/p&gt;  &lt;p&gt;2. Add Text. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Choose a font that closely resembles the Twitter font. I’ve read conflicting stories on the internet about which exact font Twitter uses (I’m sort of a font nut, which is kind of weird for a developer). One story is that the font is a hand tweaked version of the &lt;a href="http://www.sparkytype.com/fonts/Chickens" title="Chickens font from SparkyType foundry" mce_href="http://www.sparkytype.com/fonts/Chickens"&gt;Chickens font from SparkyType foundry&lt;/a&gt;. Another is that it’s a tweaked version of the &lt;a href="http://www2.wind.ne.jp/maniackers/pico.html" title="Pico font" mce_href="http://www2.wind.ne.jp/maniackers/pico.html"&gt;Pico font&lt;/a&gt;. Either of those is suitable and another similar (and free one) is &lt;a href="http://ficod.deviantart.com/art/tondo-v0-1-62810784" title="Tondo" mce_href="http://ficod.deviantart.com/art/tondo-v0-1-62810784"&gt;Tondo&lt;/a&gt;. I’m using Pico.&lt;/li&gt;    &lt;li&gt;Choose a color of blueish-green that is close to the Twitter color scheme. I chose to use a different shade of blue for each word.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/2.Text_7C3EA7C5.jpg" title="2.Text" style="border: 0px none ; display: inline;" alt="2.Text" mce_src="http://danhounshell.com/blogs/dan/2.Text_7C3EA7C5.jpg" width="551" border="0" height="231"&gt; &lt;a href="http://ficod.deviantart.com/art/tondo-v0-1-62810784" title="http://ficod.deviantart.com/art/tondo-v0-1-62810784" mce_href="http://ficod.deviantart.com/art/tondo-v0-1-62810784"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Rasterize the text layer by clicking on Layer &amp;gt; Rasterize &amp;gt; Type in the menu.&lt;/p&gt;  &lt;p&gt;4. Select just the text by doing a Ctrl + click on the text layer (in the layers “widget”). Notice the dancing ants! It makes me want to fire up some Dave Mathews.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/4.Select_38205B1D.jpg" title="4.Select" style="border: 0px none ; display: inline;" alt="4.Select" mce_src="http://danhounshell.com/blogs/dan/4.Select_38205B1D.jpg" width="552" border="0" height="249"&gt; &lt;/p&gt;  &lt;p&gt;5. Expand the selection in preparation for adding a “halo” around the text. Do this by going to the menu and clicking Select &amp;gt; Modify &amp;gt; Expand &amp;gt; 6px.&lt;/p&gt;  &lt;p&gt;6. Apply a color to fill the selection to create the halo. I chose to go with a darker blue color rather than the white that Twitter uses. I thought it looked better with my site colors, but do as you see fit. Apply the fill by going to the menu and clicking Edit &amp;gt; Fill. In the popup change the Mode to Screen and select a color. Hit OK.&lt;/p&gt;  &lt;p&gt;Note: You may need to apply #6 above to a new layer and move it below the text layer. I did not need to for the dark blue halo, but I did when using white. I have no idea what I did differently. I really don’t know how Photoshop works, I just keep pushing buttons until I have something suitable.&lt;/p&gt;  &lt;p&gt;Note: Rather than expanding and filling as I have explained you can use an outside stroke to create the same effect. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Example with darker blue border (you can see it use on the &lt;a href="http://twitterratio.com/" title="TwitterRatio" mce_href="http://twitterratio.com/"&gt;TwitterRatio&lt;/a&gt; site):&lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/Final.Blue_3C5475A6.jpg" title="Final.Blue" style="border: 0px none ; display: inline;" alt="Final.Blue" mce_src="http://danhounshell.com/blogs/dan/Final.Blue_3C5475A6.jpg" width="554" border="0" height="232"&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;The real Twitter logo is below. You can see that there are some slight differences between the font in the Twitter logo and the Pico font. The w, i, and r all look to be right on. The middle t’s are very close, but they seem to have a little bit of a tilt to the left in the Twitter logo. The e’s are way off. But, hey, it’s close enough for my purposes.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/twitter_35C8A829.png" title="twitter" style="border: 0px none ; display: inline;" alt="twitter" mce_src="http://danhounshell.com/blogs/dan/twitter_35C8A829.png" width="244" border="0" height="60"&gt; &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;For completeness sake, here is an example with a white border, which looks more Twitter-like but doesn’t suit my site as well: &lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/Final.White_5AEB13F7.jpg" title="Final.White" style="border: 0px none ; display: inline;" alt="Final.White" mce_src="http://danhounshell.com/blogs/dan/Final.White_5AEB13F7.jpg" width="551" border="0" height="231"&gt; &lt;/p&gt;  &lt;p&gt;Enjoy and happy Twitter-like logo making!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx&amp;amp;;subject=Create+a+Twitter-like+logo" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx&amp;amp;;title=Create+a+Twitter-like+logo" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx&amp;amp;;title=Create+a+Twitter-like+logo" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx&amp;amp;;title=Create+a+Twitter-like+logo&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10892" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/5BA_U79bj4o" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Twitter/default.aspx">Twitter</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Twitter+Ratio/default.aspx">Twitter Ratio</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/04/22/creating-a-twitter-like-logo.aspx</feedburner:origLink></item><item><title>A brief look at the Google Chart API</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/XHXES8VBW4w/a-brief-look-at-the-google-chart-api.aspx</link><pubDate>Wed, 15 Apr 2009 03:36:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10841</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10841</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx#comments</comments><description>&lt;p&gt;I needed a simple chart control. I briefly thought about &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx" title="ASP.NET Charting Control" mce_href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;the new ASP.NET Chart control&lt;/a&gt;, but that is .NET 3.5 and my current code base is still .NET 2.0. I probably could migrate the code to 3.5 painlessly enough, but “if it ain’t broke…”. I have some experience with &lt;a href="http://amcharts.com/" title="amCharts" mce_href="http://amcharts.com/"&gt;amCharts&lt;/a&gt;, and they provide an option to use any of their products for freeda, with the only limitation being a small link to their web site being displayed in the top left corner of every chart. &lt;/p&gt;  &lt;p&gt;I had read about the &lt;a href="http://code.google.com/apis/chart/" title="Google Chart API" mce_href="http://code.google.com/apis/chart/"&gt;Google Chart API&lt;/a&gt; in a couple of places so I decided to give it a spin for my simple needs:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;The Google Chart API returns a PNG-format image in response to a URL. Several types of image can be generated, including line, bar, and pie charts. For each image type, you can specify attributes such as size, colors, and labels.&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;The Google Chart API lets you dynamically generate charts. To see the Chart API in action, open up a browser window and copy the following URL into the address bar:&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;code&gt;&lt;i&gt;http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello|World&lt;/i&gt;&lt;/code&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;Press the Enter or Return key and - presto! - you should see the following image:&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&lt;i&gt;&lt;img src="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello%7CWorld" alt="Yellow pie chart" mce_src="http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:60,40&amp;amp;chs=250x100&amp;amp;chl=Hello%7CWorld" border="0"&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;My first thoughts were: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;"seems simple enough, it’s just an &amp;lt;img&amp;gt; tag with the source set to the Google charts API url with bunch of different querystring params to define the data and formatting"&lt;/li&gt;    &lt;li&gt;followed by "all those querystring params look complicated"&lt;/li&gt;    &lt;li&gt;followed by “okay the pie chart is cool, but I need a line chart”.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I hit up the &lt;a href="http://code.google.com/apis/chart/types.html#line_charts" mce_href="http://code.google.com/apis/chart/types.html#line_charts"&gt;line charts section of the documentation&lt;/a&gt;, created a simple chart, then just kept experimenting with different settings, &lt;a href="http://code.google.com/apis/chart/basics.html#optional_param_by_chart_type" mce_href="http://code.google.com/apis/chart/basics.html#optional_param_by_chart_type"&gt;parameters&lt;/a&gt;, and &lt;a href="http://code.google.com/apis/chart/labels.html" mce_href="http://code.google.com/apis/chart/labels.html"&gt;labels&lt;/a&gt; until I had something that looked decent.&lt;/p&gt;  &lt;p&gt;The following url emits the below image:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;http://chart.apis.google.com/chart?       &lt;br&gt;cht=lc        &lt;br&gt;&amp;amp;chd=t:0,1.91,1.91,1.92,1.93,1.94        &lt;br&gt;&amp;amp;chds=0,2        &lt;br&gt;&amp;amp;chs=500x250        &lt;br&gt;&amp;amp;chl=Big+Bang|4/14/2009        &lt;br&gt;&amp;amp;chtt=TFF+Ratio+for+Dave+Donaldson        &lt;br&gt;&amp;amp;chxt=y        &lt;br&gt;&amp;amp;chxr=0,0,2        &lt;br&gt;&amp;amp;chm=N*f2*,000000,0,-1,11&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt; &lt;img src="http://chart.apis.google.com/chart?cht=lc&amp;amp;chd=t:0,1.91,1.91,1.92,1.93,1.94&amp;amp;chds=0,2&amp;amp;chs=500x250&amp;amp;chl=Big+Bang%7C4/14/2009&amp;amp;chtt=TFF+Ratio+for+Dave+Donaldson&amp;amp;chxt=y&amp;amp;chxr=0,0,2&amp;amp;chm=N*f2*,000000,0,-1,11" style="border: 1px solid rgb(0, 0, 0);" mce_src="http://chart.apis.google.com/chart?cht=lc&amp;amp;chd=t:0,1.91,1.91,1.92,1.93,1.94&amp;amp;chds=0,2&amp;amp;chs=500x250&amp;amp;chl=Big+Bang|4/14/2009&amp;amp;chtt=TFF+Ratio+for+Dave+Donaldson&amp;amp;chxt=y&amp;amp;chxr=0,0,2&amp;amp;chm=N*f2*,000000,0,-1,11"&gt;  &lt;p&gt;After that I was able to grab the url, place it in my code and use some string formatting to replace the data, titles, etc. with dynamically generated data. &lt;/p&gt;  &lt;p&gt;The Google Chart API is probably not a solution for your enterprise charting needs, but it will help you put together some simple charts easily for your run-of-the-mill web application. Two of the best things about it that make it easy to work with: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The documentation is good enough, making it fairly easy to figure out how to do whatever it is you’re trying to do&lt;/li&gt;    &lt;li&gt;Because it is URL based you can keep experimenting with your charts by simply changing values in the URL – no code , no test harness, just a browser and a little time and patience. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;You can check out my use of Google Charts at the following:   &lt;br&gt;&lt;a href="http://twitterratio.com/history.aspx/danhounshell" mce_href="http://twitterratio.com/history.aspx/danhounshell"&gt;http://twitterratio.com/history.aspx/danhounshell&lt;/a&gt;    &lt;br&gt;&lt;a href="http://twitterratio.com/history.aspx/arcware" mce_href="http://twitterratio.com/history.aspx/arcware"&gt;http://twitterratio.com/history.aspx/arcware&lt;/a&gt;    &lt;br&gt;&lt;a href="http://twitterratio.com/history.aspx/jeffhunsaker" mce_href="http://twitterratio.com/history.aspx/jeffhunsaker"&gt;http://twitterratio.com/history.aspx/jeffhunsaker&lt;/a&gt;    &lt;br&gt;&lt;a href="http://twitterratio.com/history.aspx/scottw" mce_href="http://twitterratio.com/history.aspx/scottw"&gt;http://twitterratio.com/history.aspx/scottw&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx&amp;amp;;subject=A+brief+look+at+the+Google+Chart+API" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx&amp;amp;;title=A+brief+look+at+the+Google+Chart+API" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx&amp;amp;;title=A+brief+look+at+the+Google+Chart+API" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx&amp;amp;;title=A+brief+look+at+the+Google+Chart+API&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10841" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/XHXES8VBW4w" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Twitter+Ratio/default.aspx">Twitter Ratio</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Google+Charts/default.aspx">Google Charts</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/04/14/a-brief-look-at-the-google-chart-api.aspx</feedburner:origLink></item><item><title>Eeebuntu Netbook Remix and OpenGeeeU</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/RZylcdSzn0w/eeebuntu-netbook-remix-and-opengeeeu.aspx</link><pubDate>Mon, 30 Mar 2009 02:03:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10762</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10762</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx#comments</comments><description>&lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/nbr_1_400_19757A51.png" title="nbr_1_400" style="border: 0px none ; margin: 10px 0px; display: inline;" alt="nbr_1_400" mce_src="http://danhounshell.com/blogs/dan/nbr_1_400_19757A51.png" width="404" align="right" border="0" height="244"&gt;For the last couple of months I’ve been using &lt;a href="http://www.eeebuntu.org/index.php?page=nbr" title="Eeebuntu Netbook Remix" mce_href="http://www.eeebuntu.org/index.php?page=nbr"&gt;Eeebuntu Netbook Remix&lt;/a&gt; on my Asus eee PC 900. I’m a true blue Windows user and have been since Windows 3.1 and MS-DOS before that. But I’ve dabbled with various Linux versions over the years to keep up to date and to know enough to get around. Because of this I wasn’t too fearful of buying a netbook without Windows. I’d also done enough research prior that I knew what I was getting myself into. &lt;/p&gt;  &lt;p&gt; Eeebuntu was built specifically for the Asus eee netbooks and is based on Ubuntu. The Netbook Remix version (NBR) uses the Netbook Launcher, a customized simple tab-based UI. It makes it easy to find and launch the day to day programs you use on the little netbook – mostly just Firefox in my case. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Another Linux distribution optimized for netbooks, specifically the eee line, is EasyPeasy. I have not run EasyPeasy yet since I’ve been pleased with Eeebuntu NBR, but I’ve read some good reviews about it. &lt;/p&gt;  &lt;p&gt;Friday I read about a new distribution released specifically for the eee line, &lt;a href="http://opengeu.intilinux.com/News/Voci/2009/3/23_OpenGeeeU_8.10_Live_CD_for_Asus_EeePC_released%21.html" title="OpenGeeeU 8.10 Luna Serena" mce_href="http://opengeu.intilinux.com/News/Voci/2009/3/23_OpenGeeeU_8.10_Live_CD_for_Asus_EeePC_released!.html"&gt;OpenGeeeU 8.10 Luna Serena&lt;/a&gt;. OpenGeeeU is based on EasyPeasy and OpenGEU. Here is a description from the site:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;i&gt;OpenGEU, previously known as Geubuntu, is a complete and fully functional &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Operating_system" mce_href="http://en.wikipedia.org/wiki/Operating_system"&gt;&lt;i&gt;Operative System&lt;/i&gt;&lt;/a&gt;&lt;i&gt; based on the popular &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Linux" mce_href="http://en.wikipedia.org/wiki/Linux"&gt;&lt;i&gt;Linux&lt;/i&gt;&lt;/a&gt;&lt;i&gt; Distribution &lt;/i&gt;&lt;a href="http://www.ubuntu.com/" mce_href="http://www.ubuntu.com/"&gt;&lt;i&gt;Ubuntu&lt;/i&gt;&lt;/a&gt;&lt;i&gt;. OpenGEU, a project started and designed by the Italian artist &lt;/i&gt;&lt;a href="http://thedarkmaster.wordpress.com/" mce_href="http://thedarkmaster.wordpress.com/"&gt;&lt;i&gt;Luca D.M. (aka TheDarkMaster)&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, is perfect for any Desktop, Laptop PC or even for a &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Virtual_machine" mce_href="http://en.wikipedia.org/wiki/Virtual_machine"&gt;&lt;i&gt;Virtual Machine&lt;/i&gt;&lt;/a&gt;&lt;i&gt;. OpenGEU mixes the power and simplicity of Ubuntu and parts of the &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Gnome_desktop" mce_href="http://en.wikipedia.org/wiki/Gnome_desktop"&gt;&lt;i&gt;Gnome Desktop&lt;/i&gt;&lt;/a&gt;&lt;i&gt; with the wonder and astonishing eye-candy of &lt;/i&gt;&lt;a href="http://en.wikipedia.org/wiki/Enlightenment_17" mce_href="http://en.wikipedia.org/wiki/Enlightenment_17"&gt;&lt;i&gt;Enlightenment DR17&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I’m thinking about giving OpenGeeeU a spin, especially after watching this video – it is almost breathtaking.&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:74c257d8-3b16-4e8c-aff4-381c087683e3" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;&lt;div&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bZBGkuhiZCo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en"&gt;&lt;embed src="http://www.youtube.com/v/bZBGkuhiZCo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en" mce_src="http://www.youtube.com/v/bZBGkuhiZCo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Here is a link directly to the video on YouTube if you’re having trouble viewing it here: &lt;a href="http://www.youtube.com/watch?v=bZBGkuhiZCo"&gt;http://www.youtube.com/watch?v=bZBGkuhiZCo&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx&amp;amp;;subject=Eeebuntu+Netbook+Remix+and+OpenGeeeU" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx&amp;amp;;title=Eeebuntu+Netbook+Remix+and+OpenGeeeU" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx&amp;amp;;title=Eeebuntu+Netbook+Remix+and+OpenGeeeU" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx&amp;amp;;title=Eeebuntu+Netbook+Remix+and+OpenGeeeU&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10762" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/RZylcdSzn0w" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Netbooks/default.aspx">Netbooks</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/03/29/eeebuntu-netbook-remix-and-opengeeeu.aspx</feedburner:origLink></item><item><title>Adding 1TB drive to WHS</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/TB7r2sU4Gm0/adding-1tb-drive-to-whs.aspx</link><pubDate>Thu, 05 Mar 2009 18:40:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10655</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10655</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx#comments</comments><description>&lt;p&gt;This is part 6 in a series about building an Eco-Friendly Economical Windows Home Server. &lt;br&gt;Part 1: &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/03/27/in-search-of-an-eco-friendly-economical-home-server.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2008/03/27/in-search-of-an-eco-friendly-economical-home-server.aspx"&gt;In search of an Eco-Friendly Economical Home Server&lt;/a&gt; &lt;br&gt;Part 2: &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/03/28/in-search-of-an-eco-friendly-economical-home-server-2-electric-boogaloo.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2008/03/28/in-search-of-an-eco-friendly-economical-home-server-2-electric-boogaloo.aspx"&gt;In search of an Eco-Friendly Economical Home Server 2, Electric Boogaloo&lt;/a&gt; &lt;br&gt;Part 3: &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/07/07/a-cheap-and-green-windows-home-server.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2008/07/07/a-cheap-and-green-windows-home-server.aspx"&gt;A Cheap and Green Windows Home Server&lt;/a&gt; &lt;br&gt;Part 4: &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/10/18/ordered-parts-for-eco-friendly-economical-windows-home-server.aspx"&gt;Ordered parts for Eco-friendly Economical Windows Home Server&lt;/a&gt;&lt;br&gt;Part 5: &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/10/21/can-i-get-a-mulligan-on-the-case-order.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2008/10/21/can-i-get-a-mulligan-on-the-case-order.aspx"&gt;Can I get a Mulligan on the Case Order?&lt;/a&gt;&lt;br&gt;Part 6: &lt;a href="http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;Adding a 1TB Drive to my WHS&lt;/a&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Last night &lt;a href="http://twitter.com/danhounshell/status/1281604264" mce_href="http://twitter.com/danhounshell/status/1281604264"&gt;I mentioned on Twitter&lt;/a&gt; that I was feeling a little nostalgic after buying a 1TB drive for under $100 dollars. The drive is a much needed addition to my Windows Home Server. I started out with two 500GB drives (I knew I should have went with two 1TB drives!), but the space is getting eaten up quickly. I’m down to only about 20GB of free space, which may seem like a lot, but realize that with 1TB of drive space 20GB is only 2%. Only 2% free – I need to add another drive!&lt;/p&gt;  &lt;p&gt;MicroCenter has Western Digital Caviar Green Power, a recent preference of mine for things like file servers, 1TB drives on sale for $89.99.    &lt;br&gt;&lt;a href="http://microcenter.com/single_product_results.phtml?product_id=0273266" mce_href="http://microcenter.com/single_product_results.phtml?product_id=0273266"&gt;http://microcenter.com/single_product_results.phtml?product_id=0273266&lt;/a&gt;    &lt;br&gt;I picked one up in the store last night, but you can order from their web site, too. This appears to be a little-advertised special. It was included in an email to customers and it is listed on the front page of their web site, but it wasn’t shown in the snail mail flyer I got earlier this week. And the sale price wasn’t displayed on the shelf. This is for the consumer packaged version of the drive. MicroCenter also has an OEM version of the drive on sale, but it is actually $5 more. A saleperson told me that the drives will only be available at that price for a few days. &lt;/p&gt;  &lt;p&gt;So far the only gripe I have about these WD GP drives is that they run a little warm. I’ve had to really pay attention to their location inside the case and to the system’s fan/cooling setup. In fact I’ll be adding a new drive bay intake fan along with this new drive. The other two drives are doing okay, but I’m worried that the addition of a third in such a confined space will be detrimental to all three. I’m learning that it’s difficult to build a PC that will be energy efficient, quiet, cool, small, powerful enough and decent looking. There’s always a compromise somewhere.&amp;nbsp; &lt;/p&gt;  &lt;p&gt;I’m planning on adding the new drive today after work, so I figured while I was waiting for a meeting to start that I’d do a quick Google search to make sure I knew what was required. I was hoping it was as simple as plugging it in and then WHS would do the rest. But do I need to format it? Do I need to partition it? Do I need to do anything on the Windows Home Server Storage tab? &lt;/p&gt;  &lt;p&gt;In my quest for knowledge I found the following post, which may be one of the most entertaining “how-to” hardware posts that I have ever read:   &lt;br&gt;&lt;a href="http://whsbook.wordpress.com/2009/03/04/adding-a-new-drive-on-a-friday-night/" mce_href="http://whsbook.wordpress.com/2009/03/04/adding-a-new-drive-on-a-friday-night/"&gt;Adding a new drive on a Friday night&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s good to see that I should expect nothing unusual. Open up the PC, plug in the drive and button everything back up, once I’ve rebooted I should open up the WHS storage tab where I should be able to add the newly found drive to the storage pool. Let’s hope things work out so easily.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx&amp;amp;;subject=Adding+1TB+drive+to+WHS" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx&amp;amp;;title=Adding+1TB+drive+to+WHS" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx&amp;amp;;title=Adding+1TB+drive+to+WHS" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx&amp;amp;;title=Adding+1TB+drive+to+WHS&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10655" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/TB7r2sU4Gm0" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/Windows+Home+Server/default.aspx">Windows Home Server</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/WHS/default.aspx">WHS</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/03/05/adding-1tb-drive-to-whs.aspx</feedburner:origLink></item><item><title>Customizing Graffiti: The Amazon aStore Chalk Extension</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/LCoI0z2xFsk/customizing-graffiti-the-amazon-astore-chalk-extension.aspx</link><pubDate>Mon, 02 Feb 2009 06:10:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10539</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10539</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx#comments</comments><description>&lt;p&gt;In my last post, &lt;a href="http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;Customizing Graffiti: Chalk GetQuerystringValue&lt;/a&gt;, I promised that I was brewing up a really good Graffiti example/tip that would combine a lot of the customizations that I’ve written about recently. Are you ready for this? This one will knock your socks off and it alone is worth the price of admission. It’s the Amazon aStore Chalk extension. No “oohs and ahhs” yet? Pessimists, huh? Just wait.&lt;/p&gt;  &lt;p&gt;Historically (if you can call 3 previous posts “historically”) I disclose the what, how, etc. details first and then show an example. This time I’m going to do it a bit differently and tell you the back story behind the creation of the extension, show you an example, and then I’ll provide you with the code and usage details. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;What is Amazon aStore?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I’ve looked at Amazon’s aStore offering before, but I never really had a reason to set one up or use one, until now.&amp;nbsp; The aStore is an Amazon hosted, personally branded ecommerce tool that allows you to sell any of Amazon’s products from your own site.&amp;nbsp; Notice that I wrote “Amazon hosted”. The Url for your Amazon store will look something like this: &lt;a href="http://astore.amazon.com/netbookroundup-20" title="http://astore.amazon.com/netbookroundup-20" mce_href="http://astore.amazon.com/netbookroundup-20"&gt;http://astore.amazon.com/netbookroundup-20&lt;/a&gt;. To include your aStore as part of your own site Amazon suggests that you either link directly to it, embed it in an IFrame in your site, or include it in your site using frames (pictures courtesy of the Amazon Associates web site):&lt;/p&gt;  &lt;p&gt;&lt;img src="http://danhounshell.com/blogs/dan/CropperCapture140_544B4F7E.jpg" title="CropperCapture[140]" style="border: 0px none ; display: inline;" alt="CropperCapture[140]" mce_src="http://danhounshell.com/blogs/dan/CropperCapture140_544B4F7E.jpg" width="182" border="0" height="240"&gt;&amp;nbsp; &lt;img src="http://danhounshell.com/blogs/dan/CropperCapture139_116F0B04.jpg" title="CropperCapture[139]" style="border: 0px none ; display: inline;" alt="CropperCapture[139]" mce_src="http://danhounshell.com/blogs/dan/CropperCapture139_116F0B04.jpg" width="182" border="0" height="240"&gt;&amp;nbsp;&lt;img src="http://danhounshell.com/blogs/dan/CropperCapture138_6147C040.jpg" title="CropperCapture[138]" style="border: 0px none ; display: inline;" alt="CropperCapture[138]" mce_src="http://danhounshell.com/blogs/dan/CropperCapture138_6147C040.jpg" width="182" border="0" height="240"&gt; &lt;/p&gt;  &lt;p&gt;I haven’t built anything with framesets in years and I wanted to make the store look as much a natural part of the site as possible so I took the IFrame route. Amazon suggests using the below code for your IFrame markup:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;iframe src=&lt;span class="str"&gt;"http://astore.amazon.com/netbookroundup-20"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        width=&lt;span class="str"&gt;"90%"&lt;/span&gt; height=&lt;span class="str"&gt;"4000"&lt;/span&gt; frameborder=&lt;span class="str"&gt;"0"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        scrolling=&lt;span class="str"&gt;"no"&lt;/span&gt;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;
  &lt;br&gt;To me that looked like something I should create a Graffiti Chalk extension for, so that is exactly what I did! &lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Story&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netbookroundup.com/" mce_href="http://netbookroundup.com/"&gt;NetbookRoundup.com&lt;/a&gt; is a site that I decided to put together over the holidays. I really wanted to get one of the new handy little laptops but I couldn’t make up my mind which make or model to get. I also had trouble keeping track of the current prices and sales/deals. I decided I could probably put together a nice little Graffiti site where I could do all that and then some. Plus the term “netbook” is still fairly new so I thought I might be able to find a few good domain names still available and stash them away as an investment. I’ll post more details about the Netbook Roundup site soon, but one of the things I decided to include was my a own online store with the help of Amazon aStore. &lt;/p&gt;

&lt;p&gt;Below is a screenshot of what the NetbookRoundup integrated aStore looks like when you click on the “Shop” link in the primary navigation. If you want to see it live then here’s the link: &lt;a href="http://netbookroundup.com/store/" title="http://netbookroundup.com/store/" mce_href="http://netbookroundup.com/store/"&gt;http://netbookroundup.com/store/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://danhounshell.com/blogs/dan/CropperCapture141_6A37527F.jpg" mce_href="http://danhounshell.com/blogs/dan/CropperCapture141_6A37527F.jpg"&gt;&lt;img src="http://danhounshell.com/blogs/dan/CropperCapture141_thumb_097C8A04.jpg" title="CropperCapture[141]" style="border: 0px none ; display: inline;" alt="CropperCapture[141]" mce_src="http://danhounshell.com/blogs/dan/CropperCapture141_thumb_097C8A04.jpg" width="568" border="0" height="484"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;This is a great start but I also wanted to be able to provide links directly to specific products. For example, on the page where I review the Lenovo Ideapad S10 (&lt;a href="http://netbookroundup.com/models/lenovo/ideapad-s10/" title="http://netbookroundup.com/models/lenovo/ideapad-s10/" mce_href="http://netbookroundup.com/models/lenovo/ideapad-s10/"&gt;http://netbookroundup.com/models/lenovo/ideapad-s10/&lt;/a&gt;) I want to have a link that says “&lt;a href="http://netbookroundup.com/store/?ASIN=B001GNBD8I" title="Buy the Lenovo Ideapad S10 in the Netbook Roundup Store" mce_href="http://netbookroundup.com/store/?ASIN=B001GNBD8I"&gt;Buy the Lenovo Ideapad S10 in the Netbook Roundup Store&lt;/a&gt;” and have that link directly to that product’s page in the aStore.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://danhounshell.com/blogs/dan/CropperCapture142_41BD91CD.jpg" mce_href="http://danhounshell.com/blogs/dan/CropperCapture142_41BD91CD.jpg"&gt;&lt;img src="http://danhounshell.com/blogs/dan/CropperCapture142_thumb_20CCAFD7.jpg" title="CropperCapture[142]" style="border: 0px none ; display: inline;" alt="CropperCapture[142]" mce_src="http://danhounshell.com/blogs/dan/CropperCapture142_thumb_20CCAFD7.jpg" width="568" border="0" height="484"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;By reviewing the structure of the aStore site I was able to determine that the Url for a specific product followed the pattern: &lt;a href="http://astore.amazon.com/yourstoreid/detail/ASID" mce_href="http://astore.amazon.com/yourstoreid/detail/ASID"&gt;http://astore.amazon.com/yourstoreid/detail/ASID&lt;/a&gt;, where ASID is the Amazon product id. So all I had to do was figure out how to get that product id into the Iframe’s src tag. I could have used some javascript but I instead opted to just include the ASID as a querystring key/value paramater in the Graffiti post’s Url. The chalk code checks to see if the ASID is present, if it is then it sets the source of the iframe accordingly, if not then it just uses the base aStore Url.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;Okay, enough story time, here’s the code…&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;What does this Chalk Extension do?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;You use it to display an Amazon aStore as part of your Graffiti site.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The Code&lt;/b&gt;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; Graffiti.Core;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; DanHounshell.Graffiti.Chalk &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   [Chalk(&lt;span class="str"&gt;"AmazonAStore"&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; AmazonAStore &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;   {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; HTML(&lt;span class="kwrd"&gt;string&lt;/span&gt; AStoreUrl) &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;      {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; HTML(AStoreUrl, &lt;span class="str"&gt;""&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;      }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; HTML(&lt;span class="kwrd"&gt;string&lt;/span&gt; AStoreUrl, &lt;span class="kwrd"&gt;string&lt;/span&gt; ASID) &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;      {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (!&lt;span class="kwrd"&gt;string&lt;/span&gt;.IsNullOrEmpty(ASID))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;         {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            AStoreUrl += &lt;span class="str"&gt;"/detail/"&lt;/span&gt; + ASID;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;         }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;"&amp;lt;iframe src=\"{0}\" &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            width=\"100%\" height=\"4000\" &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            frameborder=\"0\" scrolling=\"no\"&amp;gt;&amp;lt;/iframe&amp;gt;", &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            AStoreUrl);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;      }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;   }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Usage&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Just place the following code into the proper view for wherever you want your aStore displayed in your Graffiti site:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$AmazonAStore.HTML(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;     &lt;span class="str"&gt;"http://astore.amazon.com/YourAStoreId"&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;This will display the aStore homepage like I have pictured in the screenshot above.&lt;/p&gt;

&lt;p&gt;For including the aStore in the Netbook Roundup site, I created a new uncategorized post called “Store” and then created a new custom view called store.view, based on post.view. The new view, store.view, is what is displayed when a user is looking at the “Store” post. I then pasted just the AStore chalk markup into that custom view. YMMV – you may have other markup that you want to include in the custom view, I didn’t. The rendered HTML of the aStore is about 800px wide so you might need to consider creating a new custom layout for your post that doesn’t display any sidebars or other items included on your other pages. I’d suggest creating a copy of your layout.view called store.layout.view and stripping out anything you don’t need. If you follow the same setup that I did, don’t forget to create a custom navigation item for your main nav that points to the Url of your store post. &lt;/p&gt;

&lt;p&gt;If you want to allow for direct linking to products then you can do something similar to the following and just include “?ASIN=AmazonProductId” in any Urls to your Graffiti store post when you want to link to a specific product (ex: &lt;a href="http://netbookroundup.com/store/?ASIN=B001GNBD8I" title="http://netbookroundup.com/store/?ASIN=B001GNBD8I" mce_href="http://netbookroundup.com/store/?ASIN=B001GNBD8I"&gt;http://netbookroundup.com/store/?ASIN=B001GNBD8I&lt;/a&gt;):&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$AmazonAStore.HTML(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;          &lt;span class="str"&gt;"http://astore.amazon.com/YourAStoreId"&lt;/span&gt;, &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;          $QueryStringHelper.GetQueryStringValue(&lt;span class="str"&gt;"ASIN"&lt;/span&gt;))&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Notice the use of the &lt;a href="http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;QueryStringHelper.GetQueryStringValue&lt;/a&gt; chalk extension in the code above. I told you I’d show you a useful real-world example!&lt;/p&gt;

&lt;p&gt;Finally, if you want to store your aStore’s url in your web.config file rather than hard code it into the view you can use the &lt;a href="http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;ConfigurationAppSettings.GetAppSetting&lt;/a&gt; chalk extension:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$AmazonAStore.HTML(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;     $ConfigurationAppSettings.GetAppSetting(&lt;span class="str"&gt;"Amazon.AStoreUrl"&lt;/span&gt;),&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;     $QueryStringHelper.GetQueryStringValue(&lt;span class="str"&gt;"ASIN"&lt;/span&gt;))&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Of course you could just hard-code the Amazon aStore IFrame HTML code into a Graffiti post and instantly add a store to your Graffiti site, but what fun is that?!?! Also, you won’t get the ability to link directly to a product page without adding some of your own NVelocity markup. &lt;/p&gt;

&lt;p&gt;Not everyone can (or should) use an Amazon aStore in their Graffiti site. It doesn’t make sense for my personal blog and it probably doesn’t make sense for yours either. But if you have a product-based blog, do software reviews, or even a lot of book reviews then including a store in your site might be fun and maybe even put a few extra dollars in your pocket.&amp;nbsp; &lt;/p&gt;&lt;p&gt;In future posts I'll discuss some of the other Graffiti custom widgets and chalk extensions that created for the &lt;a href="http://netbookroundup.com" title="Netbook roundup" mce_href="http://netbookroundup.com"&gt;Netbook Roundup site&lt;/a&gt;, including displaying ebay auctions that match the content (which &lt;a href="http://danhounshell.com/blogs/dan/archive/2008/03/05/graffiti-does-ebay.aspx" title="Graffiti does eBay" mce_href="http://danhounshell.com/blogs/dan/archive/2008/03/05/graffiti-does-ebay.aspx"&gt;I've discussed in the past for a different Graffiti site&lt;/a&gt;), writing chalk extension that pulls data from various web services to provide price comparison shopping links, and more. See the &lt;a href="http://netbookroundup.com/models/msi/wind-u100/" title="MSI Wind U100" mce_href="http://netbookroundup.com/models/msi/wind-u100/"&gt;MSI Wind page on the Netbook Roundup site&lt;/a&gt; for examples of ebay and price comparisons. Notice the "Buy the MSI Wind U100 in the Netbook Roundup Store" link? That's something that you can do now, too!&amp;nbsp; &lt;/p&gt;

&lt;p&gt;I hope you find this Graffiti Chalk extension tip useful. Please leave a comment if you have any suggestions or questions.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx&amp;amp;;subject=Customizing+Graffiti%3a+The+Amazon+aStore+Chalk+Extension" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx&amp;amp;;title=Customizing+Graffiti%3a+The+Amazon+aStore+Chalk+Extension" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx&amp;amp;;title=Customizing+Graffiti%3a+The+Amazon+aStore+Chalk+Extension" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx&amp;amp;;title=Customizing+Graffiti%3a+The+Amazon+aStore+Chalk+Extension&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10539" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/LCoI0z2xFsk" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Graffiti/default.aspx">Graffiti</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/chalk/default.aspx">chalk</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/02/02/customizing-graffiti-the-amazon-astore-chalk-extension.aspx</feedburner:origLink></item><item><title>Customizing Graffiti: Chalk GetQuerystringValue</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/0SFpQnM6bcc/customizing-graffiti-chalk-getquerystringvalue.aspx</link><pubDate>Wed, 28 Jan 2009 06:48:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10526</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10526</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx" mce_href="http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;My last Customizing Graffiti post&lt;/a&gt; was a simple little thing. This one is just as simple - the GetQuerystringValue Chalk extension. I had a need for pulling a value from the querystring recently and using it my view markup. I was sure that something to do that must exist in Graffiti, but I looked and looked through the Graffiti docs and forums and came up empty. &lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;What does it do?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;You use it to pull a value out of Querystring parameter. That’s it. I’ve found this to be really useful to pull in a querystring value for use as a parameter in another Chalk extension method call.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;The Code&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; DanHounshell.Graffiti.Chalk &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   [Chalk(&lt;span class="str"&gt;"QueryStringHelper"&lt;/span&gt;)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; QuerystringHelper &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetQuerystringValue(&lt;span class="kwrd"&gt;string&lt;/span&gt; key) &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;         &lt;span class="kwrd"&gt;if&lt;/span&gt; (HttpContext.Current.Request.QueryString[key] != &lt;span class="kwrd"&gt;null&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;         {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; HttpContext.Current.Request.QueryString[key];&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;         }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;      }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;   }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&lt;b&gt;Usage&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Just place the following wherever you need it in your view markup:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$QuerystringHelper.GetQuerystringValue(&lt;span class="str"&gt;"SomeQuerystringKey"&lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;An entirely fictional “real world” example: I have a chalk extension that uses the Ebay API to get a list of the top 5 “going soon” auctions that match a specific keyword. I’m thinking about adding this to the bottom of every post on my site by including it in my post.view markup. The chalk method call inside my view pages might look like this: &lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$EbayService.GetAuctions(&lt;span class="str"&gt;"some keyword"&lt;/span&gt;, 5)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;I could always hardcode a keyword into the method call, but that wouldn’t be very useful. Or I could create a custom field for each post that is used as the keyword for the method call when that post is displayed. That might be a little better and could serve as the default. But let’s go a little further. If someone searched for a term on my Graffiti site, wouldn’t it be cool if I could use the term that they used to pull back Ebay auctions that match that term. I could see that being useful! &lt;/p&gt;

&lt;p&gt;So in my index.view file I use conditionals to determine if it is displaying search results and if so then I append a querystring value like “searchedfor=thekeyword” to the Url of posts displayed in the search results. Then in my post.view I add something like this:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="preproc"&gt;#if&lt;/span&gt; ($QuerystringHelper.GetQuerystringValue(&lt;span class="str"&gt;"searchedfor"&lt;/span&gt;) != &lt;span class="str"&gt;""&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;   $!EbayService.GetAuctions($QuerystringHelper.GetQuerystringValue(&lt;span class="str"&gt;"searchedfor"&lt;/span&gt;), 5)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="preproc"&gt;#else&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   $!EbayService.GetAuctions($!post.Custom(&lt;span class="str"&gt;"EbaySearchTerm"&lt;/span&gt;), 5)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;#end&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;When they click on a link in the search results they go to a post with the querystring appended. Now I can display items that match the search term they used previously or default to a custom term that I specified when I wrote the post if none is present.&lt;/p&gt;

&lt;p&gt;Okay, I admit I took the long way around to create a complex contrived example to demo a piece of code that is so simple, but I promise that I will post a really good example that makes use of all three of my recent Graffiti tips later this week.&amp;nbsp; &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Notes&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;After demoing this code to &lt;a href="http://ndepth.net/" mce_href="http://ndepth.net/"&gt;Jayme&lt;/a&gt;, he said something like “We already have that in Graffiti, but it is not documented very well”. He said that you can do the same thing with something like $request.QueryStringKey (where QueryStringKey = key you are trying to get the value of). There’s nothing like re-inventing the wheel!&lt;/p&gt;

&lt;p&gt;Be careful, the above extension returns the raw querystring value without any html encoding or parsing of bad stuff. Make sure you take any necessary precautions before writing the value out to HTML, passing it to a database, etc. &lt;/p&gt;

&lt;p&gt;I hope you find this Graffiti Chalk extension tip useful. Please leave a comment if you have any suggestions or questions.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx&amp;amp;;subject=Customizing+Graffiti%3a+Chalk+GetQuerystringValue" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetQuerystringValue" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetQuerystringValue" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetQuerystringValue&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10526" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/0SFpQnM6bcc" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Graffiti/default.aspx">Graffiti</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/chalk/default.aspx">chalk</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/01/28/customizing-graffiti-chalk-getquerystringvalue.aspx</feedburner:origLink></item><item><title>Customizing Graffiti: Chalk GetAppSetting</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/XCiy3k_VOL0/customizing-graffiti-chalk-getappsetting.aspx</link><pubDate>Tue, 20 Jan 2009 06:34:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10509</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10509</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx#comments</comments><description>&lt;p mce_keep="true"&gt;Continued Graffiti goodness. Here is another Graffiti customization - the GetAppSetting Chalk extension. I recently put this one together so I haven’t grown to love it as much as the &lt;a href="http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx" title="RedirectIfSinglePost" mce_href="http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;RedirectIfSinglePost&lt;/a&gt; extension, but it is very handy to have around when you need it. &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;What does it do?&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;You use it to pull a AppSettings configuration value from your web.config file. I think Graffiti’s Custom Fields are great and I use them all the time, but I’ve found that sometimes I just need access to a custom value that is the same for all posts or categories. Storing that value in the web.config makes a lot of sense and we ASP.NET developers are used to utilizing the AppSettings section. But I couldn’t find an easy way to access the web.config AppSettings inside my views. So I wrote a new Chalk extensions to do just that. This really isn’t all that powerful by itself, I could have just hard-coded a string in the view, but it’s really useful for storing something like an Amazon or Twitter API key that’s used in calls for other Chalk extensions. &lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&lt;b&gt;The Code&lt;/b&gt;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;div class="csharpcode"&gt;     &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; DanHounshell.Graffiti.Chalk &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;   [Chalk(&lt;span class="str"&gt;"ConfigurationAppSettings"&lt;/span&gt;)]&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ConfigurationAppSettings &lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;   {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;string&lt;/span&gt; GetAppSetting(&lt;span class="kwrd"&gt;string&lt;/span&gt; setting) &lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;         &lt;span class="kwrd"&gt;return&lt;/span&gt; ConfigurationManager.AppSettings[setting];&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;      }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;   }&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;}&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/div&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Usage&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Just place the following wherever you need it in your view markup:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$ConfigurationAppSettings.GetAppSetting("SomeAppSettingKey");&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;As I mentioned, I find this most powerful when mixing with other Chalk extension calls. Here’s an example of a fictional call to a Chalk extension that hits the Ebay Web Service to return 10 products that match the search term “dell laptop”. The GetAuctions method expects my Ebay API key. Rather than hard-coding it into my view I instead store in the AppSettings section of my web.config file and use the GetAppSetting call to pull it out:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;div class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;$EbayService.GetAuctions(&lt;span class="str"&gt;"dell laptop"&lt;/span&gt;, &lt;/pre&gt;&lt;pre class="alt"&gt;		10, &lt;/pre&gt;&lt;pre class="alt"&gt;		$ConfigurationAppSettings.GetAppSetting(&lt;span class="str"&gt;"MyEbayAPIKey"&lt;/span&gt;))&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;I hope you find this Graffiti Chalk extension useful. Please leave a comment if you have any suggestions or questions.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx&amp;amp;;subject=Customizing+Graffiti%3a+Chalk+GetAppSetting" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetAppSetting" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetAppSetting" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+GetAppSetting&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10509" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/XCiy3k_VOL0" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Graffiti/default.aspx">Graffiti</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/chalk/default.aspx">chalk</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/01/20/customizing-graffiti-chalk-getappsetting.aspx</feedburner:origLink></item><item><title>Customizing Graffiti: Chalk RedirectIfSinglePost</title><link>http://feedproxy.google.com/~r/DiggingMyBlog/~3/Q0pAe_QbdCU/customizing-graffiti-chalk-redirectifsinglepost.aspx</link><pubDate>Mon, 19 Jan 2009 04:20:00 GMT</pubDate><guid isPermaLink="false">77552a6a-5aec-40f5-92f3-52e0639c4162:10504</guid><dc:creator>Dan Hounshell</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://danhounshell.com/blogs/dan/rsscomments.aspx?PostID=10504</wfw:commentRss><comments>http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;In my last post I promised a wealth of Graffiti posts would soon be flowing from my finger tips. Here is my first and probably my favorite Graffiti customization - the RedirectIfSinglePost Chalk extension. I have used this on every Graffiti site I've put together or toyed around with. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;What does it do?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you place a call to this Chalk extension at the top of your index.view page then if there is only one post in the category, search results, whatever, instead of just displaying that one post in the index.view it will instead redirect directly to that post. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;The Code&lt;/STRONG&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;Very simple:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;namespace&lt;/SPAN&gt; DanHounshell.Graffiti.Chalk &lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;{&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;   [Chalk(&lt;SPAN class=str&gt;"RedirectIfSinglePost"&lt;/SPAN&gt;)]&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;   &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; RedirectIfSinglePost {&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;      &lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; Redirect(PostCollection posts)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;      {&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:  &lt;/SPAN&gt;         &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (posts.Count == 1)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;         {&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   9:  &lt;/SPAN&gt;            HttpContext.Current.Response.Redirect(posts[0].Url);            &lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  10:  &lt;/SPAN&gt;         }&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  11:  &lt;/SPAN&gt;      }&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;  12:  &lt;/SPAN&gt;   }&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;  13:  &lt;/SPAN&gt;}&lt;/PRE&gt;&lt;/DIV&gt;
&lt;STYLE type=text/css&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/STYLE&gt;

&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Usage&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Just place the following at the top of your index.view page:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;$RedirectIfSinglePost.Redirect($posts)&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;One warning: If you do not have a separate home.view (you’re using index.view on your home page) and only have one post on your site then this will cause your site to redirect to that one post. This may not be what you intend. &lt;/P&gt;
&lt;P&gt;You may also want to play around with the placement of the call to Redirect(). You can try mixing into if statements to check if the index page is a category page, a tag page, or a search results page and only redirect in specific instances. For example if you only wanted to redirect on search results pages but not on tag results pages or category pages you could try something like this:&lt;/P&gt;
&lt;DIV class=csharpcode&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   1:  &lt;/SPAN&gt;#&lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt;($&lt;SPAN class=kwrd&gt;where&lt;/SPAN&gt; == &lt;SPAN class=str&gt;"category"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   2:  &lt;/SPAN&gt;     &amp;lt;h2 &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"archive_head"&lt;/SPAN&gt;&amp;gt;Posts &lt;SPAN class=kwrd&gt;in&lt;/SPAN&gt; &amp;amp;gt;&lt;SPAN class=str&gt;'$category.Name'&lt;/SPAN&gt;&amp;lt;/h2&amp;gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   3:  &lt;/SPAN&gt;#elseif($&lt;SPAN class=kwrd&gt;where&lt;/SPAN&gt; == &lt;SPAN class=str&gt;"tag"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   4:  &lt;/SPAN&gt;     &amp;lt;h2 &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt;=&lt;SPAN class=str&gt;"archive_head"&lt;/SPAN&gt;&amp;gt;Entries tagged &lt;SPAN class=str&gt;'$tag'&lt;/SPAN&gt;&amp;lt;/h2&amp;gt;&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   5:  &lt;/SPAN&gt;#elseif($&lt;SPAN class=kwrd&gt;where&lt;/SPAN&gt; == &lt;SPAN class=str&gt;"search"&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   6:  &lt;/SPAN&gt;     $RedirectIfSinglePost.Redirect($posts)&lt;/PRE&gt;&lt;PRE class=alt&gt;&lt;SPAN class=lnum&gt;   7:       &lt;/SPAN&gt;&amp;lt;h2 class="archive_head"&amp;gt;Search Results for &lt;SPAN class=str&gt;'$macros.SearchQuery'&lt;/SPAN&gt;&amp;lt;/h2&amp;gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;SPAN class=lnum&gt;   8:  &lt;/SPAN&gt;#end&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P&gt;I hope you find this Graffiti Chalk extension as useful as I have. Please leave a comment if you have any suggestions or questions.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx&amp;amp;;subject=Customizing+Graffiti%3a+Chalk+RedirectIfSinglePost" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+RedirectIfSinglePost" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+RedirectIfSinglePost" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx&amp;amp;;title=Customizing+Graffiti%3a+Chalk+RedirectIfSinglePost&amp;amp;;top=1" target="_blank" title = "Post http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://danhounshell.com/aggbug.aspx?PostID=10504" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/DiggingMyBlog/~4/Q0pAe_QbdCU" height="1" width="1"/&gt;</description><category domain="http://danhounshell.com/blogs/dan/archive/tags/Graffiti/default.aspx">Graffiti</category><category domain="http://danhounshell.com/blogs/dan/archive/tags/chalk/default.aspx">chalk</category><feedburner:origLink>http://danhounshell.com/blogs/dan/archive/2009/01/18/customizing-graffiti-chalk-redirectifsinglepost.aspx</feedburner:origLink></item></channel></rss>
