<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Ben J. Christensen</title>
	<atom:link href="http://benjchristensen.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://benjchristensen.com</link>
	<description>Software Development and Other Random Stuff</description>
	<lastBuildDate>Tue, 20 Dec 2011 06:03:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by duopixel</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-544</link>
		<dc:creator><![CDATA[duopixel]]></dc:creator>
		<pubDate>Tue, 20 Dec 2011 06:03:31 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-544</guid>
		<description><![CDATA[I have used both quite extensively (Raphael a bit more than D3) and I&#039;d say they&#039;re quite different beasts. Raphael has so many things that make path manipulation and geometry simple, but D3 is really performant and simple when it comes to transforming data into visual representations.

I find myself wishing D3 had some of the things Raphael has and viceversa. Whenever I need to do visualization I use D3, and with drawing I use Raphael.]]></description>
		<content:encoded><![CDATA[<p>I have used both quite extensively (Raphael a bit more than D3) and I&#8217;d say they&#8217;re quite different beasts. Raphael has so many things that make path manipulation and geometry simple, but D3 is really performant and simple when it comes to transforming data into visual representations.</p>
<p>I find myself wishing D3 had some of the things Raphael has and viceversa. Whenever I need to do visualization I use D3, and with drawing I use Raphael.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dynamic Stacked Bar Chart Using d3.js by Craig Wickesser</title>
		<link>http://benjchristensen.com/2011/12/16/dynamic-stacked-bar-chart-using-d3-js/#comment-543</link>
		<dc:creator><![CDATA[Craig Wickesser]]></dc:creator>
		<pubDate>Sun, 18 Dec 2011 02:51:10 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=437#comment-543</guid>
		<description><![CDATA[That would be great if you can share. I wish I could share my code. My work environment would require that I a) get approval for releasing the code, b) get someone to review the code for any proprietary information, c) print it out, d) type it in at home.

Needless to say, that process really puts a damper on sharing most of the code I work on, but if I ever have something I can share, I&#039;ll certainly do so and post a comment on here.

I&#039;m also looking to do a post on JavaScriptMVC now that I&#039;ve developed several applications with it which may be of interest to you (and your readers) since it&#039;s JavaScript, although not related to charting/svg.]]></description>
		<content:encoded><![CDATA[<p>That would be great if you can share. I wish I could share my code. My work environment would require that I a) get approval for releasing the code, b) get someone to review the code for any proprietary information, c) print it out, d) type it in at home.</p>
