<?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/"
	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>Nate Bean</title>
	<atom:link href="https://natebeancom.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://natebeancom.wordpress.com</link>
	<description>Tabular Model Development (DAX), Visualizations and Data Apps</description>
	<lastBuildDate>Tue, 03 Oct 2017 23:22:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='natebeancom.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s2.wp.com/i/buttonw-com.png</url>
		<title>Nate Bean</title>
		<link>https://natebeancom.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://natebeancom.wordpress.com/osd.xml" title="Nate Bean" />
	<atom:link rel='hub' href='https://natebeancom.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Vega.js and Knockout.js</title>
		<link>https://natebeancom.wordpress.com/2017/10/03/first-blog-post/</link>
		<comments>https://natebeancom.wordpress.com/2017/10/03/first-blog-post/#respond</comments>
		<pubDate>Tue, 03 Oct 2017 22:32:41 +0000</pubDate>
		<dc:creator><![CDATA[natebean]]></dc:creator>
				<category><![CDATA[Visualizations]]></category>
		<category><![CDATA[Knockout.js]]></category>
		<category><![CDATA[Vega.js]]></category>

		<guid isPermaLink="false">http://natebeancom.wordpress.com/?p=4</guid>
		<description><![CDATA[This is the excerpt for your very first post.<img alt="" border="0" src="https://pixel.wp.com/b.gif?host=natebeancom.wordpress.com&#038;blog=136602338&#038;post=4&#038;subd=natebeancom&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A quick example of using Knockout.js to update data from a Vega.js visualization.</p>
<p><a href="https://jsfiddle.net/natebean/h33p7rx3/" target="_blank" rel="noopener">JSFiddle</a></p>
<p><code><br />
var vegaHelper = function() {<br />
this.view = null;<br />
this.vegaSpec = null;</p>
<p>this.loadSpec = function(url) {<br />
var self = this;<br />
vega.loader()<br />
.load(url)<br />
.then(function(data) {<br />
self.vegaSpec = JSON.parse(data);<br />
self.render();<br />
//console.log("spec loaded");<br />
});<br />
};</p>
<p>this.render = function() {<br />
this.view = new vega.View(vega.parse(this.vegaSpec))<br />
.renderer('canvas') // set renderer (canvas or svg)<br />
.initialize('#view') // initialize view within parent DOM container<br />
.hover() // enable hover encode set processing<br />
.run();<br />
};</p>
<p>this.updateData = function(dataName, newData) {<br />
var self = this;<br />
//console.log('vegaUpdateData');<br />
self.view.remove(dataName, function(d) {<br />
return true;<br />
}).run();<br />
self.view.insert(dataName, newData).run();<br />
}<br />
};</p>
<p>var dataModel = {<br />
newData: function() {<br />
return [{<br />
"category": "A",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "B",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "C",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "D",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "E",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "F",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "G",<br />
"amount": 100 * Math.random()<br />
}, {<br />
"category": "H",<br />
"amount": 100 * Math.random()<br />
}];<br />
}</p>
<p>};</p>
<p>var myViewModel = {<br />
vmVegaHelper: new vegaHelper(),<br />
changeData: function() {<br />
//console.log('changeData');<br />
this.vmVegaHelper.updateData('table',dataModel.newData());<br />
},<br />
loadViz: function(){<br />
this.vmVegaHelper.loadSpec('https://vega.github.io/vega/examples/bar-chart.vg.json');<br />
}<br />
};</p>
<p>ko.applyBindings(myViewModel);</p>
<p>myViewModel.loadViz();</p>
<p></code></p>
<p> </p><br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natebeancom.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natebeancom.wordpress.com/4/" /></a> <img alt="" border="0" src="https://pixel.wp.com/b.gif?host=natebeancom.wordpress.com&#038;blog=136602338&#038;post=4&#038;subd=natebeancom&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>https://natebeancom.wordpress.com/2017/10/03/first-blog-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:thumbnail url="https://natebeancom.files.wordpress.com/2017/10/screenshot-2017-10-03-at-6-19-06-pm.png" />
		<media:content url="http://natebeancom.files.wordpress.com/2017/10/screenshot-2017-10-03-at-6-19-06-pm.png" medium="image">
			<media:title type="html">Screenshot 2017-10-03 at 6.19.06 PM</media:title>
		</media:content>

		<media:content url="http://1.gravatar.com/avatar/aafa2d2de6a5e0e161ab35946198b366?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">natebean</media:title>
		</media:content>
	</item>
	</channel>
</rss>
