<?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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" 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>Orange is my favorite color</title>
	
	<link>http://www.ghidinelli.com</link>
	<description />
	<lastBuildDate>Mon, 09 Nov 2009 19:37:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<geo:lat>37.772329</geo:lat><geo:long>-122.41087</geo:long><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/OrangeIsMyFavoriteColor" type="application/rss+xml" /><feedburner:emailServiceId>OrangeIsMyFavoriteColor</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>HackMyCF checks your server</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/LJk8uZuC6dI/hackmycf-checks-your-server</link>
		<comments>http://www.ghidinelli.com/2009/11/09/hackmycf-checks-your-server#comments</comments>
		<pubDate>Mon, 09 Nov 2009 19:37:39 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=984</guid>
		<description><![CDATA[Adobe updated a hotfix originally released in October - HackMyCF.com will check your server to see if you're up to date.]]></description>
			<content:encoded><![CDATA[<p>Quick plug for a site built by Pete Freitag: <a href="http://hackmycf.com/">HackMyCF.com</a>.  Pete was one of the people who identified  the cross-site scripting vulnerability in ColdFusion 6-8 known as CVE-2009-1877.  His tool will run a quick test against your ColdFusion server and email you a report of its findings:</p>
<p><img src="http://www.ghidinelli.com/wp-content/uploads/2009/11/hackmycf.png" alt="Foundeo.com&#039;s HackMyCF.com report" title="Foundeo.com&#039;s HackMyCF.com report" width="300" height="285" class="aligncenter" /></p>
<p>The reason I post this is because <em>even if you already applied the hotfix for this issue</em>, it is quite likely you need to reapply it.  Adobe <em>updated</em> the hotfix but did not send a notification so if you were early on the bandwagon fixing this issue, you may find, like I did, that your server was still vulnerable.  </p>
<p>Get patched!  It&#8217;s just unzipping and copying some files so don&#8217;t dilly dally&#8230; </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=LJk8uZuC6dI:WzC03LwE-xw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=LJk8uZuC6dI:WzC03LwE-xw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=LJk8uZuC6dI:WzC03LwE-xw:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/LJk8uZuC6dI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/11/09/hackmycf-checks-your-server/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/11/09/hackmycf-checks-your-server</feedburner:origLink></item>
		<item>
		<title>Tracking Javascript disabled in Google Analytics with ColdFusion</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/i9ANIVHMhm4/log-disabled-javascript-google-analytics</link>
		<comments>http://www.ghidinelli.com/2009/11/02/log-disabled-javascript-google-analytics#comments</comments>
		<pubDate>Mon, 02 Nov 2009 23:23:58 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=977</guid>
		<description><![CDATA[Use Google Analytics to track how many users have Javascript disabled using a little noscript kung-fu courtesy of Remy Sharp]]></description>
			<content:encoded><![CDATA[<p>I found myself wondering, &#8220;If we require Javascript, how many people will we screw (and what will the customer service burden be)?&#8221;  For most answers, we turn to <a href="http://www.google.com/analytics">Google Analytics</a> but unfortunately, being Javascript-based, GA doesn&#8217;t capture that information.</p>
<p>That is, until Remy Sharp <a href="http://remysharp.com/2009/10/15/the-missing-stat-noscript/">sorted it out two weeks ago</a> by manually constructing a __utm.gif reference that uses an image inside of a &lt;noscript&gt; tag.  The code is straightforward but I&#8217;ve ported it to CF as a shortcut if you find yourself in the same situation.  Check Remy&#8217;s post for the details.</p>
<pre><code>&lt;cfsilent&gt;
&lt;cfscript&gt;
var_utmac = 'UA-12345-6'; // your identifier
var_utmhn = 'http://www.mydomain.com'; //enter your domain
var_referer = CGI.http_referer; //referer url 

var_utmp = '/noscript'; //this example adds a fake file request to the (fake) tracker directory

var_utmn = randRange(1, 9) &amp; randRange(100000000, 999999999); //random request number
var_cookie = randRange(10000000, 99999999); //random cookie number
var_random = randRange(1000000000, 2147483647); //number under 2147483647
var_today = int(getTickCount()/1000); //today
var_uservar = '-'; //enter your own user defined variable

urchinUrl = 'http://www.google-analytics.com/__utm.gif?utmwv=1&amp;amp;utmn=#var_utmn#&amp;amp;utmsr=-&amp;amp;utmsc=-&amp;amp;utmul=-&amp;amp;utmje=0&amp;amp;utmfl=-&amp;amp;utmdt=-&amp;amp;utmhn=#var_utmhn#&amp;amp;utmr=#var_referer#&amp;amp;utmp=#var_utmp#&amp;amp;utmac=#var_utmac#&amp;amp;utmcc=__utma%3D#var_cookie#.#var_random#.#var_today#.#var_today#.#var_today#.2%3B%2B__utmb%3D#var_cookie#%3B%2B__utmc%3D#var_cookie#%3B%2B__utmz%3D#var_cookie#.#var_today#.2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D#var_cookie#.#var_uservar#%3B';
&lt;/cfscript&gt;
&lt;/cfsilent&gt;&lt;cfoutput&gt;&lt;noscript&gt;&lt;img src="#urchinURL#" /&gt;&lt;/noscript&gt;&lt;/cfoutput&gt;</code></pre>
<p>If you&#8217;re wondering what is the deal with the two randRange()s concatenated together, it&#8217;s because ColdFusion&#8217;s randRange() function doesn&#8217;t like numbers greater than 2,147,483,647.  In order to get a number up to 9,999,999,999, I&#8217;m putting the two together.</p>
<p>You can read some more behind the values attached to the image at <a href="http://code.google.com/apis/analytics/docs/tracking/gaTrackingTroubleshooting.html">http://code.google.com/apis/analytics/docs/tracking/gaTrackingTroubleshooting.html</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=i9ANIVHMhm4:qaZZoFUVz-4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=i9ANIVHMhm4:qaZZoFUVz-4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=i9ANIVHMhm4:qaZZoFUVz-4:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/i9ANIVHMhm4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/11/02/log-disabled-javascript-google-analytics/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/11/02/log-disabled-javascript-google-analytics</feedburner:origLink></item>
		<item>
		<title>Run Wordpress on PostgreSQL</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/sCeNWio5HK8/running-wordpress-on-postgresql</link>
		<comments>http://www.ghidinelli.com/2009/10/05/running-wordpress-on-postgresql#comments</comments>
		<pubDate>Mon, 05 Oct 2009 15:12:04 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=972</guid>
		<description><![CDATA[Wordpress inches closer to PostgreSQL support with a third-party plugin that maps MySQL calls to Postgres.]]></description>
			<content:encoded><![CDATA[<p>Very cool &#8211; since Wordpress themselves <a href="http://codex.wordpress.org/Using_Alternative_Databases">won&#8217;t take the plunge</a>, an enterprising user has written a plugin, <a href="http://wordpress.org/extend/plugins/postgresql-for-wordpress/">PG4WP</a> which intercepts MySQL calls and directs generic calls at Postgres instead.  I wonder how well this will work for third-party plugins?  </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=sCeNWio5HK8:N6pXqxDOsZc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=sCeNWio5HK8:N6pXqxDOsZc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=sCeNWio5HK8:N6pXqxDOsZc:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/sCeNWio5HK8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/10/05/running-wordpress-on-postgresql/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/10/05/running-wordpress-on-postgresql</feedburner:origLink></item>
		<item>
		<title>Transfer donation drive succeeds!</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/GuJ1oMgLHjo/transfer-donation-drive-succeeds</link>
		<comments>http://www.ghidinelli.com/2009/09/29/transfer-donation-drive-succeeds#comments</comments>
		<pubDate>Tue, 29 Sep 2009 23:12:49 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[transfer]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=968</guid>
		<description><![CDATA[Donation drive complete - Transfer is getting a new caching infrastructure thanks to members of the Google group!]]></description>
			<content:encoded><![CDATA[<p>A little slow to get started, users of <a href="http://www.transfer-orm.com">Transfer ORM</a> came through in a big way this morning on the <a href="http://groups.google.com/group/transfer-dev/browse_thread/thread/dcf9ae247830d311">Transfer Google Group</a> to pony up and <a href="http://www.ghidinelli.com/2009/09/21/match-bounty-transfer-cache-improvements">match my $800 bounty</a>!  In fact, Mark is coming out a few dollars ahead of his original estimate which I think is a fitting end to the over-and-beyond effort he has put into Transfer and supporting people who use it.  There may be some day in the future where we all use Hibernate but this caching enhancement will make Transfer a viable long-term (<em>and stable</em>) answer for our applications.</p>
<p>Thanks to everyone on the Transfer list!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=GuJ1oMgLHjo:kEPFfaq-VDY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=GuJ1oMgLHjo:kEPFfaq-VDY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=GuJ1oMgLHjo:kEPFfaq-VDY:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/GuJ1oMgLHjo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/29/transfer-donation-drive-succeeds/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/29/transfer-donation-drive-succeeds</feedburner:origLink></item>
		<item>
		<title>Using BounceDetector without Coldspring</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/YQzfvZGUYv0/bouncedetector-without-coldspring</link>
		<comments>http://www.ghidinelli.com/2009/09/25/bouncedetector-without-coldspring#comments</comments>
		<pubDate>Fri, 25 Sep 2009 17:38:46 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[My Software]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[bounce detector]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=964</guid>
		<description><![CDATA[How to use my ColdFusion BounceDetector without Coldspring to parse bounced email for temporary, permanent, spam and challenge-response failures.]]></description>
			<content:encoded><![CDATA[<p>James Moberg asked <a href="http://www.ghidinelli.com/2009/07/10/bouncedetector-1-1-released#comments">how to use BounceDetector without Coldspring</a> this morning.  Personally, I think you&#8217;re crazy if you don&#8217;t use Coldspring, but I whipped up a demo in order to explain how to parse the bounce signatures database and manually create the BounceDetector instance if desired.  You can find the file in subversion called demowithoutcoldspring.cfm.  The only real work is parsing the XML and replicating the functionality in Coldspring that creates an array of structs from an argument that uses the &lt;map&gt; and &lt;list&gt; tags:</p>
<pre><code>&lt;cffile action="read" file="#expandPath('bouncedetector.xml')#" variable="xmlBD" /&gt;
&lt;cfset xml = xmlParse(xmlBD) /&gt;
&lt;cfset arr = xml.beans.bean[1]["constructor-arg"].list.xmlChildren /&gt;

&lt;cfset sigs = arrayNew(1) /&gt;
&lt;cfloop from="1" to="#arrayLen(arr)#" index="ii"&gt;
	&lt;cfset n = {signature = arr[ii].xmlChildren[1].xmlChildren[1].xmlText
			,weight = arr[ii].xmlChildren[2].xmlChildren[1].xmlText } /&gt;
	&lt;cfset arrayAppend(sigs, n) /&gt;
&lt;/cfloop&gt;

&lt;cfset bd = createObject("component", "bouncedetector") /&gt;
&lt;cfset bd.init(mailBounceSignatures = sigs) /&gt;</code></pre>
<p>But seriously, just drop in Coldspring! </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=YQzfvZGUYv0:g7655dKKZbo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=YQzfvZGUYv0:g7655dKKZbo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=YQzfvZGUYv0:g7655dKKZbo:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/YQzfvZGUYv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/25/bouncedetector-without-coldspring/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/25/bouncedetector-without-coldspring</feedburner:origLink></item>
		<item>
		<title>Match my bounty for Transfer cache improvements</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/Xc03o_YT1Vc/match-bounty-transfer-cache-improvements</link>
		<comments>http://www.ghidinelli.com/2009/09/21/match-bounty-transfer-cache-improvements#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:30:35 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[transfer]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=957</guid>
		<description><![CDATA[Support professional ColdFusion open source by posting a full or partial matching donation to Transfer creator Mark Mandel for caching improvements.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve <a href="http://groups.google.com/group/transfer-dev/browse_thread/thread/dcf9ae247830d311">posted an $800 bounty</a> to the Transfer ORM list to help sponsor immediate improvements in Transfer&#8217;s caching architecture.  If you are struggling with memory issues like I have or would just like more flexibility and control over Transfer&#8217;s cache, consider a full or partial matching donation and we will have the solution before the end of October.  This new, pluggable architecture will initially use the well-known eHcache but will pave the way for any caching infrastructure to be used.</p>
<p>Support open source authors and support Transfer creator <a href="http://www.compoundtheory.com">Mark Mandel</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=Xc03o_YT1Vc:uPFiHWLzbbs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=Xc03o_YT1Vc:uPFiHWLzbbs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=Xc03o_YT1Vc:uPFiHWLzbbs:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/Xc03o_YT1Vc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/21/match-bounty-transfer-cache-improvements/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/21/match-bounty-transfer-cache-improvements</feedburner:origLink></item>
		<item>
		<title>Why fitness in auto racing matters</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/xDWVFBc_Zyk/fitness-in-auto-racing-matters</link>
		<comments>http://www.ghidinelli.com/2009/09/20/fitness-in-auto-racing-matters#comments</comments>
		<pubDate>Mon, 21 Sep 2009 05:56:06 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Racing]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[HRM]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=951</guid>
		<description><![CDATA[Heart rate monitor graph from road racing practice session at Laguna SCCA race.  Shows why fitness in motorsport is so important.]]></description>
			<content:encoded><![CDATA[<p>Ignore the drama, the danger and the mAD sKillZ necessary to successfully pilot a racecar around a road course at speed lap after lap after lap.  This is why professional racers spend so much time in the gym and why successful club racers are generally quite fit:</p>
<p><a href="http://www.ghidinelli.com/wp-content/uploads/2009/09/laguna_heart_rate.png"><img src="http://www.ghidinelli.com/wp-content/uploads/2009/09/laguna_heart_rate-300x186.png" alt="Laguna Seca ITA Practice" title="Laguna Seca ITA Practice" width="300" height="186" class="alignleft" /></a></p>
<p>I go to <a href="http://www.fusegym.com">FUSE gym</a> which is a crossfit-style circuit training gym.  Consider reading <a href="http://www.amazon.com/Motorsport-Fitness-Manual-performance-physical/dp/1844255433/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1253512316&#038;sr=8-1">Motorsport Fitness Manual</a> if you want more details and programs.</p>
<p>I love my Polar heart rate monitor.  It&#8217;s an indispensable tool for exercising&#8230; if you&#8217;re working out and not using an HRM, you&#8217;re not getting the most you can from your time in the gym or on the trail.</p>
<h2>Update!</h2>
<p><a href="http://www.ghidinelli.com/wp-content/uploads/2009/09/laguna_data_plus_hrm.png"><img src="http://www.ghidinelli.com/wp-content/uploads/2009/09/laguna_data_plus_hrm-267x300.png" alt="Laguna ITA lap data acquisition plus heart rate monitor overlay" title="Laguna ITA lap data acquisition plus heart rate monitor overlay" width="267" height="300" class="alignleft" /></a>I have added a second graph &#8211; this time it&#8217;s the last two hot laps of the session from the data acquisition system which shows relative performance.  As this was my first session in an unfamiliar car at a racetrack I haven&#8217;t been to in 3 years, I was trying different lines and approaches.  Clearly some parts of each lap were better than others. <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=xDWVFBc_Zyk:PmeZZadyVkw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=xDWVFBc_Zyk:PmeZZadyVkw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=xDWVFBc_Zyk:PmeZZadyVkw:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/xDWVFBc_Zyk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/20/fitness-in-auto-racing-matters/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/20/fitness-in-auto-racing-matters</feedburner:origLink></item>
		<item>
		<title>Web Endurance</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/dPbYF7FBeRg/web-endurance</link>
		<comments>http://www.ghidinelli.com/2009/09/10/web-endurance#comments</comments>
		<pubDate>Thu, 10 Sep 2009 18:13:01 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=941</guid>
		<description><![CDATA[Digital media is ephemeral but the discovery of an old consulting project is a quick trip down memory lane]]></description>
			<content:encoded><![CDATA[<p>One of the things I regularly lament is the lack of permanence on the web.  Especially when I had my design firm <a href="http://www.vfive.com">VFIVE</a>, often our client work would be replaced or disappear in as little as 12 months after we completed it.</p>
<p>That&#8217;s why I was surprised to get an email this morning from my buddy Trevor Peace who found our project for the <a href="http://www.darpa.mil/grandchallenge05/gcorg/index.html">2005 DARPA Grand Challenge</a> not just online but actually still functioning!  Fun to reminisce!  </p>
<p><a href="http://www.ghidinelli.com/wp-content/uploads/2009/09/darpagrandchallenge.png"><img src="http://www.ghidinelli.com/wp-content/uploads/2009/09/darpagrandchallenge-300x272.png" alt="2005 DARPA Grand Challenge website built by UIFocus/Brilliant Media" title="2005 DARPA Grand Challenge website built by UIFocus/Brilliant Media" width="300" height="272" class="aligncenter" /></a></p>
<p>We built a real-time Flash leaderboard that showed where the automated vehicles were on course from a GPS location feed.   This was one of the few projects that I worked on that was an &#8220;event&#8221;.  E.g., it wasn&#8217;t launched and then took on a life of its own.  Instead, the shelf life for this was just a few weeks with a particularly important 36 hours during the race through the desert near Primm, Nevada.  That kind of pressure brings new emphasis on testing.  Especially when your customer is the Department of Defense!</p>
<p>The lack of permanence on the web makes me envious of people who work with their hands for a living.  I&#8217;m sure this is a &#8220;grass is greener&#8221; feeling but the kind of work where you physically create or sell something has a lot of appeal to me at this stage of my life.  It&#8217;s also a lot easier to explain to your grandparents. <img src='http://www.ghidinelli.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dPbYF7FBeRg:xo6SZnXh8tg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dPbYF7FBeRg:xo6SZnXh8tg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dPbYF7FBeRg:xo6SZnXh8tg:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/dPbYF7FBeRg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/10/web-endurance/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/10/web-endurance</feedburner:origLink></item>
		<item>
		<title>The Struggle</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/dRPiF7gT8xI/the-struggle</link>
		<comments>http://www.ghidinelli.com/2009/09/09/the-struggle#comments</comments>
		<pubDate>Wed, 09 Sep 2009 16:41:47 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[inspiration]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=932</guid>
		<description><![CDATA[Nearly every great success comes after a great struggle.  Don't stop now.]]></description>
			<content:encoded><![CDATA[<p>From Outside Magazine&#8217;s &#8220;<a strong="http://outside.away.com/outside/culture/200907/lance-armstrong-tour-de-france-1999-1.html">Creation Story</a>&#8221; about the events leading up to Lance Armstrong&#8217;s first Tour de France victory:</p>
<blockquote><p><strong>ARMSTRONG:</strong> I said, &#8220;Is it in USA Today, for example?&#8221; And Bill&#8217;s like &#8220;Um&#8230;It&#8217;s on the cover every day.&#8221;</p></blockquote>
<p>Imagine a Lance Armstrong unaware that his leading the TdF is a big story in the US.  Hard to picture now, isn&#8217;t it?</p>
<p>I started following some professional auto racers on Twitter recently and noticed that every single one of them was following <a href="http://twitter.com/livestrong">Armstrong</a>.  It led to me picking up this magazine at REI awhile later.  I have much respect for anyone who utterly dominates a sport be it Armstrong in cycling, Schumacher in F1 or Tiger in golf but the interesting storytelling of Armstrong&#8217;s first run for the victory was enlightening.</p>
<p>People like to think (and TV certainly condones the idea) that success arrives on a horse in the night to the chosen ones.  Bullshit.  If you aren&#8217;t out riding 120 miles on your bike in the rain every day of the week for 10 years, you don&#8217;t get to beat Lance Armstrong.  </p>
<p>Just remember when you&#8217;re struggling to be check if it&#8217;s a <a href="http://sethgodin.typepad.com/the_dip/">dip</a> or a dead end.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dRPiF7gT8xI:8LNg--4y_BY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dRPiF7gT8xI:8LNg--4y_BY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=dRPiF7gT8xI:8LNg--4y_BY:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/dRPiF7gT8xI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/09/the-struggle/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/09/the-struggle</feedburner:origLink></item>
		<item>
		<title>Managing CDNs in your Application</title>
		<link>http://feedproxy.google.com/~r/OrangeIsMyFavoriteColor/~3/6Da10znI5VA/managing-application-content-distribution-network</link>
		<comments>http://www.ghidinelli.com/2009/09/03/managing-application-content-distribution-network#comments</comments>
		<pubDate>Thu, 03 Sep 2009 17:15:13 +0000</pubDate>
		<dc:creator>brian</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Web/Internet]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[model-glue]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.ghidinelli.com/?p=926</guid>
		<description><![CDATA[Once you have static assets deployed to your CDN (using Ant!), how do you manage development, staging and production in your application?]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.mxunit.org">Marc Esher</a> asked a question about how I use my CDNs during development.  I didn&#8217;t really address how the web application (in my case, ColdFusion) fits into the picture. </p>
<p>First, to actually generate the files, one of the targets for <a href="http://www.ghidinelli.com/2009/09/02/deploying-assets-amazon-s3-ant/">my Ant script</a> is &#8220;localdeploy&#8221; and my development.properties file has all Windows paths that point to my local webroot with a directory for my static assets.  The &#8220;magic&#8221; is in my Model-Glue application config file where I have a couple of properties:</p>
<pre><code>&lt;entry key="CDNURL"&gt;&lt;value&gt;cdn-mybucket.s3.amazonaws.com&lt;/value&gt;&lt;/entry&gt;
&lt;entry key="CDNZURL"&gt;&lt;value&gt;cdnz-mybucket.s3.amazonaws.com&lt;/value&gt;&lt;/entry&gt;</code></pre>
<p>One is for gzipped assets and one is not.  As part of my theming system, I have a controller with this routine that runs on every request:</p>
<p><code>&lt; !--- determine HTTP/HTTPS and current WEB_HOST ---&gt;<br />
&lt;cfif cgi.server_port_secure&gt;<br />
	&lt;cfset arguments.event.setValue("CurrentRootURI", "https://" &amp; getThemeService().getConfig().getConfigSetting("WEB_HOST")) /&gt;<br />
	&lt;cfif findNoCase("gzip", cgi.HTTP_ACCEPT_ENCODING)&gt;<br />
		&lt;cfset arguments.event.setValue("CDNURL", "https://" &amp; getThemeService().getConfig().getConfigSetting("CDNZURL")) /&gt;<br />
	&lt;cfelse&gt;<br />
		&lt;cfset arguments.event.setValue("CDNURL", "https://" &amp; getThemeService().getConfig().getConfigSetting("CDNURL")) /&gt;<br />
	&lt;/cfif&gt;<br />
&lt;cfelse&gt;<br />
	&lt;cfset arguments.event.setValue("CurrentRootURI", "http://" &amp; getThemeService().getConfig().getConfigSetting("WEB_HOST")) /&gt;<br />
	&lt;cfif findNoCase("gzip", cgi.HTTP_ACCEPT_ENCODING)&gt;<br />
		&lt;cfset arguments.event.setValue("CDNURL", "http://" &amp; getThemeService().getConfig().getConfigSetting("CDNZURL")) /&gt;<br />
	&lt;cfelse&gt;<br />
		&lt;cfset arguments.event.setValue("CDNURL", "http://" &amp; getThemeService().getConfig().getConfigSetting("CDNURL")) /&gt;<br />
	&lt;/cfif&gt;<br />
&lt;/cfif&gt;</code></p>
<p>Basically we&#8217;re checking for HTTP vs. HTTPS and whether or not the client can support Gzipped content (signaled by the Accept header).  Then my HTML wrapper just uses those parameters:</p>
<p><code>&lt;link rel="icon" href="#CDNURL#/favicon.ico" type="image/ico" /&gt;</code></p>
<p>At this point you should recognize that <em>every</em> static asset MUST have a prefix that points at your CDN.  You can hardcode it, make it dynamic like I have, or something else altogether but you need a way to point <em>every</em> request for a static asset off to the appropriate location.</p>
<p>Generally when I&#8217;m developing locally I actually use my staging environment CDN.  This helps me prove that it works when accessed remotely.  But if I want to use my local environment during a more substantial build out, I just set my CDNURL and CDNZURL to empty strings and all of my references suddenly evaluate locally:</p>
<p><code>&lt;link rel="icon" href="/favicon.ico" type="image/ico" /&gt;</code></p>
<p>I use directories on my CDN like /global, /js, /css and /gfx so to make it all work seamlessly locally, I have a few Apache alias statements in my httpd.conf for the VirtualHost:</p>
<p><code># CDN<br />
Alias /gfx "C:/Documents and Settings/brian/My Documents/web/cdn/gfx"<br />
Alias /js "C:/Documents and Settings/brian/My Documents/web/cdn/js"<br />
Alias /css "C:/Documents and Settings/brian/My Documents/web/cdn/css"<br />
Alias /global "C:/Documents and Settings/brian/My Documents/web/cdn/global"</code></p>
<p>Note that an added benefit of this which I touched on in my last post is that if Amazon S3 should suffer a major outage, I can reconfigure my production app to have empty strings for the CDN and CDZ URLs and use a locally stored copy of the assets on our regular web servers.  It&#8217;s trivial and adds a layer of reliability for a system that we don&#8217;t manage directly.</p>
<p>Hope that fills in the missing blanks! </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=6Da10znI5VA:GDYtm38NJBA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=6Da10znI5VA:GDYtm38NJBA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?a=6Da10znI5VA:GDYtm38NJBA:2mJPEYqXBVI"><img src="http://feeds.feedburner.com/~ff/OrangeIsMyFavoriteColor?d=2mJPEYqXBVI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/OrangeIsMyFavoriteColor/~4/6Da10znI5VA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ghidinelli.com/2009/09/03/managing-application-content-distribution-network/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ghidinelli.com/2009/09/03/managing-application-content-distribution-network</feedburner:origLink></item>
	</channel>
</rss>
