<?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>Blog - OpenProcessing</title>
	<atom:link href="http://blog.openprocessing.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.openprocessing.org</link>
	<description>Blog - OpenProcessing</description>
	<lastBuildDate>Sat, 08 Jun 2013 06:32:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Visualizing OpenProcessing</title>
		<link>http://blog.openprocessing.org/?p=253</link>
		<comments>http://blog.openprocessing.org/?p=253#comments</comments>
		<pubDate>Fri, 07 Jun 2013 18:25:47 +0000</pubDate>
		<dc:creator>Sinan</dc:creator>
				<category><![CDATA[Generic Stuff]]></category>

		<guid isPermaLink="false">http://blog.openprocessing.org/?p=253</guid>
		<description><![CDATA[Here is a quick link to a data visualization I created in March, visualizing the interactions between the users in OpenProcessing. <a href="http://www.openprocessing.org/labs/opviz">http://www.openprocessing.org/labs/opviz</a>]]></description>
				<content:encoded><![CDATA[<p><span class="greyText">[Note: this post is a copy of my post in my blog at <a href="http://www.wiredpieces.com/?p=1135" target="_blank">wiredpieces.com</a>]</a></p>
<p><a title="Visualizing OpenProcessing" href="http://www.openprocessing.org/labs/opviz">Visualizing OpenProcessing</a> is an interactive data visualization of the activity of users on OpenProcessing.org in 2012. This visualization allows you to observe each user-to-user interaction as well as the high level patterns on different interaction channels<span id="more-253"></span></p>
<ul>
<li>commenting on sketches</li>
<li>following users</li>
<li>tweaking (forking) sketches</li>
<li>favoriting sketches</li>
</ul>
<p>on different user types</p>
<ul>
<li>Professors</li>
<li>Students</li>
<li>Regular users</li>
</ul>
<div id="figure1" class="wp-caption alignright" style="width: 448px"><a href="http://www.openprocessing.org/labs/opviz"><img style="border: none;" alt="Visualizing OpenProcessing Project Screenshot" src="http://www.wiredpieces.com/wp-content/themes/modern-clix/customPages/opviz/figure1.jpg" width="438" height="379" /></a><p class="wp-caption-text"><a href="http://www.openprocessing.org/labs/opviz">Visit the project</a></p></div>
<p>I have been always a great supporter of using analytics tools to observe user patterns and use that insight as a guidance for the next phases of updates. Since I launched OpenProcessing almost 5 years ago, I used <a title="Google Analytics" href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> to track the website traffic. I have also used many other analytics tools on projects I worked on as a UX designer. However, I have been always frustrated to see that these tools are great on displaying <em>user-to-website interaction</em> but they are very limited on providing any <em>user-to-user interaction</em> information. On social platforms like OpenProcessing, Twitter, Facebook, etc., it is extremely important for the designers to have a sense of the interaction between users, because it is what defines a social platform and makes these websites different from each other although they may provide similar functionality. Being able to answer such questions is crucial:</p>
<ul>
<li>Who are your users? Who is an influencer, who is a contributor, who is just a random visitor…</li>
<li>How do they interact with each other?</li>
<li>What kind of interaction do they have with each other? eg. comments, retweets, etc.</li>
<li>What kind of user behavior patterns are there?</li>
</ul>
<h2><strong>The Making Of&#8230;</strong></h2>
<div id="figure3" class="wp-caption alignright" style="width: 241px"><img class="size-full wp-image-1189" alt="hand drawn sketches of concept" src="http://www.wiredpieces.com/wp-content/uploads/figure3.jpg" width="231" height="452" /><p class="wp-caption-text"><br />Some early dry-erase wall sketches</p></div>
<p>There is a common question in data visualization: Do you start with the question or the data? In my case, it was the questions above. I started concepting a network visualization. Currently, there is 20000+ registered users and 70000+ sketches on the website. There are different user types and they can interact with each other in different ways. It was easy to expect many different behaviors and patterns in this ecosystem, and a circular network visualization seemed best approach to visualize these. Now with the great visualization tools like <a href="http://d3js.org/" target="_blank">d3</a>, <a href="http://raphaeljs.com/" target="_blank">Raphaël</a>, <a href="http://processingjs.org/" target="_blank">processingjs</a>, creating such visualizations are easier and more fun. I started designing the concept for this visualization (thanks to <a href="https://twitter.com/mahirmyavuz" target="_blank">Mahir</a> for his input during brainstorming) by some sketching and coding in d3 at the same time.<strong><br />
</strong></p>
<p>I chose to use d3 because I wanted to learn this popular library which is both web-based and uses svg element. It allows you to make your data visualization interactive pretty easily, with the common mouse events being available on DOM elements (unlike Canvas element). However, it took quite sometime for me to understand of how the library works; Its future-data-referencing structure is pretty interesting and uncommon, but <a title="d3 tutorials by Scott Murray" href="http://alignedleft.com/tutorials/d3/" target="_blank">Scott Murray</a> and <a href="https://github.com/mbostock/d3/wiki" target="_blank">Mike Bostock</a>&#8216;s tutorials came to rescue on this one.</p>
<p>After the getting some basics done with dummy data on d3, I started tying the OpenProcessing database to the visualization. At this stage, performance started being an issue: Data needed to be optimized and formatted to work with D3, and required a lot of tweaks and redos: I had to strike the balance between doing some of the data handling on MYSQL-PHP level and some on the javascript level. I didn&#8217;t want my server to handle all the data formatting because it would clog the server overall but I also didn&#8217;t want to weigh on javascript because I didn&#8217;t want the front-end experience to be laggy on browsers.</p>
<div id="figure2" class="wp-caption alignright" style="width: 447px"><img class="size-full wp-image-1174" style="border: none;" alt="User selecting a long duration which may drop performance" src="http://www.wiredpieces.com/wp-content/uploads/figure2.jpg" width="437" height="52" /><p class="wp-caption-text">I had to implement an indicator to show that performance may drop with more data points selected</p></div>
<p>The rendering performance was also an issue for all those lines representing a year of interactions. I couldn&#8217;t do much effects like fades and animations because of the decreasing frame per seconds. In order to get the best performance I had to tweak the D3 related code, css, jquery, etc.. Realizing that performance will not be great on slower devices such as mobile phones, I made the site responsive and made it gradually reduce the available functionality on slower and smaller devices.</p>
<p>Finally, I worked on the page functionality and user interface. I designed a simple interface to filter through the data and navigate through the editorial section: <em>A data visualization is at its best when it is telling a story</em>, and even better if it is accompanied by an editorial piece (yes, I guess I am talking about many impressive <a title="New York Times Visualizations Collection" href="http://www.smallmeans.com/new-york-times-infographics/" target="_blank">New York Times visualizations</a>). So I wanted to make sure I guide the user through the visualization to explain how it works and the patterns it includes. The rest is left for users to explore&#8230;</p>
<p>Before I launched it, I showed it to some people, got their feedback, did some user tests (Hello <a title="Asli Ascioglu" href="http://web.bryant.edu/~ascioglu/" target="_blank">sister</a>!) and some tweaks upon my observations. It took many weekends and after-hours over the course of 3 months, and finally I am happy to share this project with you.</p>
<h2><strong>Some Take Aways</strong></h2>
<p>When I tied the visualization to the actual OpenProcessing database, some patterns started to emerged right away.</p>
<ul id="patternList">
<li><img class="size-full wp-image-1177 alignright" title="student comments" alt="visualization showing student comments" src="http://www.wiredpieces.com/wp-content/uploads/vizSmall1.jpg" width="97" height="93" />Students were much more active on the website than I thought.This is particularly true for commenting on and tweaking each others&#8217; sketches. Students seem to be very vocal when comes to interacting with each other.</li>
<li><img class="alignright size-full wp-image-1178" alt="professor comments" src="http://www.wiredpieces.com/wp-content/uploads/vizSmall2.jpg" width="93" height="91" />Aligned with my expectations, professors are highly focused on interacting with their students, and less social with the rest of the site.</li>
<li><img class="alignright size-full wp-image-1179" alt="tweaking activity" src="http://www.wiredpieces.com/wp-content/uploads/vizSmall3.jpg" width="96" height="95" /><em>Tweak</em> feature was used by the community more than I thought and it was particularly helpful to classes. This is helpful information as I am continuing to simplify the features on the website.</li>
<li><img class="alignright size-full wp-image-1180" alt="follow activity of users" src="http://www.wiredpieces.com/wp-content/uploads/vizSmall4.jpg" width="96" height="96" />I introduced the <em>follow</em> feature on March 2012, users caught up pretty quickly and became the most important interaction between users next to favoriting each others sketches. (This makes me wonder if &#8216;follow&#8217; activity is higher than &#8216;tweet&#8217; activity on Twitter.)</li>
<li>I was aware of the influencers on the website however <em>the conversationalists  proved to be the &#8216;core&#8217; users of the website together with influencers</em>. This is a good directional input to weigh equally on both uploading/following process and improving the interaction channels for conversations.</li>
</ul>
<p>There is so much more to discover when you analyze the visualization in-depth.</p>
<h2><strong>Future Iterations</strong></h2>
<p>There are definitely many other ways to visualize the activity on a social website. I will be continuously thinking of and searching for other data visualization types that might reveal other patterns, such as user activity frequency and drop outs.</p>
<p>Also, I am hoping to find more ways to improve performance: one thing I went back and forth was using JQuery vs D3 to interact with some elements, and using CSS vs. D3 to style elements. Eg. You can hide/show elements using JQuery or D3, you can set the color of elements in D3 or in CSS, but at the moment it is not clear to me which way would be faster. I ended up using CSS for most styling, but this came with the limitation of not being able to tweak individual elements.</p>
<p>I would love to hear your feedback as well as any questions you might have design/coding wise.</p>
<div></div>
<style><!--
#header { background: url(/wp-content/themes/modern-clix/customPages/opviz/bg_opviz_top.jpg) !important; } #figure1, #figure2, #figure3 {  margin: 4px -304px 50px 50px; } .wp-caption, .post-content img {border:none; background: none !important;  }
.wp-caption:hover {border:none}
 #patternList li { clear: both; min-height:110px;} #patternList li img {  /*margin-right: -150px;*/}
--></style>
]]></content:encoded>
			<wfw:commentRss>http://blog.openprocessing.org/?feed=rss2&#038;p=253</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
