<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brian Grinstead</title>
	<atom:link href="http://www.briangrinstead.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://www.briangrinstead.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 10 May 2012 19:49:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Drag Out Images and Canvas With Filenames</title>
		<link>http://www.briangrinstead.com/blog/drag-out-images-and-canvas-with-filenames</link>
		<comments>http://www.briangrinstead.com/blog/drag-out-images-and-canvas-with-filenames#comments</comments>
		<pubDate>Thu, 10 May 2012 15:20:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[dragout]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=947</guid>
		<description><![CDATA[It can be annoying that when you drag out images of a browser window, they are named png.png (or something equally useless). I was playing around with fixing this &#8211; it is a little inconvenience in my CSS Sprite Generator that would be nice to have working (naming the file based on their input). Here [...]]]></description>
			<content:encoded><![CDATA[<p>It can be annoying that when you drag out images of a browser window, they are named <code>png.png</code> (or something equally useless).  I was playing around with fixing this &#8211; it is a little inconvenience in my <a href='http://instantsprite.com'>CSS Sprite Generator</a> that would be nice to have working (naming the file based on their input).  Here is what I came up with (no library dependancies):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;color: #0000FF;">function</span> dragoutImages<span style="color: #009900;color: #000000;">&#40;</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;color: #0000FF;">if</span> <span style="color: #009900;color: #000000;">&#40;</span><span style="color: #339933;color: #000000;">!</span>document.<span style="color: #660066;">addEventListener</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
        <span style="color: #000066; font-weight: bold;color: #0000FF;">return</span><span style="color: #339933;color: #000000;">;</span>
    <span style="color: #009900;color: #000000;">&#125;</span>
&nbsp;
    document.<span style="color: #660066;">addEventListener</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;dragstart&quot;</span><span style="color: #339933;color: #000000;">,</span> <span style="color: #003366; font-weight: bold;color: #0000FF;">function</span><span style="color: #009900;color: #000000;">&#40;</span>e<span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
        <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> element <span style="color: #339933;color: #000000;">=</span> e.<span style="color: #660066;">target</span><span style="color: #339933;color: #000000;">;</span>
        <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> src<span style="color: #339933;color: #000000;">;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;color: #0000FF;">if</span> <span style="color: #009900;color: #000000;">&#40;</span>element.<span style="color: #660066;">tagName</span> <span style="color: #339933;color: #000000;">===</span> <span style="color: #3366CC;color: #808080;">&quot;IMG&quot;</span> <span style="color: #339933;color: #000000;">&amp;&amp;</span> element.<span style="color: #660066;">src</span>.<span style="color: #660066;">indexOf</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;data:&quot;</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #339933;color: #000000;">===</span> <span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
            src <span style="color: #339933;color: #000000;">=</span> element.<span style="color: #660066;">src</span><span style="color: #339933;color: #000000;">;</span>
        <span style="color: #009900;color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;color: #0000FF;">if</span> <span style="color: #009900;color: #000000;">&#40;</span>element.<span style="color: #660066;">tagName</span> <span style="color: #339933;color: #000000;">===</span> <span style="color: #3366CC;color: #808080;">&quot;CANVAS&quot;</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
            <span style="color: #000066; font-weight: bold;color: #0000FF;">try</span> <span style="color: #009900;color: #000000;">&#123;</span>
                src <span style="color: #339933;color: #000000;">=</span> element.<span style="color: #660066;">toDataURL</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span>
            <span style="color: #009900;color: #000000;">&#125;</span>
            <span style="color: #000066; font-weight: bold;color: #0000FF;">catch</span><span style="color: #009900;color: #000000;">&#40;</span>e<span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>  <span style="color: #009900;color: #000000;">&#125;</span>
        <span style="color: #009900;color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;color: #0000FF;">if</span> <span style="color: #009900;color: #000000;">&#40;</span>src<span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #009900;color: #000000;">&#123;</span>
            <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> <span style="color: #000066;color: #0000FF;">name</span> <span style="color: #339933;color: #000000;">=</span> element.<span style="color: #660066;">getAttribute</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;alt&quot;</span><span style="color: #009900;color: #000000;">&#41;</span> <span style="color: #339933;color: #000000;">||</span> <span style="color: #3366CC;color: #808080;">&quot;download&quot;</span><span style="color: #339933;color: #000000;">;</span>
            <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> mime <span style="color: #339933;color: #000000;">=</span> src.<span style="color: #660066;">split</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;;&quot;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span>.<span style="color: #660066;">split</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;data:&quot;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">;</span>
            <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> ext <span style="color: #339933;color: #000000;">=</span> mime.<span style="color: #660066;">split</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;/&quot;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #009900;color: #000000;">&#93;</span> <span style="color: #339933;color: #000000;">||</span> <span style="color: #3366CC;color: #808080;">&quot;png&quot;</span><span style="color: #339933;color: #000000;">;</span>
            <span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> download <span style="color: #339933;color: #000000;">=</span> mime <span style="color: #339933;color: #000000;">+</span> <span style="color: #3366CC;color: #808080;">&quot;:&quot;</span> <span style="color: #339933;color: #000000;">+</span> <span style="color: #000066;color: #0000FF;">name</span> <span style="color: #339933;color: #000000;">+</span> <span style="color: #3366CC;color: #808080;">&quot;.&quot;</span> <span style="color: #339933;color: #000000;">+</span> ext <span style="color: #339933;color: #000000;">+</span> <span style="color: #3366CC;color: #808080;">&quot;:&quot;</span> <span style="color: #339933;color: #000000;">+</span> src<span style="color: #339933;color: #000000;">;</span>
&nbsp;
            e.<span style="color: #660066;">dataTransfer</span>.<span style="color: #660066;">setData</span><span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;DownloadURL&quot;</span><span style="color: #339933;color: #000000;">,</span> download<span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span>   
        <span style="color: #009900;color: #000000;">&#125;</span>
    <span style="color: #009900;color: #000000;">&#125;</span><span style="color: #339933;color: #000000;">,</span> <span style="color: #003366; font-weight: bold;color: #0000FF;">false</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span>
<span style="color: #009900;color: #000000;">&#125;</span></pre></div></div>

<p>You just need to specify the <code>alt</code> attribute on the image or canvas to specify your name (along with the <code>draggable</code> attribute on canvas elements) and the script should handle the rest.</p>
<h3>Browser Support</h3>
<p>I am not 100% sure on browser support.  This used to be Chrome only according to <a href='http://www.html5rocks.com/en/tutorials/casestudies/box_dnd_download/'>this HTML5rocks article</a>, but maybe other browsers have picked it up by now.  It is a neat little addition when available though.</p>
<h3>Demos</h3>
<p>See the full demo: <a href='http://jsfiddle.net/bgrins/xgdSC/'>drag out images with custom file name</a>.  This shows the ability to drag out both image and canvas tags.</p>
<p>On this page, you should be able to drag out the following <a href='http://bgrins.github.com/spectrum'>colorpicker</a> screenshot, which will be called spectrum.png. </p>
<p><img alt="spectrum" title='Go ahead, drag me out' src="data:image/png;base64,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" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/drag-out-images-and-canvas-with-filenames/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Astar Graph Search &#8211; Variable Costs</title>
		<link>http://www.briangrinstead.com/blog/astar-graph-search-variable-costs</link>
		<comments>http://www.briangrinstead.com/blog/astar-graph-search-variable-costs#comments</comments>
		<pubDate>Tue, 08 May 2012 13:02:12 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[algorithm]]></category>
		<category><![CDATA[astar]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=935</guid>
		<description><![CDATA[I&#8217;ve been working on updating my A* Graph Search Algorithm (A* on Github) and toying with the idea of adding variable costs to the grid, also known as weighted paths. I opened an issue to add weighting to graph nodes a while ago, but am a little stuck on the implementation details. My initial thought [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on updating my <a href='http://www.briangrinstead.com/blog/astar-search-algorithm-in-javascript'>A* Graph Search Algorithm</a> (<a href='https://github.com/bgrins/javascript-astar'>A* on Github</a>) and toying with the idea of adding variable costs to the grid, also known as weighted paths.</p>
<p>I opened an <a href='https://github.com/bgrins/javascript-astar/issues/3'> issue to add weighting to graph nodes</a> a while ago, but am a little stuck on the implementation details.  My initial thought was to change the semantics of the graph.  Right now, here is a sample graph:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
<span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> GraphNodeType <span style="color: #339933;color: #000000;">=</span> <span style="color: #009900;color: #000000;">&#123;</span> 
    <span style="color: #000066;color: #0000FF;">OPEN</span><span style="color: #339933;color: #000000;">:</span> <span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span> 
    WALL<span style="color: #339933;color: #000000;">:</span> <span style="color: #CC0000;color: #808080;">1</span> 
<span style="color: #009900;color: #000000;">&#125;</span><span style="color: #339933;color: #000000;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;color: #008000;">// 0 represents an open node, 1 represents a wall </span>
<span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> graph <span style="color: #339933;color: #000000;">=</span> <span style="color: #003366; font-weight: bold;color: #0000FF;">new</span> Graph<span style="color: #009900;color: #000000;">&#40;</span><span style="color: #009900;color: #000000;">&#91;</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span>
<span style="color: #009900;color: #000000;">&#93;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span></pre></div></div>

<p>My initial plan for adding weighting was something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
<span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> GraphNodeType <span style="color: #339933;color: #000000;">=</span> <span style="color: #009900;color: #000000;">&#123;</span> 
    WALL<span style="color: #339933;color: #000000;">:</span> <span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span>
<span style="color: #009900;color: #000000;">&#125;</span><span style="color: #339933;color: #000000;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;color: #008000;">// Anything &gt; 0 represents the cost to travel to that node, 0 represents a wall</span>
<span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> graph <span style="color: #339933;color: #000000;">=</span> <span style="color: #003366; font-weight: bold;color: #0000FF;">new</span> Graph<span style="color: #009900;color: #000000;">&#40;</span><span style="color: #009900;color: #000000;">&#91;</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">2</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">3</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">4</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">3</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">10</span><span style="color: #009900;color: #000000;">&#93;</span>
<span style="color: #009900;color: #000000;">&#93;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span></pre></div></div>

<p>One major issue with that is that it breaks backwards compatibility with the plugin.  A user, <a href='https://github.com/bgrins/javascript-astar/issues/3#issuecomment-3208646'>spellfork</a>, on the Github issue came up with a neat solution, basically passing in two separate arrays to the graph function, where one represents the &#8220;obstacle map&#8221; (walls), and the second represents the &#8220;terrain map&#8221; (costs).</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">&nbsp;
<span style="color: #006600; font-style: italic;color: #008000;">// First array: 0 represents an open node, 1 represents a wall </span>
<span style="color: #006600; font-style: italic;color: #008000;">// Second array: movement costs are represented by numeric value </span>
<span style="color: #003366; font-weight: bold;color: #0000FF;">var</span> graph <span style="color: #339933;color: #000000;">=</span> <span style="color: #003366; font-weight: bold;color: #0000FF;">new</span> Graph<span style="color: #009900;color: #000000;">&#40;</span><span style="color: #009900;color: #000000;">&#91;</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span>
<span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span><span style="color: #009900;color: #000000;">&#91;</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">2</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">3</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">4</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">1</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #009900;color: #000000;">&#93;</span><span style="color: #339933;color: #000000;">,</span>
    <span style="color: #009900;color: #000000;">&#91;</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">0</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">3</span><span style="color: #339933;color: #000000;">,</span><span style="color: #CC0000;color: #808080;">10</span><span style="color: #009900;color: #000000;">&#93;</span>
<span style="color: #009900;color: #000000;">&#93;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span></pre></div></div>

<p>This is nice because the terrain map is optional, but not as nice if you need to do a lot of work to generate the two separate maps.</p>
<p>Maybe there is a better solution that I am not thinking of?  Any ideas about the best way to implement this?  Drop a comment here or over in the Github issue to help get this implemented!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/astar-graph-search-variable-costs/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Expanding Textareas jQuery Plugin</title>
		<link>http://www.briangrinstead.com/blog/expanding-textareas</link>
		<comments>http://www.briangrinstead.com/blog/expanding-textareas#comments</comments>
		<pubDate>Fri, 20 Apr 2012 03:26:23 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=906</guid>
		<description><![CDATA[Ever want a textarea to expand based on the size of the input that someone types? I made a jQuery plugin to handle expanding textareas! The basic technique is based off of a cool article called Expanding Text Areas Made Elegant. Check out the Expanding Textareas Demo and play with the Expanding Textareas Source Code. [...]]]></description>
			<content:encoded><![CDATA[<p>Ever want a textarea to expand based on the size of the input that someone types?  I made a jQuery plugin to handle expanding textareas!  The basic technique is based off of a cool article called <a href="http://www.alistapart.com/articles/expanding-text-areas-made-elegant/">Expanding Text Areas Made Elegant</a>.  Check out the <a href='http://bgrins.github.com/ExpandingTextareas/'>Expanding Textareas Demo</a> and play with the <a href='https://github.com/bgrins/ExpandingTextareas'>Expanding Textareas Source Code</a>.</p>
<p>I think it&#8217;s a pretty cool plugin that is a lot nicer than using the standard hacks for keeping textarea heights up to date.  And it works really well with proportional widths, custom fonts, and min/max heights!</p>
<p>Here is a screenshot (which also links to the demo):</p>
<hr />
<p><a href="http://bgrins.github.com/ExpandingTextareas/"><img src="http://briangrinstead.com/files/Screen-Shot-2012-04-19-at-9.23.24-PM.png" alt="Expanding Textareas jQuery plugin" title="Expanding Textareas" width="800" class="aligncenter size-full wp-image-800" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/expanding-textareas/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chrome DevTools Colorpicker Screencast</title>
		<link>http://www.briangrinstead.com/blog/colorpicker-screencast</link>
		<comments>http://www.briangrinstead.com/blog/colorpicker-screencast#comments</comments>
		<pubDate>Fri, 20 Apr 2012 02:18:06 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[colorpicker]]></category>
		<category><![CDATA[developer tools]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=891</guid>
		<description><![CDATA[I put together a screencast explaining the colorpicker functionality recently added into WebKit Web Inspector (aka Chrome DevTools for brevity). For some backstory on how this got implemented, check out my initial colorpicker concept video or the description of the implementation. Here is a quick screencast showing off the colorpicking functionality (currently running in Chrome [...]]]></description>
			<content:encoded><![CDATA[<p>I put together a screencast explaining the colorpicker functionality recently added into WebKit Web Inspector (aka Chrome DevTools for brevity).  For some backstory on how this got implemented, check out my <a href='http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-concept'>initial colorpicker concept video</a> or the <a href='http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-implementation'>description of the implementation</a>.</p>
<p>Here is a quick screencast showing off the colorpicking functionality (currently running in Chrome Canary):</p>
<p><object id="scPlayer"  width="979" height="598" type="application/x-shockwave-flash" data="http://content.screencast.com/users/bgrins/folders/Default/media/4ac0ead9-fba8-45ec-96e9-10d8e504bfb6/bootstrap.swf" ><param name="movie" value="http://content.screencast.com/users/bgrins/folders/Default/media/4ac0ead9-fba8-45ec-96e9-10d8e504bfb6/bootstrap.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/bgrins/folders/Default/media/4ac0ead9-fba8-45ec-96e9-10d8e504bfb6/FirstFrame.jpg&#038;containerwidth=979&#038;containerheight=598&#038;content=http://content.screencast.com/users/bgrins/folders/Default/media/4ac0ead9-fba8-45ec-96e9-10d8e504bfb6/colorpicker_devtools.swf&#038;blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/bgrins/folders/Default/media/4ac0ead9-fba8-45ec-96e9-10d8e504bfb6/" />Unable to display content. Adobe Flash is required.</object></p>
<p>Oh, and the jQuery plugin I am working with is called <a href='http://foliotek.github.com/unmodal/'>unmodal</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/colorpicker-screencast/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gradient Generator</title>
		<link>http://www.briangrinstead.com/blog/gradient-generator</link>
		<comments>http://www.briangrinstead.com/blog/gradient-generator#comments</comments>
		<pubDate>Wed, 18 Apr 2012 19:19:25 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[gradient]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[svg]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=870</guid>
		<description><![CDATA[I have been working a browser based gradient generator. I&#8217;ve never had the best experience using gradient generators, so I decided to see if I could do better. It is a prototype right now (a weekend project), but I am hoping to do more with it as time permits. Features It outputs to CSS, Canvas, [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working a <a href='http://briangrinstead.com/gradient'>browser based gradient generator</a>.  I&#8217;ve never had the best experience using gradient generators, so I decided to see if I could do better.</p>
<p>It is a prototype right now (a weekend project), but I am hoping to do more with it as time permits.</p>
<h4>Features</h4>
<ul>
<li>It outputs to CSS, Canvas, and SVG</li>
<li>Allows for separate color and alpha stops</li>
<li>Keyboard support (left, shift+left, right, shift+right, ctrl+c, ctrl+v)</li>
<li>You can Copy/Paste current stop</li>
<li>Undo/Redo</li>
<li>
Easily sharable URLs with the hash tag <a href='http://briangrinstead.com/gradient/#{"colors":[[0,"000"],[1,"000"]],"alphas":[[0,1],[0.5,0.5],[1,1]],"angle":270}#{"colors":[[0,"000"],[1,"000"]],"alphas":[[0,1],[0.5,0.5],[1,1]],"angle":270}'>Example gradient</a> or a GET parameter (<a href='http://briangrinstead.com/gradient/?gradient={"colors":[[0,"000"],[1,"000"]],"alphas":[[0,1],[0.5,0.5],[1,1]],"angle":270}#{"colors":[[0,"000"],[1,"000"]],"alphas":[[0,1],[0.5,0.5],[1,1]],"angle":270}'>Example with GET parameter</a>).
</li>
<li>Local Storage Support to keep track of your work</li>
<h4>Potential Future Features</h4>
<ul>
<li>Support for <strong>radial gradients</strong></li>
<li><strong>Cross browser</strong> CSS output</li>
<li><strong>Saving</strong> your gradients to server</li>
<li><strong>Multiple layers</strong> for stacked gradients</li>
<li>More CSS 3 <strong>effect generators</strong> (box shadows, rounded corners, etc) built into the UI</li>
<li>Any other ideas? Leave a comment or tweet them to <a href='https://twitter.com/#!/bgrins'>@bgrins</a>!</li>
</ul>
<p>I haven&#8217;t come up with a better name yet, so check it out here: <a href='http://briangrinstead.com/gradient'>http://briangrinstead.com/gradient</a>!</p>
<h4>Gradient Generator Screenshot</h4>
<p><a href="http://briangrinstead.com/gradient"><img src="http://briangrinstead.com/files/GradientGeneratorUI.png" alt="" title="Gradient Generator UI" width="852" height="599" class="aligncenter size-full wp-image-871" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/gradient-generator/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Input Type=Color Polyfill</title>
		<link>http://www.briangrinstead.com/blog/input-type-color-polyfill</link>
		<comments>http://www.briangrinstead.com/blog/input-type-color-polyfill#comments</comments>
		<pubDate>Sat, 07 Apr 2012 03:19:01 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[colorpicker]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=781</guid>
		<description><![CDATA[My jQuery Colorpicker &#8211; Spectrum now has a mode that acts as a polyfill to input type=color. What this means Now that the color input is supported in Chrome nightlies, along with Opera, people may want to start using this cool new form element. While you can still customize the colorpicker and bend it to [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href='http://bgrins.github.com/spectrum/'>jQuery Colorpicker &#8211; Spectrum</a> now has a mode that acts as a <a href='https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills'>polyfill</a> to <a href='http://dev.w3.org/html5/markup/input.color.html'>input type=color</a>.</p>
<h3>What this means</h3>
<p>Now that the color input is <a href='https://plus.google.com/102860501900098846931/posts/iWujARgWLcn'>supported in Chrome nightlies</a>, along with <a href='http://dev.opera.com/articles/view/new-form-features-in-html5/#input-color'>Opera</a>, people may want to start using this cool new form element.</p>
<p>While you can still customize the colorpicker and bend it to your will, if you&#8217;d like to use this new mode just include the HTML:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;color: #000000;">&lt;</span>input type<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'color'</span> value<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'#4499f0'</span> <span style="color: #339933;color: #000000;">/&gt;</span></pre></div></div>

<p>Along with a reference to spectrum.js and spectrum.css:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;color: #000000;">&lt;</span>link rel<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'stylesheet'</span> href<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'spectrum.css'</span> <span style="color: #339933;color: #000000;">/&gt;</span>
<span style="color: #339933;color: #000000;">&lt;</span>script type<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'text/javascript'</span> src<span style="color: #339933;color: #000000;">=</span><span style="color: #3366CC;color: #808080;">'spectrum.js'</span><span style="color: #339933;color: #000000;">&gt;&lt;/</span>script<span style="color: #339933;color: #000000;">&gt;</span></pre></div></div>

<h3>Demo</h3>
<p>See the <a href='http://bgrins.github.com/spectrum/#toc5'>color input polyfill demo</a> page for more info!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/input-type-color-polyfill/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UI Anglepicker</title>
		<link>http://www.briangrinstead.com/blog/ui-anglepicker</link>
		<comments>http://www.briangrinstead.com/blog/ui-anglepicker#comments</comments>
		<pubDate>Wed, 04 Apr 2012 03:20:44 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery-ui]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=771</guid>
		<description><![CDATA[I created a jQuery UI Widget for picking angles. Demo: JavaScript Angle Picker Demo Source Code: https://github.com/bgrins/ui.anglepicker Big thanks to Original JavaScript and CSS based on: https://github.com/mrflix/LayerStyles]]></description>
			<content:encoded><![CDATA[<p>I created a jQuery UI Widget for picking angles.</p>
<p><a href="http://bgrins.github.com/ui.anglepicker/"><img src="http://briangrinstead.com/files/Anglepicker-300x236.png" alt="" title="Anglepicker" width="300" height="236" class="aligncenter size-medium wp-image-775 bordered" /></a></p>
<p><strong>Demo</strong>: <a href='http://bgrins.github.com/ui.anglepicker/'>JavaScript Angle Picker Demo</a> <br />
<strong>Source Code</strong>: <a href='https://github.com/bgrins/ui.anglepicker'>https://github.com/bgrins/ui.anglepicker</a></p>
<p>Big thanks to Original JavaScript and CSS based on: <a href='https://github.com/mrflix/LayerStyles'>https://github.com/mrflix/LayerStyles</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/ui-anglepicker/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inverse Rectangle Intersection In JavaScript</title>
		<link>http://www.briangrinstead.com/blog/inverse-intersection</link>
		<comments>http://www.briangrinstead.com/blog/inverse-intersection#comments</comments>
		<pubDate>Tue, 28 Feb 2012 02:41:11 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[All]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[microframework]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=744</guid>
		<description><![CDATA[Given a parent rectangle and a collection of children rectangles on a 2D plane, how do you find a collection of non-overlapping rectangles that cover the inverse of the original set? For instance, given the container rectangle along with the set [A, B] -> we want an output similar to [1, 2, 3, 4, 5]. [...]]]></description>
			<content:encoded><![CDATA[<p>Given a parent rectangle and a collection of children rectangles on a 2D plane, how do you find a collection of non-overlapping rectangles that cover the inverse of the original set?</p>
<p>For instance, given the container rectangle along with the set [A, B] -> we want an output similar to [1, 2, 3, 4, 5].</p>
<pre>
         +----------------------------------------------------------------+
         |                                                                |
         |                                                                |
         |       +------------------+        +--------------------+       |
         |       |                  |        |                    |       |
         |       |                  |        |                    |       |
         |       |        A         |        |        B           |       |
         |       |                  |        |                    |       |
         |       |                  |        |                    |       |
         |       |                  |        |                    |       |
         |       +------------------+        +--------------------+       |
         |                                                                |
         |                                                                |
         |                                                                |
         |                                                                |
         |                                                                |
         +----------------------------------------------------------------+

         +----------------------------------------------------------------+
         |                                                                |
         |                               1                                |
         +-------+------------------+--------+--------------------+-------+
         |       |                  |        |                    |       |
         |       |                  |        |                    |       |
         |   2   |                  |   3    |                    |       |
         |       |                  |        |                    |   4   |
         |       |                  |        |                    |       |
         |       |                  |        |                    |       |
         +-------+------------------+--------+--------------------+-------+
         |                                                                |
         |                                                                |
         |                              5                                 |
         |                                                                |
         |                                                                |
         +----------------------------------------------------------------+
</pre>
<h3>Solution</h3>
<p>Enter the <a href='https://github.com/bgrins/inverse-intersection'>inverse-intersection JavaScript project</a>.  It is a kind of micro library. No dependancies, just the math required to solve this problem!</p>
<p>You can grab the <a href='https://github.com/bgrins/inverse-intersection/blob/master/inverse-intersection.js'>JavaScript file</a> from Github.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/inverse-intersection/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AjaxQ jQuery Plugin</title>
		<link>http://www.briangrinstead.com/blog/ajaxq-jquery-plugin</link>
		<comments>http://www.briangrinstead.com/blog/ajaxq-jquery-plugin#comments</comments>
		<pubDate>Sat, 25 Feb 2012 18:09:42 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=745</guid>
		<description><![CDATA[At Foliotek, we have a lot of components we have built (and are in the process of building) for our various projects. We are open sourcing some of these, and the first one is the AjaxQ jQuery Plugin. The purpose of this plugin is for managing sequential ajax requests. It is designed to follow the [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href='http://foliotek.com'>Foliotek</a>, we have a lot of components we have built (and are in the process of building) for our various projects.  </p>
<p>We are open sourcing some of these, and the first one is the <a href='http://foliotek.github.com/AjaxQ/'>AjaxQ jQuery Plugin</a>.  The purpose of this plugin is for managing sequential ajax requests.   </p>
<p>It is designed to follow the $.ajax, $.get, and $.post interfaces and return values, only taking one extra parameter (the queue name).  Here is a brief sample of the functionality:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$.<span style="color: #660066;">ajaxq</span> <span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;MyQueue&quot;</span><span style="color: #339933;color: #000000;">,</span> <span style="color: #009900;color: #000000;">&#123;</span>
        url<span style="color: #339933;color: #000000;">:</span> <span style="color: #3366CC;color: #808080;">'http://jsfiddle.net/echo/jsonp/'</span><span style="color: #339933;color: #000000;">,</span>
        type<span style="color: #339933;color: #000000;">:</span> <span style="color: #3366CC;color: #808080;">'post'</span><span style="color: #339933;color: #000000;">,</span>
        dataType<span style="color: #339933;color: #000000;">:</span> <span style="color: #3366CC;color: #808080;">&quot;jsonp&quot;</span>
<span style="color: #009900;color: #000000;">&#125;</span><span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span>
&nbsp;
$.<span style="color: #660066;">postq</span> <span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;MyQueue&quot;</span><span style="color: #339933;color: #000000;">,</span> <span style="color: #3366CC;color: #808080;">'path/to/your/resource'</span><span style="color: #339933;color: #000000;">,</span> onsuccess<span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span>
&nbsp;
$.<span style="color: #660066;">getq</span> <span style="color: #009900;color: #000000;">&#40;</span><span style="color: #3366CC;color: #808080;">&quot;MyQueue&quot;</span><span style="color: #339933;color: #000000;">,</span> <span style="color: #3366CC;color: #808080;">'path/to/another/resource'</span><span style="color: #339933;color: #000000;">,</span> onsuccess<span style="color: #009900;color: #000000;">&#41;</span><span style="color: #339933;color: #000000;">;</span></pre></div></div>

<p>In this case, each request would only run once the other finished.  See the <a href='http://foliotek.github.com/AjaxQ/#demo'>AjaxQ demo</a> to see it in action with multiple queues.</p>
<p>All the source code is <a href='https://github.com/Foliotek/AjaxQ'>available on Github</a>, available under the MIT License.  I hope to have more projects to report on in the future!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/ajaxq-jquery-plugin/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chrome Developer Tools Colorpicker Implementation</title>
		<link>http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-implementation</link>
		<comments>http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-implementation#comments</comments>
		<pubDate>Sat, 25 Feb 2012 17:56:02 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[colorpicker]]></category>
		<category><![CDATA[developer tools]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.briangrinstead.com/blog/?p=734</guid>
		<description><![CDATA[A few months ago, I posted about my developer tools concept colorpicker implementation. After that, I was contacted on the devtools mailing list and got some initial feedback. I pulled the jQuery dependency out of a branch on my JavaScript colorpicker using jsfiddle plus the mailing list. From there, I submitted a patch to the [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, I posted about my <a href='http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-concept'>developer tools concept colorpicker implementation</a>.  After that, I was <a href='http://groups.google.com/group/google-chrome-developer-tools/browse_thread/thread/4dd1e853b8051727/4549a6f0788885d4'>contacted on the devtools mailing list</a> and got some initial feedback.  I pulled the jQuery dependency out of a branch on my <a href='https://github.com/bgrins/spectrum'>JavaScript colorpicker</a> using jsfiddle plus the mailing list.  From there, I submitted a patch to the WebKit project.</p>
<p>From there, I opened a development case, entitled <a href='https://bugs.webkit.org/show_bug.cgi?id=71262'>Web Inspector: Add colorpicker functionality to color swatches in Styles Sidebar</a>.  50+ comments and 10 patches later, the case <a href='http://www.webkit.org/blog/1804/last-week-in-webkit-calculated-css-values-and-the-translate-attribute/'>landed in WebKit</a>.  This is really exciting, since it will improve the development experience for Chrome and Safari users.  Thanks to all the WebKit developers who helped me along the way with getting the code and UI ready for committing (I needed all the help I could get).</p>
<p>I am planning on sharing more of the technical details and hurdles I had as a first time contributor to the WebKit project in a coming post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.briangrinstead.com/blog/chrome-developer-tools-colorpicker-implementation/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.briangrinstead.com @ 2012-05-19 09:03:56 -->