<p>Needless to say, that process really puts a damper on sharing most of the code I work on, but if I ever have something I can share, I&#8217;ll certainly do so and post a comment on here.</p>
<p>I&#8217;m also looking to do a post on JavaScriptMVC now that I&#8217;ve developed several applications with it which may be of interest to you (and your readers) since it&#8217;s JavaScript, although not related to charting/svg.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dynamic Stacked Bar Chart Using d3.js by Ben Christensen</title>
		<link>http://benjchristensen.com/2011/12/16/dynamic-stacked-bar-chart-using-d3-js/#comment-542</link>
		<dc:creator><![CDATA[Ben Christensen]]></dc:creator>
		<pubDate>Sat, 17 Dec 2011 20:25:02 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=437#comment-542</guid>
		<description><![CDATA[Craig, glad it was of interest to you. It was an interesting one to figure out. The concrete implementation will be more involved and I look forward to it coming together. I may be able to share that final outcome via the Netflix Tech Blog. If that happens I&#039;ll post back here.

It sounds like you&#039;ve got some interesting use cases, if you can ever share I&#039;d like to see those examples.

Ben]]></description>
		<content:encoded><![CDATA[<p>Craig, glad it was of interest to you. It was an interesting one to figure out. The concrete implementation will be more involved and I look forward to it coming together. I may be able to share that final outcome via the Netflix Tech Blog. If that happens I&#8217;ll post back here.</p>
<p>It sounds like you&#8217;ve got some interesting use cases, if you can ever share I&#8217;d like to see those examples.</p>
<p>Ben</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dynamic Stacked Bar Chart Using d3.js by Craig Wickesser</title>
		<link>http://benjchristensen.com/2011/12/16/dynamic-stacked-bar-chart-using-d3-js/#comment-541</link>
		<dc:creator><![CDATA[Craig Wickesser]]></dc:creator>
		<pubDate>Sat, 17 Dec 2011 01:02:46 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=437#comment-541</guid>
		<description><![CDATA[Ben,

Another interesting demo and use case. I&#039;m taking a serious look at d3 for my next set of charts. Up until now I&#039;ve used raphael and g.raphael with a bunch of custom code and charts to get what I needed (since the default impl. is rather basic -- the developer of raphael/g.raphael got hired by Sencha, you might have noticed Sencha 4 has a pretty nice charting library now :).

I had built a pie chart that allowed you to double click on a slice to drill down into more detail. While in &quot;drill down&quot; mode you could navigate through the drill down data for the other original slices (really wish I could share a picture of it, or the code). I also extended the &quot;bubble&quot; chart so the circles would vary in color based on some condition using the Roy G Biv (red, orange, yellow, green...) colors. There would be some condition that I&#039;d check to dynamically adjust what the colors represented as data was updated (it was live/real-time chart). So initially it might have been something like: 0 - 4 = red, 5 - 10 = orange, etc. but could change as new data arrived (again, a picture or video would do it more justice).

anyways, thanks for another interesting post.]]></description>
		<content:encoded><![CDATA[<p>Ben,</p>
<p>Another interesting demo and use case. I&#8217;m taking a serious look at d3 for my next set of charts. Up until now I&#8217;ve used raphael and g.raphael with a bunch of custom code and charts to get what I needed (since the default impl. is rather basic &#8212; the developer of raphael/g.raphael got hired by Sencha, you might have noticed Sencha 4 has a pretty nice charting library now <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I had built a pie chart that allowed you to double click on a slice to drill down into more detail. While in &#8220;drill down&#8221; mode you could navigate through the drill down data for the other original slices (really wish I could share a picture of it, or the code). I also extended the &#8220;bubble&#8221; chart so the circles would vary in color based on some condition using the Roy G Biv (red, orange, yellow, green&#8230;) colors. There would be some condition that I&#8217;d check to dynamically adjust what the colors represented as data was updated (it was live/real-time chart). So initially it might have been something like: 0 &#8211; 4 = red, 5 &#8211; 10 = orange, etc. but could change as new data arrived (again, a picture or video would do it more justice).</p>
<p>anyways, thanks for another interesting post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Ben Christensen</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-540</link>
		<dc:creator><![CDATA[Ben Christensen]]></dc:creator>
		<pubDate>Fri, 09 Dec 2011 17:43:44 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-540</guid>
		<description><![CDATA[Hi Dev,

A video has been posted of the dashboard in a new blog post by my manager on the Netflix Tech Blog, so you can see it running: http://techblog.netflix.com/2011/12/making-netflix-api-more-resilient.html

The video itself is on Vimeo at http://vimeo.com/33359539

Yes, the circles move dynamically, though in our production environment with such large amounts of data the sizes move fairly gradually over the course of a day, so the movement doesn&#039;t show very visibly in the short example video.

The circle size represents the volume of traffic, so by glancing at the dashboard one can easily see which circuits (code paths) are taking the most traffic.

The color of the circle represents the health on a 0-100% scale going from green through yellow to orange to red and the gradients in between.

This is calculated using the rolling 10-second window discussed in the blog post based on the various stats (Success, Latent, Timeout, Rejected, ShortCircuited, Failure).

The color gradient is linear while the size is size is exponential (since our range of low and high volume circuits is significant).

These are the definitions used for d3:

	self.circuitBreakerCircleRadius = d3.scale.pow().exponent(0.5).domain([0, 400]).range([&quot;5&quot;, maxRadiusForCircle]); // requests per second per host
	self.circuitBreakerCircleYaxis = d3.scale.linear().domain([0, 400]).range([&quot;30%&quot;, maxXaxisForCircle]);
	self.circuitBreakerCircleXaxis = d3.scale.linear().domain([0, 400]).range([&quot;30%&quot;, maxYaxisForCircle]);
	self.circuitBreakerColorRange = d3.scale.linear().domain([10, 25, 40, 50]).range([&quot;green&quot;, &quot;#FFCC00&quot;, &quot;#FF9900&quot;, &quot;red&quot;]);
	self.circuitBreakerErrorPercentageColorRange = d3.scale.linear().domain([0, 10, 35, 50]).range([&quot;grey&quot;, &quot;black&quot;, &quot;#FF9900&quot;, &quot;red&quot;]);

Hope this helps (and sorry about such a late reply).]]></description>
		<content:encoded><![CDATA[<p>Hi Dev,</p>
<p>A video has been posted of the dashboard in a new blog post by my manager on the Netflix Tech Blog, so you can see it running: <a href="http://techblog.netflix.com/2011/12/making-netflix-api-more-resilient.html" rel="nofollow">http://techblog.netflix.com/2011/12/making-netflix-api-more-resilient.html</a></p>
<p>The video itself is on Vimeo at <a href="http://vimeo.com/33359539" rel="nofollow">http://vimeo.com/33359539</a></p>
<p>Yes, the circles move dynamically, though in our production environment with such large amounts of data the sizes move fairly gradually over the course of a day, so the movement doesn&#8217;t show very visibly in the short example video.</p>
<p>The circle size represents the volume of traffic, so by glancing at the dashboard one can easily see which circuits (code paths) are taking the most traffic.</p>
<p>The color of the circle represents the health on a 0-100% scale going from green through yellow to orange to red and the gradients in between.</p>
<p>This is calculated using the rolling 10-second window discussed in the blog post based on the various stats (Success, Latent, Timeout, Rejected, ShortCircuited, Failure).</p>
<p>The color gradient is linear while the size is size is exponential (since our range of low and high volume circuits is significant).</p>
<p>These are the definitions used for d3:</p>
<p>	self.circuitBreakerCircleRadius = d3.scale.pow().exponent(0.5).domain([0, 400]).range(["5", maxRadiusForCircle]); // requests per second per host<br />
	self.circuitBreakerCircleYaxis = d3.scale.linear().domain([0, 400]).range(["30%", maxXaxisForCircle]);<br />
	self.circuitBreakerCircleXaxis = d3.scale.linear().domain([0, 400]).range(["30%", maxYaxisForCircle]);<br />
	self.circuitBreakerColorRange = d3.scale.linear().domain([10, 25, 40, 50]).range(["green", "#FFCC00", "#FF9900", "red"]);<br />
	self.circuitBreakerErrorPercentageColorRange = d3.scale.linear().domain([0, 10, 35, 50]).range(["grey", "black", "#FF9900", "red"]);</p>
<p>Hope this helps (and sorry about such a late reply).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Dev</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-539</link>
		<dc:creator><![CDATA[Dev]]></dc:creator>
		<pubDate>Thu, 01 Dec 2011 14:44:08 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-539</guid>
		<description><![CDATA[Ben,

Thanks a lot for following up on this and sharing the link to presentation.

Question about visualization on page 47 of the slide deck (http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf):

 Is it meant to show some kind of variance/standard deviation from some trailing average value so as to alert the viewer quickly about possible system health issues?


Thanks!
Dev]]></description>
		<content:encoded><![CDATA[<p>Ben,</p>
<p>Thanks a lot for following up on this and sharing the link to presentation.</p>
<p>Question about visualization on page 47 of the slide deck (<a href="http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf" rel="nofollow">http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf</a>):</p>
<p> Is it meant to show some kind of variance/standard deviation from some trailing average value so as to alert the viewer quickly about possible system health issues?</p>
<p>Thanks!<br />
Dev</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Dev</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-538</link>
		<dc:creator><![CDATA[Dev]]></dc:creator>
		<pubDate>Tue, 22 Nov 2011 15:47:42 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-538</guid>
		<description><![CDATA[Dev,

Thanks a lot for following up on this and sharing the link to presentation.

Question about visualization on page 47 of the slide deck (http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf): 

What is the formula used to compute size of the circles? Is it meant to show some kind of variance/standard deviation from some trailing average value so as to alert the viewer quickly about possible system health issues?

Also, do circles move?

Thanks!
Dev]]></description>
		<content:encoded><![CDATA[<p>Dev,</p>
<p>Thanks a lot for following up on this and sharing the link to presentation.</p>
<p>Question about visualization on page 47 of the slide deck (<a href="http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf" rel="nofollow">http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf</a>): </p>
<p>What is the formula used to compute size of the circles? Is it meant to show some kind of variance/standard deviation from some trailing average value so as to alert the viewer quickly about possible system health issues?</p>
<p>Also, do circles move?</p>
<p>Thanks!<br />
Dev</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Ben Christensen</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-537</link>
		<dc:creator><![CDATA[Ben Christensen]]></dc:creator>
		<pubDate>Sun, 20 Nov 2011 17:22:22 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-537</guid>
		<description><![CDATA[Some slides were just posted (http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf) that show some of the monitoring UI (slides 47-60) that I referred to.]]></description>
		<content:encoded><![CDATA[<p>Some slides were just posted (<a href="http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf" rel="nofollow">http://www.slideshare.net/danieljacobson/techniques-for-scaling-the-netflix-api-qcon-sf</a>) that show some of the monitoring UI (slides 47-60) that I referred to.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Ben Christensen</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-536</link>
		<dc:creator><![CDATA[Ben Christensen]]></dc:creator>
		<pubDate>Sun, 20 Nov 2011 06:40:56 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-536</guid>
		<description><![CDATA[It&#039;s fairly integrated with systems at work, so I doubt it can be open sourced anytime soon as it would need to be refactored into something generic.

That said, I do intend on eventually putting out some generic versions of what I&#039;ve done, but unfortunately I&#039;m fairly crushed for time right now so it&#039;s on my list of things to do when time is calmer.

The short version of how it works is that I&#039;m using HTML5 EventStream (http://dev.w3.org/html5/eventsource/) (natively supported in modern webkit browsers) to have a single streaming connection from the server and then the browser kicks off javascript events for each datapoint. Each of those is associated with a &quot;widget&quot; on the screen that has circles/sparklines/numbers that are all being updated asynchronously.

I have about 45 data points, each with a circle and sparkling and about 15 numbers, and the latency from backend servers to UI is sub-second. EventStream + d3.js is a great combo.

Hope this helps somewhat and good luck building your visualization ... it&#039;s fun stuff to build!]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s fairly integrated with systems at work, so I doubt it can be open sourced anytime soon as it would need to be refactored into something generic.</p>
<p>That said, I do intend on eventually putting out some generic versions of what I&#8217;ve done, but unfortunately I&#8217;m fairly crushed for time right now so it&#8217;s on my list of things to do when time is calmer.</p>
<p>The short version of how it works is that I&#8217;m using HTML5 EventStream (<a href="http://dev.w3.org/html5/eventsource/" rel="nofollow">http://dev.w3.org/html5/eventsource/</a>) (natively supported in modern webkit browsers) to have a single streaming connection from the server and then the browser kicks off javascript events for each datapoint. Each of those is associated with a &#8220;widget&#8221; on the screen that has circles/sparklines/numbers that are all being updated asynchronously.</p>
<p>I have about 45 data points, each with a circle and sparkling and about 15 numbers, and the latency from backend servers to UI is sub-second. EventStream + d3.js is a great combo.</p>
<p>Hope this helps somewhat and good luck building your visualization &#8230; it&#8217;s fun stuff to build!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Simple Sparkline using SVG Path and D3.js by Dev</title>
		<link>http://benjchristensen.com/2011/08/08/simple-sparkline-using-svg-path-and-d3-js/#comment-535</link>
		<dc:creator><![CDATA[Dev]]></dc:creator>
		<pubDate>Fri, 18 Nov 2011 18:25:24 +0000</pubDate>
		<guid isPermaLink="false">http://benjchristensen.com/?p=388#comment-535</guid>
		<description><![CDATA[Ben,

We are building something similar to &quot;I was building a monitoring tool recently and used D3 to do visualizations with animated circles that grow/shrink in size and change colors&quot;

Similar concept (real-time animation using circles/bubbles that grow/shrink based on some data) applied to a different problem.

Would love to see how you guys have done this.

Any chance to open source at least part of it?

Thanks!
Dev]]></description>
		<content:encoded><![CDATA[<p>Ben,</p>
<p>We are building something similar to &#8220;I was building a monitoring tool recently and used D3 to do visualizations with animated circles that grow/shrink in size and change colors&#8221;</p>
<p>Similar concept (real-time animation using circles/bubbles that grow/shrink based on some data) applied to a different problem.</p>
<p>Would love to see how you guys have done this.</p>
<p>Any chance to open source at least part of it?</p>
<p>Thanks!<br />
Dev</p>
]]></content:encoded>
	</item>
</channel>
</rss>

