<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ian Johnson on Medium]]></title>
        <description><![CDATA[Stories by Ian Johnson on Medium]]></description>
        <link>https://medium.com/@enjalot?source=rss-f682ddbdedde------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*NpFfNREVifroCKin-tNzpA.jpeg</url>
            <title>Stories by Ian Johnson on Medium</title>
            <link>https://medium.com/@enjalot?source=rss-f682ddbdedde------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 17:51:44 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@enjalot/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Visualizing Monthly Retail Reports To Better Uncover Insights]]></title>
            <link>https://medium.com/@enjalot/visualizing-monthly-retail-reports-to-better-uncover-insights-7a57294021ac?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a57294021ac</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[data-analysis]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Fri, 23 Sep 2022 16:17:24 GMT</pubDate>
            <atom:updated>2022-09-23T17:01:33.720Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*17Yd1RlZACll3xaFeXAGLw.gif" /><figcaption><em>Explore past retail reports in our </em><a href="https://observablehq.com/@observablehq/monthly-retail-trade-report-time-machine"><em>Monthly Retail Trade Report Time Machine</em></a><em>.</em></figcaption></figure><p>For <strong>data analysts</strong> and <strong>business leaders</strong> focused on the retail industry, being able to use data to effectively identify and forecast trends is crucial to the success of their business and to getting consumers what they need, when they need it.</p><p>With supply chains still reeling and costs rising, it has never been more important for retailers to manage their inventory in the most effective way possible… and that involves exploring and understanding a tremendous amount of complex data.</p><p><strong>And for those of us who are not retail data analysts</strong>, this data is interesting and relevant because it is often a leading economic indicator. A positive or negative monthly retail sales report can, quite literally, move our economic markets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tOh0XbXhK3he5EXd-z_VDg.png" /><figcaption><em>See this table for prior months in our </em><a href="https://observablehq.com/@observablehq/monthly-retail-trade-report-time-machine"><em>Monthly Retail Trade Report Time Machine</em></a><em>.</em></figcaption></figure><p>In addition, improperly managed inventory could directly impact everyone on a daily basis by the scarcity of things like toilet paper, infant formula and many others. This <a href="https://www.cnet.com/culture/supermarket-shortages-13-items-that-coul-be-hard-to-find/">recent article</a> from <a href="https://twitter.com/Katie_Conner23">Katie Teague</a> at CNET outlines a list of items that may be hard to find at your local store.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PWDRvhKfW4iw56-9" /><figcaption><em>Estimated sales by industry September 2019 through August 2022 in our </em><a href="https://observablehq.com/@observablehq/monthly-retail-trade-report"><em>Monthly Retail Trade Report notebook</em></a></figcaption></figure><p>In an effort to better educate ourselves at Observable, and to offer a resource to anyone following the retail industry, we<strong> </strong><a href="https://observablehq.com/@observablehq/monthly-retail-trade-report"><strong>created an Observable Notebook</strong></a> that uses visualization techniques to shed light on the monthly retail sales numbers shared by the US Census bureau. If you’re not an Observable user yet, you can create your <a href="https://observablehq.com/solutions/developers">free account here</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tOh0XbXhK3he5EXd-z_VDg.png" /><figcaption><em>See this table for prior months in our </em><a href="https://observablehq.com/@observablehq/monthly-retail-trade-report-time-machine"><em>Monthly Retail Trade Report Time Machine</em></a><em>.</em></figcaption></figure><p>We encourage our community to <a href="https://observablehq.com/@observablehq/monthly-retail-trade-report">fork this notebook</a> and explore the data alongside our team. We’ve converted it from Excel spreadsheets to a code-and-analysis-friendly format. And if you notice something interesting, be sure to connect with us via <a href="https://twitter.com/observablehq">Twitter</a> and share what you find!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YdGsqkpQJHmFltJg" /><figcaption>Month-over-month difference in estimated sales, sorted by biggest monthly loss. September 2019 through August 2022 in our <a href="https://observablehq.com/@observablehq/monthly-retail-trade-report">Monthly Retail Trade Report notebook</a></figcaption></figure><p>For example, do you think dataviz could have driven timely insights that could have helped us avoid the toilet paper, infant formula scarcity we’ve faced?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a57294021ac" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Machine Learning for Visualization]]></title>
            <link>https://medium.com/@enjalot/machine-learning-for-visualization-927a9dff1cab?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/927a9dff1cab</guid>
            <category><![CDATA[exploration]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[creativity]]></category>
            <category><![CDATA[data-visualization]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Fri, 28 Sep 2018 22:03:08 GMT</pubDate>
            <atom:updated>2018-09-28T22:03:08.093Z</atom:updated>
            <content:encoded><![CDATA[<h4>Let’s Explore the Cutest Big Dataset</h4><p>This is a transcript of the talk I gave at OpenVisConf 2018:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F6n-kCYn0zxU%3Fstart%3D49%26feature%3Doembed%26start%3D49&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6n-kCYn0zxU&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F6n-kCYn0zxU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9b8bf9495080906f1eddc8187526be87/href">https://medium.com/media/9b8bf9495080906f1eddc8187526be87/href</a></iframe><p>Data visualization is about exposing patterns to the eye.</p><p>We are always seeking ways to tap into deeper patterns.</p><p>Patterns that feel distinctly human</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HyTRV_zmGG9kYC8kX2M-uA.png" /></figure><p>Patterns we humans can recognize but can’t articulate to a computer</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*ixx2B1bqTXG5LkEMAWKudw.png" /><figcaption>:)</figcaption></figure><p>And patterns we didn’t even think to look for</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NFaixVPXd6LDeBgVm4vxWQ.png" /><figcaption>computer, show me only cute owls</figcaption></figure><p>When exploring a new dataset we have various tools in our analysis and visualization toolkit. These tools include things like averages and summary statistics, line charts and histograms, as well as an ever expanding <a href="http://blockbuilder.org/search">catalog of custom visualizations</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dFS0mIPl-BLD2X1mTU39Ww.png" /><figcaption>some bl.ocks made with <a href="https://d3js.org/">d3.js</a> and other tools</figcaption></figure><p>Now I want to direct your attention to a relatively new set of tools that can change the way we explore large datasets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/976/1*j50v-OhpXrWMulEyfYi60Q.gif" /><figcaption><a href="https://distill.pub/2016/misread-tsne/">t-SNE</a> all the things!</figcaption></figure><p>These tools use Machine Learning to pull out patterns for us and give us new ways to navigate our data.</p><p>I’d like to demonstrate these techniques on my favorite dataset, <a href="https://quickdraw.withgoogle.com/data">Quick, Draw!</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dSW1b8a4Pumew_rTXHDMFQ.gif" /><figcaption><a href="https://quickdraw.withgoogle.com/data">Quick, Draw!</a></figcaption></figure><p>If you haven’t had a chance to play the game, the rules of <a href="https://quickdraw.withgoogle.com/">Quick, Draw!</a> are pretty simple. The game asks you to draw a word, and you try to get an AI to guess the word from your drawing.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yo0RVUjCjjopy5u_ybW7DQ.gif" /></figure><p>When the <a href="https://www.creativelab5.com/">Google Creative Lab</a> built Quick, Draw!, they had the foresight to save anonymized copies of the drawings, altering the course of my life forever. At this point millions of people across the globe have played and Google has open sourced 50 million of the drawings they created. This means we have on average more than 100,000 drawings for each of the 300 words in the game to explore.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W_4hRvIFbkThZAwnZ4ZeAA.png" /><figcaption>some of the 300+ words in the dataset</figcaption></figure><h3>The Data</h3><p>Let’s take a close look at the data, what it is and isn’t.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3iSjSs-4q9GPfqM_vC-OwA.png" /><figcaption>what, when and where</figcaption></figure><p>This dataset makes for a great demonstration, because its so fun but it is also representative of so many serious datasets. It has categorical data, such as which word is being drawn and which country the drawing originated from. We also have a few time related dimensions, such as how long the drawing took to draw (duration), a timestamp of when the drawing was made.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RmmpOnqrSy0LsyyQwE_czw.png" /><figcaption>how</figcaption></figure><p>We also have the sequence of points that make up the drawing. It is this sequence of pen strokes that carries most of the meaning in this dataset, they capture the way we as humans represent abstract concepts across the globe.</p><p>They are also the most difficult to dissect with traditional data visualization techniques.</p><h3>Data Visualization</h3><p>Just because something is difficult, doesn’t mean it can’t be done. Since the dataset was released several amazing projects applied various techniques to surface interesting patterns in the data.</p><h4><a href="http://vallandingham.me/quickdraw/">How Long Does it Take to (Quick) Draw a Dog?</a> by Jim Vallandingham</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DZAUHMlKKLWtKA_D1mXkMA.gif" /><figcaption>breaking down the data by complexity</figcaption></figure><p>This project explores questions around complexity and quality by utilizing stroke counts and drawing durations. Some quite interesting observations can be surfaced by interactively browsing the summary statistics of these attributes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QvzEniL_5aIL8JufH6QyLQ.png" /><figcaption>On average ducks take longer to draw than flamingos. also, owls are always cute</figcaption></figure><p>Note that the dimensions visualized here are the count of strokes and the duration of the drawing, both reduce the sequence of strokes to a single number. These numbers give us a manageable way to peek into the data, but can’t capture all of the features of the drawings by themselves.</p><h4><a href="https://qz.com/994486/the-way-you-draw-circles-says-a-lot-about-you/">How Do You Draw a Circle?</a> by Nikhil Sonnad</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/938/1*vMbB5fRW7LhS9RcStzbUCQ.gif" /><figcaption>We can look not just at what we draw, but how we draw</figcaption></figure><p>This article takes a deep dive into simple shapes, they determine whether each circle is drawn clockwise or counter clockwise, allowing them to count this feature in the dataset.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*UyYricUd-XS6Hqp58IkiTg.png" /><figcaption>Highlighting cultural phenomenon</figcaption></figure><p>They can then visualize this feature to communicate some understanding about cultural differences across the world.</p><blockquote>“There are countless ways that we subtly, unconsciously carry our cultures with us: the way we draw, <a href="http://www.businessinsider.com/order-a-beer-like-a-german-2014-3">count on our fingers</a>, and <a href="https://www.theatlantic.com/international/archive/2015/11/onomatopoeia-world-languages/415824/">imitate real-world sounds,</a> to name a few. That’s the delight at the heart of this massive dataset.”</blockquote><h3><a href="http://formafluens.io/">Forma Fluens</a> by Visual AI Lab @ IBM Research</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*rdKUBHYy-pV9F9Pir0YP8w.gif" /><figcaption>A is for Average</figcaption></figure><p>This project takes a number of interesting approaches to visualize the data. One in particular is the use of visual averages to highlight cultural patterns.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4jGBe33PTtz9Vpv5fi9axg.png" /><figcaption>oh crap I forgot my converter</figcaption></figure><p>Visual averages work by drawing thousands of faint transparent drawings on top of each other, surfacing the dominant patterns. This works especially well when we filter drawings by country where cultural patterns can emerge.</p><h3><a href="https://twitter.com/kcimc/status/902229612666658816?lang=en">Visual Averages by Country</a> by Kyle McDonald</h3><p>Kyle McDonald took the concept of visual averages to an extreme in this epic tweetstorm.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rv7FnBHT-V53uTIpC9otvg.png" /><figcaption>where is the soft-serve?</figcaption></figure><p>He makes excellent use of small multiples to compare patterns across several categories.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f6OwLNPZNP5qEOiDzpXsUQ.jpeg" /><figcaption>finding nemo</figcaption></figure><p>These certainly give us some interesting points to reflect on, but it’s hard to dig deeper since all of the nuanced patterns get washed out by the averaging.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BRM96SsQUnxRtomJ7HKOGw.png" /><figcaption>we can’t really see anything when we average <strong>yoga</strong>. countries: USA, Korea, Germany, Brazil</figcaption></figure><p>So what if we had a way to capture the nuance lost by averages, to automatically find the interesting features in the strokes and dissect the data by more than one dimension at a time?</p><h3>Machine Learning</h3><p>Enter Deep Neural Networks. These aren’t magic, but they do have some amazing capabilities and as it turns out, we have just such a network trained on the Quick, Draw! dataset. It’s called <a href="https://research.googleblog.com/2017/04/teaching-machines-to-draw.html">sketch-rnn</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/728/1*jRSO7xkF_rWizyMS1q10sg.gif" /><figcaption>You can play with this yourself over at the <a href="https://magenta.tensorflow.org/sketch-rnn-demo">sketch-rnn demo page</a></figcaption></figure><p>While it’s super fun to play with the network and come up with creative applications for a drawing machine, what’s exciting for us as data visualizers is the patterns its had to encode in order to generate its drawings.</p><p>So how do we get at these patterns?</p><p>One way to do it is to ask the network how probable it thinks a given input drawing is, as Colin Morris did in his <a href="http://colinmorris.github.io/blog/bad_flamingos"><strong>Bad Flamingos article</strong></a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/950/1*KBbXUUVfeQpTxg3ylUog3Q.png" /><figcaption>The Treachery of Machine Learning. Flamingos? ¯\_(ツ)_/¯</figcaption></figure><p>On top we see flamingos the network thinks are highly likely and on the bottom are flamingos it thinks are very unlikely. This gives us an interesting lens to look at the data through, but it still reduces all of the data to a single dimension. That’s a problem because some of the most interesting depictions of flamingos are mixed in with words that are clearly not a flamingo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TAGIIWhfLrjkPZQBnqOlnQ.png" /><figcaption>what if we wanted to find bad-ass flamingos?</figcaption></figure><p>We would like a broader view of the data, and we can get one once we understand a little bit more about how the network operates. Sketch-rnn belongs to a family of neural networks called auto-encoders which find ways to “compress” input data into a smaller representation that can then be used to generate new output.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JT5JI-mh9c6n_IDfS8mUZw.png" /><figcaption>The encoder takes in a drawing and compresses it into a latent vector</figcaption></figure><p>The network is composed of two parts, an encoder network that tries to find a way to represent the data in much fewer dimensions than the input, and a decoder network that tries to accurately reconstruct the original data using only the encoded data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8varh-GjLgNpHeNrPZwymQ.png" /><figcaption>The decoder takes the latent vector as input and outputs a new (very similar) drawing</figcaption></figure><p>We call the encoded data a latent vector, and it’s the key to unlocking our technique.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*Ol0ry6uPGlwiVKUx585vVQ.png" /><figcaption>latent vectors</figcaption></figure><p>We can extract the latent vector for each drawing from the network, which gives us a way to compare the drawings numerically.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/790/1*OoE470yPWVnKU2l9JzVKlg.png" /><figcaption>similar faces have similar latent vectors</figcaption></figure><p>When we compare them we see that similar latent vectors mean similar drawings. In our network, a latent vector is 128 numbers, which is still kind of a lot to deal with. So we need a way to compare a lot of high-dimensional data points with each other.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/900/1*4f9rxD7v6t-chIc2oiX3wA.png" /><figcaption>A map of all our faces</figcaption></figure><p>Luckily there is a wonderful algorithm called t-SNE which is very helpful for visualizing similarities in high-dimensional data. It <a href="https://distill.pub/2016/misread-tsne/">isn’t a silver bullet</a>, but it offers us a very interesting way to explore our data. Here each drawing is represented by a small translucent yellow dot, the algorithm places similar drawings close to each other to create this two dimensional map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TNukdrF8WgtJWMEEzvBZaw.png" /></figure><p>We can zoom in on a small piece of this map, and see a group of similar drawings.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EZrFfmojBlP5BpqIjmS03Q.png" /></figure><p>As humans using our eyes, the patterns here are fairly clear, namely the eyes and smile.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*__fuMrbqQ0HNcDRGLKtnBw.png" /></figure><p>Let’s look at an entirely different cluster.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oR4u5E5OMLy6fbwrv5tQ2A.png" /></figure><p>We can see that this cluster highlights a pretty different pattern, which is kind of sad.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dJJbNQgRv1tBqfW88rQkJg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YnBhRVKwo8jt7y0sRogiQA.png" /><figcaption>the goofy dimension</figcaption></figure><p>Let’s get back to the idea of studying the complexity of drawings. Instead of using proxies for complexity like number of strokes or duration of drawing we can examine complexity directly.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*80Cp9-hzzKyEOQ0_1wApeA.png" /><figcaption>cat map</figcaption></figure><p>Here is one way to draw a simple cat, all of these have a single stroke:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jwfpl-1dgbEcef3XYQC8ZQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kUKqMYy2sx17L4bUm5mXVg.png" /></figure><p>Here is another way to capture the essence of catness with simplicity, though this time with 3 strokes. In both cases you could put these in front of a young child and they would say that’s a cat!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ukQZiWe2Cn2tGyB0zWLYpQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N-pJoPSt21uX3LMZyuYxMw.png" /></figure><p>Now we depart from metrics and get into humanities:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QfYka_G7pUSKFKagOy3BWw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tGpngxiNGAVLnCikJXyNbA.png" /></figure><p>Here are some approximately equally complex cats, but clearly we are looking at whiskers and not smiles:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QMyqIX1TtTVq10fAKuCPnA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*phSBt_81cWNr8-KSjc4Kag.png" /></figure><p>We don’t need to stop there, we can have it all!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IT_osDPiK78keuCnKUiDiA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r1THJJooHyYBaoJc3s1Rvg.png" /></figure><p>So now we are navigating through a space that is much richer than a single dimension.</p><p>Let’s revisit the problem of averaging a concept like yoga.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g4ETvf9IQEShmtuBAjAA3A.png" /><figcaption>yoga map</figcaption></figure><p>The problem with averages is that they assume a normal distribution with a single mode. What we will see is that there are several modes when representing yoga, starting with the different poses.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cacnJ860suxVAkI6_bJvaA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fIZ7O3cz1pm80nO2LXn_ww.png" /><figcaption>don’t forget to breathe</figcaption></figure><p>The way people draw even a single pose:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TBebIxbInOE4YqK8coTzRg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HyTRV_zmGG9kYC8kX2M-uA.png" /></figure><p>And the way people give up:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C5fP1CfTkuc01BCaUvFqWA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*87qmKZAsXYoHh9H04VAhJA.png" /></figure><p>At this point I want to pause and step back from our particular dataset of drawings and make sure we’re clear on the two things going on here.</p><p>The first is that t-SNE is a general technique for visualizing high-dimensional data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JMGM9hdQSe110CarCAkDcQ.png" /><figcaption><a href="http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf">Visualizing Data using t-SNE</a> by Laurens van der Maaten</figcaption></figure><p>The second thing is that Neural Networks can work on all kinds of data. In this figure, taken from Chris Olah’s amazing article <a href="http://colah.github.io/posts/2015-01-Visualizing-Representations/">Deep Learning for Human Beings</a>, paragraph vectors are visualized with t-SNE to surface topics in Wikipedia articles.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jTgnWF4_D7m6d1C6g0hAFQ.png" /></figure><p>So using Neural Networks to find patterns and t-SNE to visualize them is a good idea in general.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Td_fvAHUzqZ-VuYKlAaRYQ.png" /></figure><p>A more mathematical term for the high-dimensional landscape created by our neural network’s internal representation is the “latent space”. We can think of t-SNE as helping us draw a map of this space.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EFAmkF6grko2ZwF4LazyDQ.png" /></figure><p>Much like a 2D map can never truly represent our 3D globe, a 2D t-SNE map won’t be able to show us everything thats happening in higher dimension.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OGkI9JYXd3blcjnM-Evq-A.png" /></figure><p>But it can still be a very helpful way to navigate as we explore.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*baIaK8BUmtSxq6XeRynS_Q.png" /></figure><p>Here we’ve sampled a single drawing from each grid cell and opacity indicates the number of drawings in that cell.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vNIN1sceVwaXOtSflk2jhA.png" /><figcaption>simpler smiley faces</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tVPCVN5y4yuNtd3tJNXSNQ.png" /><figcaption>faces with long hair, short hair or no top</figcaption></figure><p>Let’s briefly bring back the idea of averaging by country codes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*alNgLZPXupfxJ5AMMjT08w.png" /></figure><p>With this view we can instead filter down by country code. We can take a quick look at Japanese power outlets:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hSdhfLVL9MR8l9a89Ena0w.png" /></figure><p>If we zoom in we see the predominant representation of a “Type A” outlet with two vertical holes. Unlike in the averages, we also get to see some fun outliers which seemed to have understood power lifting instead of power outlet</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kRMRP03DZ6Vv1Sjmm6q7MA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kTtiW9c-PD8dbntCtLZLGA.png" /><figcaption>left: standard “type A” plugs, right: power lifting</figcaption></figure><p>Let’s look at another word, octopus and revisit the idea of complexity.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*reI1oDW_uStfJcjtSq8Qow.png" /></figure><p>We can filter our map to only octopi with 1 stroke, and sample from those areas. It’s probably easy to imagine drawing an octopus in 1 go like these.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MBwfP-ELvWE_3xA8gQSfWg.png" /></figure><p>If we instead filter to all of the complicated octopi, defined by having more than 14 strokes:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kx89yey7bwe5l5ZfL9c2WA.png" /></figure><p>We find a really fun cluster</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5MOhxUdPZvVk93zRXm_jjg.png" /></figure><h3>Conclusion</h3><p>The different ways in which people draw are like different notes, the harmonics of a word and the clusters we’ve explored are the result of thousands of strangers harmonizing together.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ojp39R6oOqpii31lqozboQ.png" /><figcaption>namaste</figcaption></figure><h4>Thanks</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tS0jXh93whFyFJ9Bxw2BVA.png" /><figcaption>tiger drawings randomly assigned to thankees</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=927a9dff1cab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Trouble with D3]]></title>
            <link>https://medium.com/dailyjs/the-trouble-with-d3-4a84f7de011f?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/4a84f7de011f</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[d3js]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[html5]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Tue, 12 Jun 2018 04:12:09 GMT</pubDate>
            <atom:updated>2018-06-15T08:46:59.563Z</atom:updated>
            <content:encoded><![CDATA[<p>Recently there were a couple of threads on Twitter discussing the difficulties associated with learning <a href="https://d3js.org/">d3.js</a>. I’ve also seen this come up in many similar conversations I’ve had at meetups, conferences, workshops, mailing list threads and slack chats. While I agree that many of the difficulties are real, the threads highlight a common misconception that needs to be cleared up if we want to help people getting into data visualization.</p><h3>Martin Burch 🌳 on Twitter</h3><p>The trouble with D3 is to build a visualization you must also have a deep understanding of SVG, DOM, JavaScript, geometry, color spaces, data structures, the standard model, and quantum physics</p><h3>Frank Elavsky ᴰᵃᵗᵃ ᵂᶦᶻᵃʳᵈ on Twitter</h3><p>⬇️ Thread of thoughts on this topic ⬇️ I&#39;ve taught #D3js to nearly 300 faculty, staff, and students at primarily the grad/PhD level across various workshops and bootcamps. Some key reasons behind why D3 is hard, I&#39;ll outline below (in case anyone is learning or curious) https://t.co/JzmSCy3NXD</p><p>The misconception at the heart of these threads is that d3 and data visualization are the same thing. That to do data visualization one must learn and use all of d3, and to use d3 one must learn all of data visualization. Instead, I like to emphasize that d3 is a toolkit for communicating complex data-driven concepts on the web.</p><p>What I want to get across here is how we can get a more holistic view of d3’s role in web-based data visualization. Let’s use a metaphor inspired by <a href="https://twitter.com/Milr0c/status/1005467314081312768">Miles McCrocklin</a> where data visualization is likened to building furniture. All kinds of people might get into building furniture, for all kinds of reasons, especially when they see the beautiful things other people are making:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FN7NQwfsUcyZ93gq7CGJxw.jpeg" /><figcaption>The Eames chair is considered a masterfully designed chair</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qJVG1VD0YHwcO8S9MSSaHw.png" /><figcaption>There are many aspirational data visualizations made with d3</figcaption></figure><p>People see the impressive output and naturally desire the ability to make it themselves, they ask how it is done and often hear “it was made with d3.” This is the start of the problem, because when someone hears that it was made with d3, they think “oh, I should go learn d3”. They go over to the documentation and see something like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DGK4fxxv-BnB_oeqSwoqIg.jpeg" /><figcaption>d3’s API</figcaption></figure><p>Many of these tools seem baffling, they require knowledge about woodworking and processes we’ve never thought about before, or even knew we might need to think about. We feel overwhelmed and discouraged, it seems the path to something that seemed within reach is long and treacherous.</p><p>This is where I believe we can change things for the better, rather than changing the toolset we can guide people based on their goals along more suitable paths for them. Let’s examine a few common situations where people find themselves wanting to do interactive data visualization and how we might plot a better course for each.</p><h4>The designer</h4><p>Our designer is already comfortable communicating ideas visually, they know how to break down complex problems and map them to relatable concepts. They have a suite of tools that enhance their ability to express whats in their mind. They often are not very familiar with programming, perhaps they have some experience with basic HTML and CSS for putting together static web pages. They’ve seen what people can make with d3 and are driven to be able to do the same. When they try to understand what looks like a very small amount of code in a <a href="https://bl.ocks.org/">bl.ock</a> they get very confused.</p><blockquote>What part of this is JavaScript? What part is specific to d3? What is an asynchronous request? What is this DOM I keep hearing about?</blockquote><p>For these folks, d3 offers great power and flexibility, but first they must learn some foundational technical skills to operate in this environment. I often recommend Scott Murray’s excellent <a href="http://alignedleft.com/tutorials/d3/fundamentals">d3 tutorial</a> (and <a href="http://alignedleft.com/work/d3-book-2e">book</a>) which covers basic HTML, CSS and JavaScript concepts. I also recommend experimenting with exporting SVG from design tools like Illustrator and Sketch and imbuing them with interactivity and data magic in the browser.</p><p>When starting out, I often encourage designers not to focus on the enter/update/exit pattern, reusability or performance concerns. It’s much more helpful to focus on getting the desired output, once you have something close there are lots of friendly folks that can help you make it more performant or robust.</p><h4>The analyst</h4><p>Our analyst is already comfortable working with data, writing queries and calling powerful functions with complex APIs. They have a workflow in a powerful environment like <a href="https://www.rstudio.com/">R Studio</a> or <a href="http://jupyter.org/">Jupyter Notebooks</a>. Most likely they come to d3 because they want to publish their analysis in some way. While the analyst is typically more comfortable programming than the designer, they are likely not familiar with the idiosyncrasies of programming in a web browser environment.</p><blockquote>What is the difference between SVG and Canvas? What is the JavaScript equivalent to Pandas/Tidy? Why can’t I draw a line chart with an SVG line? What is this “d” attribute on a path?</blockquote><p>For these folks I also recommend a primer in web development to familiarize themselves with concepts like the DOM. Again, my favorite starting point is Scott Murray’s <a href="http://alignedleft.com/tutorials/d3/fundamentals">d3 tutorial</a> (and <a href="http://alignedleft.com/work/d3-book-2e">book</a>). I would also recommend a crash course in JavaScript and JSON, exporting data from their normal environment as JSON for visualizing in the browser.</p><p>When starting out, I often encourage analysts to ignore a lot of d3’s utility functions, as they are probably more familiar with the powerful functions in their own environments. Instead, I think its best to focus on exporting the data into an easy-to-consume JSON or CSV format that matches <a href="http://blockbuilder.org/search">existing examples</a>.</p><h4>The software engineer</h4><p>Our software engineer is an interesting case, because although they have a lot of the foundational skills and knowledge around web development, some of d3’s tools require a foreign way of thinking. In our metaphor, the engineer doesn’t just care about making furniture, they are working on the entire building. There are frameworks and infrastructure that the furniture has to fit inside.</p><blockquote>What is this enter/update/exit business? Why are you messing with my DOM? Transitions… How do I unit test those?</blockquote><p>Many developers will already be intimately familiar with the DOM and JavaScript, so my advice is to actually try and ignore the parts of d3 which focus on the DOM. Instead, become familiar with some key utilities for data visualizations like <a href="https://medium.com/@mbostock/introducing-d3-scale-61980c51545f">d3-scale</a>. D3 is broken up into many smaller modules so it’s pretty easy to cherry-pick the functionality you want to use.</p><p>I also emphasize separating the layout of data from the visualization, so using a module like <a href="https://github.com/d3/d3-hierarchy#d3-hierarchy">d3-hierarchy</a> you can generate a data structure with d3 and then render it into the DOM using your framework of choice.</p><h4>Silver bullets</h4><p>These situations are loose archetypes, many people will fall somewhere between them and that’s perfectly fine too. The idea is to separate out the goals and constraints so that we can better guide the diverse folks entering our community.</p><p>I personally think of web standards as the lowest common denominator for global communication. The graphics APIs are not ideal but if you want to instantly distribute your data-driven experience to billions of people I think it’s reasonable to pay the price of a relatively steep learning curve. The underlying concepts of 2D graphics, visual design, user experience design, information architecture and programming all transfer directly to many other endeavors besides data visualization.</p><p>But sometimes, a chair is just a place to sit, we don’t have time or money to care that much and IKEA will do just fine! In those cases there are plenty of <a href="https://docs.google.com/spreadsheets/d/1k-GVrhLw2_KdSvfCOt3RzF6otWfZQ5rbsBpVnTP425w/edit?usp=sharing">charting libraries</a> that only need a little bit of configuration to get going.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/1*kON8-o05OAmtq4MPra9uWg.png" /><figcaption>Sometimes this is the only tool you need.</figcaption></figure><p>Elijah Meeks has made a great map of the d3 API that breaks down the toolbox into useful categories in <a href="https://medium.com/@Elijah_Meeks/d3-is-not-a-data-visualization-library-67ba549e8520">his recent article</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-9JKSXjzlRHF0IiGk2UdKw.png" /><figcaption>from Elijah’s <a href="https://medium.com/@Elijah_Meeks/d3-is-not-a-data-visualization-library-67ba549e8520">D3 is not a Data Visualization Library</a> article.</figcaption></figure><p>I’ve also attempted to map out the d3 learning landscape in my article <a href="https://medium.com/@enjalot/the-hitchhikers-guide-to-d3-js-a8552174733a">The Hitchhiker’s Guide to D3</a>, which gives some links and starting points for what I believe are some of the more essential concepts.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*S5e6gUJvifqacWFLJMhyiQ.png" /><figcaption>The journey isn’t easy, but it can certainly be an adventure!</figcaption></figure><p>A while back I <a href="https://medium.com/@enjalot/how-do-you-learn-d3-js-ccffc151419b">interviewed a handful of data visualizers</a> who learned d3 in the process of expressing themselves and the datasets they cared about. The common theme was that they had started with goals. They learned what they needed from d3 along the way to achieving those goals.</p><p>So grab a map and plot your own course through the vast world of Data Visualization. You can find some trails others have blazed with <a href="http://blockbuilder.org/search">Blockbuilder search</a>, try out JavaScripts very own Notebook environment <a href="https://beta.observablehq.com/">Observable</a>, and join over 3,000 like-minded chair makers, I mean data visualizers on the <a href="https://d3-slackin.herokuapp.com/">d3 slack channel</a>.</p><p>Good luck, I look forward to seeing your visualizations!</p><p><em>I’d like to thank Erik Hazzard, Kerry Rodden, Zan Armstrong, Yannick Assogba, Adam Pearce and Nadieh Bremer for their feedback on this article.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4a84f7de011f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/dailyjs/the-trouble-with-d3-4a84f7de011f">The Trouble with D3</a> was originally published in <a href="https://medium.com/dailyjs">DailyJS</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Hitchhiker’s Guide to d3.js]]></title>
            <link>https://medium.com/@enjalot/the-hitchhikers-guide-to-d3-js-a8552174733a?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/a8552174733a</guid>
            <category><![CDATA[d3]]></category>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[d3js]]></category>
            <category><![CDATA[svg]]></category>
            <category><![CDATA[html5]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Fri, 12 May 2017 15:59:31 GMT</pubDate>
            <atom:updated>2018-11-09T00:15:28.551Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2nRwaSWpN28FVF8gBu_uVQ.png" /><figcaption>the d3 learning landscape in all its glory</figcaption></figure><p>The landscape for learning d3 is rich, vast and sometimes perilous. You may be intimidated by the long list of functions in <a href="https://github.com/d3/d3/blob/master/API.md">d3’s API documentation</a> or paralyzed by choice reviewing the <a href="https://github.com/d3/d3/wiki/Tutorials">dozens of tutorials</a> on the home page. There are over <a href="http://blockbuilder.org/search">20,000+ d3 examples</a> you could learn from, but you never know how approachable any given one will be.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C17GW5l4S_W99_52lQMpBQ.png" /><figcaption>we are still working on mapping out the whole landscape…</figcaption></figure><p>If all you need is a quick bar or line chart, maybe this article isn’t for you, there are <a href="https://github.com/wbkd/awesome-d3#charts">plenty of charting libraries</a> out there for that. If you’re into books, check out <a href="http://shop.oreilly.com/product/0636920026938.do">Interactive Data Visualization for the Web</a> by <a href="https://twitter.com/alignedleft">Scott Murray</a> as a great place to start. <a href="https://www.manning.com/books/d3-js-in-action">D3.js in Action</a> by <a href="https://twitter.com/Elijah_Meeks">Elijah Meeks</a> is a comprehensive way to go much deeper into some regions of the API.</p><p>This guide is meant to prepare you mentally as well as give you some fruitful directions to pursue. There is a lot to learn besides the d3.js API, both technical knowledge around web standards like HTML, SVG, CSS and JavaScript as well as communication concepts and data visualization principles. Chances are you know something about some of those things, so this guide will attempt to give you good starting points for the things you want to learn more about.</p><h3>Communicate Complex Concepts</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ofBagXi1x0h8TdHF8tc3nA.png" /><figcaption><a href="http://www.r2d3.us/visual-intro-to-machine-learning-part-1/">r2d3.us visual introduction to machine learning</a> sets the bar high</figcaption></figure><p>Before we dive into data visualization principles and technical skills, lets take a second to be aspirational. There are some amazing examples of what’s possible in this medium, whether its a <a href="https://www.google.com/search?q=new+york+times+d3+interactives&amp;oq=new+york+times+d3+interactives&amp;aqs=chrome..69i57j69i64.6825j0j1&amp;sourceid=chrome&amp;ie=UTF-8">New York Times article</a>, <a href="http://www.r2d3.us/visual-intro-to-machine-learning-part-1/">r2d3</a>, <a href="http://distill.pub/">distill.pub</a>, <a href="http://www.datasketch.es/">datasketch|es</a>, <a href="https://pudding.cool/">polygraph</a>, or <a href="http://ncase.me/">ncase</a>. Be sure to leave a comment with any inspirations I didn’t list here!</p><p>Don’t just look to others though, one of the most important things you can do is set an aspiration for yourself. I found out from <a href="https://medium.com/@enjalot/how-do-you-learn-d3-js-ccffc151419b">interviewing some of the top data visualization practitioners using d3.js</a> that one of the best ways to learn is to set your sights something you really want to build and figure out what you need to build it.</p><h3>Visual Representations</h3><blockquote>D3 does not introduce a new visual representation. Unlike <a href="http://processing.org/">Processing</a>, <a href="http://raphaeljs.com/">Raphaël</a>, or <a href="http://vis.stanford.edu/protovis/">Protovis</a>, D3’s vocabulary of graphical marks comes directly from web standards: HTML, SVG, and CSS<br> — http://d3js.org</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/921/1*GaASA7rqnQVDpHQs9BdbqA.png" /><figcaption>Learning d3.js to write charts is like to learning French to write nutrition labels. To be fair, <a href="https://twitter.com/syntagmatic">@syntagmatic</a> has made some beautiful <a href="http://bl.ocks.org/syntagmatic/2420080">nutrition visualizations</a></figcaption></figure><p>Charts are just rectangles with shapes inside of them. There are a handful of configurations of those shapes we recognize as common charts or graphs. What d3 provides is a way to define your own visual representations by manipulating graphical marks or creating your own shapes. It makes it easy to add interactions to visuals and declare how your visuals behave. You are here to learn how to express things that aren’t possible to express in any other medium.</p><p>If you want to learn about some of the principles behind the different kinds of marks and graphical representations people use, you can’t go wrong exploring the <a href="https://smile.amazon.com/Grammar-Graphics-Statistics-Computing/dp/0387245448?sa-no-redirect=1">Grammar of Graphics</a>.</p><p>Don’t worry though, there are a ton of creative things you can do with just circles, rectangles and some careful positioning. Start simple, always try to get something to show up on the screen and build up from there.</p><h3>On the web</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TwUCVhrN9Xltsj3sDgntUQ.png" /><figcaption><a href="https://www.visualcinnamon.com/2016/04/svg-beyond-mere-shapes.html">SVG Beyond Mere Shapes</a> is an awesome demonstration of web standards graphics manipulation</figcaption></figure><p>One of the reasons you want to use d3.js is so you can share your work instantly with anyone who uses a web browser (at least half of the people on Earth!). That means you need to have at least a passing understanding of the medium you’ll be working in, which is HTML5. So before you even start calling d3 API functions you’ll need some basics in SVG, HMTL and CSS. You’ll probably also want to <a href="https://www.w3schools.com/html/html5_canvas.asp">learn some Canvas</a> if you want to be serious about rendering a lot of data (don’t worry, its actually kind of easier to learn than SVG). I recommend <a href="https://medium.freecodecamp.com/d3-and-canvas-in-3-steps-8505c8b27444">this is a great intermediate tutorial</a> on using d3 with Canvas after you are comfortable with the basics of both.</p><p>For SVG I recommend starting with this short but sweet <a href="http://alignedleft.com/tutorials/d3/an-svg-primer">SVG primer</a> by <a href="http://twitter.com/alignedleft">Scott Murray</a>. Play around with manually creating SVG elements and seeing how they work. Use a tool like <a href="http://blockbuilder.org/">BlockBuilder</a> to quickly get started without setting up any kind of development environment. You may want to refer to the <a href="https://developer.mozilla.org/en-US/docs/Web/SVG">MDN reference site for SVG</a>. Once you’ve mastered the basics, check out <a href="https://www.visualcinnamon.com/2016/04/svg-beyond-mere-shapes.html">SVG beyond mere shapes</a> by <a href="http://visualcinnamon.com/">Nadieh Bremer</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PFwvxtqLRRVekNoMufclzw.gif" /><figcaption><a href="http://blockbuilder.org/">http://blockbuilder.org</a> makes it easy to play with web standards!</figcaption></figure><p>You don’t have to use SVG to make your visualization, it’s relatively common to manipulate HTML elements like <em>&lt;div&gt; </em>tags with d3. You will need to be familiar with <a href="https://css-tricks.com/almanac/properties/p/position/">CSS positioning</a> to make it work well. You can even <a href="http://bl.ocks.org/sxv/4491174">mix HTML, SVG and Canvas all at once</a>!</p><p>It can be a bit overwhelming to figure out which rendering system you should use, and even how to use any one of them. I’m going to reiterate the importance of knowing basic HTML, CSS, SVG (and a little Canvas) before getting started with d3.js!</p><h3>Getting started with d3.js</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KfsnI5vicI0ozs1uP85Pfg.png" /><figcaption><a href="http://d3js.org/">d3js.org</a></figcaption></figure><p>How do you build up your visualization from first principles? Piece by piece and a whole lot of utility functions. As you’ve probably seen, <a href="https://github.com/d3/d3/blob/master/API.md">d3’s API</a> is massive, so lets call out a few of the utilities that will be particularly helpful early on.</p><h4>d3-scale</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*c2dJV4ZNJGdWdWNV3AVPxQ.png" /><figcaption><a href="http://blockbuilder.org/enjalot/f1ac6277c9b224ebf4daada75a06294d">colors</a> are one common use of scales!</figcaption></figure><p>Some of the most fundamental tools in the d3 tool belt are scales. Start with the <a href="https://medium.com/@mbostock/introducing-d3-scale-61980c51545f">Introducing d3-scale</a> post by Mike Bostock to get an overview of what they are and how to use them. No matter what kind of visualization you do, you will likely use at least one kind of scale to make it happen.</p><h4>d3-shape</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6HpzsxMbWhLgTbAZNpf9Kg.png" /><figcaption>A <a href="http://bl.ocks.org/mbostock/582915">streamgraph</a>, thanks to SVG paths!</figcaption></figure><p>SVG paths are pretty intense (<a href="https://css-tricks.com/svg-path-syntax-illustrated-guide/">see this thorough overview</a>), so <a href="https://github.com/d3/d3-shape#d3-shape">d3-shape</a> includes functions that will make them easier to create and manipulate for some use cases. Read Mike’s <a href="https://medium.com/@mbostock/introducing-d3-shape-73f8367e6d12">Introducing d3-shape</a> article to get an overview of what it offers and how to get started using them. d3-shape can also help you render things like lines, areas and arbitrary paths to Canvas with just one extra line of code!</p><h4>d3-selection</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/760/1*-qbObwrIKYG3_bKpZBaUgw.gif" /><figcaption>the <a href="https://bl.ocks.org/mbostock/3808234">General Update Pattern</a></figcaption></figure><p>One of the hardest parts of d3 to learn is the selection system, also referred to as the <a href="https://bl.ocks.org/mbostock/3808218">General Update Pattern</a>. It took me months of banging my head against my desk to internalize it, but don’t let that scare you! You don’t actually need to be a master of selections to get a ton of cool stuff done. When you are ready to give it a shot, you can start with the <a href="https://github.com/d3/d3-selection#d3-selection">d3-selection</a> README and be sure to click on the links like <a href="https://bost.ocks.org/mike/join/">Thinking in Joins</a>.</p><h4>d3-collection</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jcnYXBvv1W033jfwFOrS1A.png" /><figcaption>d3-nest makes it easy to <a href="https://bl.ocks.org/mbostock/9490313">group similar things together</a></figcaption></figure><p>Manipulating data is an incredibly important part of visualizing it. This can often be the hardest part to do depending on how good your data is and how well you understand it. Having more tools that make working with the data by reshaping it, slicing and dicing or aggregating it can really help. To this end I recommend getting familiar with <a href="https://github.com/d3/d3-collection/blob/master/README.md#d3-collection">d3-collection</a>, particularly the <a href="https://github.com/d3/d3-collection/blob/master/README.md#nests">nest</a> function.</p><h4>d3-hierarchy</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1CszAZA3t5oMlTOMFchzSg.png" /><figcaption>a <a href="https://bl.ocks.org/mbostock/8fe6fa6ed1fa976e5dd76cfa4d816fec">Treemap</a> is easy to layout thanks to d3-hierarchy</figcaption></figure><p>Continuing the theme of working with data, the key part to many visualizations is laying out your visual representations based on your data’s structure. Some common functions for helping you do this are found in <a href="https://github.com/d3/d3-hierarchy#d3-hierarchy">d3-hierarchy</a> for making things like trees, treemaps or circle packs.</p><h4>d3-zoom</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/958/1*R96BnzJUPFSzTzWoxIBIAw.gif" /><figcaption><a href="https://bl.ocks.org/mbostock/b783fbb2e673561d214e09c7fb5cedee">zooming is fun</a>!</figcaption></figure><p>A common interaction behavior you may want to add to your visualization is zooming. Mike has <a href="http://blockbuilder.org/search#text=zoom;user=mbostock;d3version=v4">a series of examples</a> that show various ways of adding zoom to your visualization with <a href="https://github.com/d3/d3-zoom#d3-zoom">d3-zoom</a>. Check out zoom’s close cousin <a href="https://github.com/d3/d3-drag#d3-drag">d3-drag</a> for some additional interaction help!</p><h4>d3-force</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*MiNLItcbqWuZP5y6DHVEsg.gif" /><figcaption><a href="https://bl.ocks.org/syntagmatic/75c5ca501200b0cf7a5958b4e404f777">sparse matrices</a>, amirite?</figcaption></figure><p>One of d3’s capabilities that inspires a lot of people is the force layout. It’s pretty easy to use but definitely difficult to master. Just don’t let it pull you to the dark side! See <a href="https://github.com/d3/d3-force#d3-force">d3-force</a> for more details.</p><h3>Search!</h3><p>One final tip you can use for any API function is to use <a href="http://blockbuilder.org/search">BlockBuilder’s search</a> capability. You can also limit your searches to examples that use d3 v4!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/984/1*AAKuY9w1DNMIq0oBqTe3KA.gif" /><figcaption>look at all those blocks!</figcaption></figure><h3>Community</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*m3WWkrnN1pr6V-pFZgK8KQ.png" /><figcaption>Welcome to the <a href="http://bl.ocks.org/micahstubbs/b35f2560f4205570b3328d1b40de0c6c">Blockiverse</a></figcaption></figure><p>Connect with like-minded folks! We have a vibrant online community in the <a href="https://d3-slackin.herokuapp.com/">d3.js slack channel</a>. Find a meetup near you, the SF Bay Area has <a href="https://www.meetup.com/Bay-Area-d3-User-Group/">one of the biggest groups</a>, but you can probably find some <a href="https://www.meetup.com/topics/d3-js/">groups near you</a>. If you’re really dedicated, come to the <a href="http://visfest.com/">annual d3.unconf</a> held in SF every fall!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gybGRNFfU-ZBYtK3D1qGYA.png" /><figcaption>how I see the d3 community and the many learning curves one encounters on their journey</figcaption></figure><p><em>Many thanks to </em><a href="https://twitter.com/erikhazzard"><em>Erik Hazzard</em></a><em> for editing and helping shape this post. Thanks to </em><a href="https://twitter.com/syntagmatic"><em>Kai Chang</em></a><em> for his suggestions in this post but more so for helping shape the d3 community. Thanks to #teaching-d3 in the </em><a href="http://d3-slackin.herokuapp.com/"><em>d3js Slack</em></a><em>, especially </em><a href="https://twitter.com/dashingd3js"><em>Sebastian</em></a><em> and </em><a href="https://twitter.com/JFSIII"><em>John</em></a><em> for their feedback. Of course Infinite thanks to </em><a href="https://twitter.com/mbostock"><em>Mike Bostock</em></a><em> for creating the playground we all get to work in!</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a8552174733a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[User Experience Engineering]]></title>
            <link>https://blog.prototypr.io/user-experience-engineering-a98c7724d849?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/a98c7724d849</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[product-development]]></category>
            <category><![CDATA[ux]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Wed, 29 Mar 2017 19:13:22 GMT</pubDate>
            <atom:updated>2017-03-29T19:13:22.481Z</atom:updated>
            <content:encoded><![CDATA[<p>I’ve just passed 6 months as a “<a href="https://design.google.com/jobs/ux-engineer/">User Experience Engineer</a>” at Google and I’d like to share some things I’ve come to understand about the role and where it puts me in the design process. My hope is that sharing my perspective will facilitate a discussion around inter-disciplinary product development and connect people excited about this kind of work.</p><blockquote>I should note that at Google, the UXE role has two lenses. Everything in this post concerns the “design lens” which is focused on prototyping as opposed to the “engineering lens” which is more focused on production code. It is possible to move fluidly between the two, and it is not uncommon for UXE’s to lead design work as well.</blockquote><p>First we should establish some context around the role. If we break up the product development process into three major categories we’d get <strong><em>Research</em></strong>, <strong><em>Design</em></strong> and <strong><em>Engineering</em></strong>. Each of these categories can have dedicated professionals (like Google does) or skilled generalists who can wear multiple hats (most startups).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0VcC2XzE0bUL0gPmmigOYw.jpeg" /></figure><p>The focus of each of these domains is to answer a different fundamental question about the product. The aim of <strong><em>Research</em></strong> is to answer <strong>why</strong>. Why do people have the problems we are trying to solve? Why would they or wouldn’t they use our solutions? <strong><em>Design</em></strong> is all about figuring out <strong>what</strong> we should build. It’s also about what we shouldn’t include, what the solution looks like and what the product does. Finally, <strong><em>Engineering</em></strong> is concerned with <strong>how</strong> we build the product.</p><p>You may be tempted to string these disciplines together with a linear narrative, that we first research to understand <strong>why</strong>, then design to figure out <strong>what</strong> and then let the engineers figure out <strong>how</strong> to do it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pzH9SIWiP0Rgvihe3bONPQ.jpeg" /></figure><p>In reality there are feedback loops that connect each discipline and discussions that dig deeper into each of these questions. The answers to each question we ask about <strong>why</strong> brings up new questions about <strong>what</strong> to build. While trying to figure out <strong>how</strong> we can build our product we come up with new questions for <strong>what</strong> it should be and sometimes this makes us rethink <strong>why</strong> we are pursuing a particular solution in the first place.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OLU-BHfdqg-iwoXD9ClHzw.jpeg" /></figure><p>Trying to map out all the possible ways we can tie together <strong><em>Research</em></strong>, <strong><em>Design</em></strong> and <strong><em>Engineering</em></strong> would wear us out worse than that traveling salesman. Instead, lets look at the two main opportunities I see for a UX Engineer: connecting <strong>why</strong> to <strong>what</strong> and connecting <strong>what</strong> to <strong>how</strong>.</p><h4>Why to What</h4><p>One of my favorite parts of the product development process is helping to get from <strong>why</strong> to <strong>what</strong>, it usually means creative applications of all my technical skills to quickly produce something that resembles a solution just enough so that we can get new information. It’s a delicate balance between achieving quality that isn’t distracting and avoiding waste on ideas that are dead on arrival. Before I joined Google I drew this diagram to illustrate where I like to spend my time:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zNsj8G7xO31e3gE_bM_OOg.jpeg" /></figure><p>What I’ve since realized is how much of a two-way street the <strong>why</strong>-to-<strong>what</strong> process really is. We don’t just ask <strong>why</strong> once and get the answer, most of the time we have to try several ideas, refine how we ask the questions to get better answers. Often we get to something we think is <strong>what</strong> we need to build and need to confirm that it actually answers the user’s <strong>why</strong>.</p><p>The output of this process is typically a combination of static mocks and interactive prototypes built from any variety of tools. Personally I’m doing a lot of raw HMTL/JS/CSS with some <a href="https://d3js.org/">d3.js</a> and throwing in the occasional <a href="https://www.webcomponents.org/collection/PolymerElements/paper-elements">Material polymer component</a>. That being said, the result of this process is a better understanding communicated between any number of people involved in this phase of the product development.</p><h4>What to How</h4><p>Another key opportunity for those of us that straddle design and engineering is aiding in the communication between <strong>what</strong> and <strong>how</strong>. In many places Designers and Engineers are separated along this boundary, with designers describing what they want and engineers figuring out how to build that. I find this a limiting perspective because it can place people on opposite sides of an adversarial relationship. The ideal situation would see everyone trying to reach a deep and wholistic understanding of all the questions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nnlztZAiPj5udDh5SKBp_Q.jpeg" /></figure><p>This is where a UXE can help the most, by increasing the bandwidth of communication between the two groups you reduce the amount of miscommunication and friction that occurs. Examples of this include building out high-fidelity interaction and motion prototypes that express a designers intentions more truthfully. It can also mean getting access to real data to surface edge cases and realistic scenarios before a design gets fully baked. My personal focus has been on working with data to facilitate the <strong>why-what-how</strong> loop around data visualization problems, which deserves a post of its own!</p><h4>Gifts that keep on giving</h4><p>From what I’ve seen, the above activities can be incredibly effective in speeding up and raising the quality of the product development process. There is another area I believe UX Engineers can focus on that can have a disproportionate impact and it is a side-effect of our process. I’m talking about <strong>building tools for those around you</strong>. I framed this as a perspective to adopt rather than a specific initiative or responsibility because from what I can tell it works best when you spot an opportunity. These opportunities arise in discussions with various coworkers who experience painful processes that could be alleviated via automation.</p><p>We build our prototypes with a ruthless focus on efficiency and effectiveness, balancing between fast turnaround and successful communication. If we take the same approach to building internal tools it can be surprising how helpful we can be. It just requires to look at internal development processes we encounter with the same mindset we approach our prototypes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SiV3d5y6QdSfxkv9Ik3vaQ.png" /></figure><p>Let me know what you think about my perspective of the process and the role, it’s a relatively new one in the space. I’m also excited to continue my journey into the design side of product development, coming from a math and software engineering background. I certainly feel fortunate to be learning from extremely skilled practitioners in all 3 disciplines on top of being valued for doing inter-disciplinary work.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a98c7724d849" width="1" height="1" alt=""><hr><p><a href="https://blog.prototypr.io/user-experience-engineering-a98c7724d849">User Experience Engineering</a> was originally published in <a href="https://blog.prototypr.io/">Prototypr</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[d3.unconf(2016).recap()]]></title>
            <link>https://medium.com/@enjalot/d3-unconf-2016-recap-b3af91a65f00?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/b3af91a65f00</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[community]]></category>
            <category><![CDATA[3d]]></category>
            <category><![CDATA[conference]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Sat, 31 Dec 2016 20:38:18 GMT</pubDate>
            <atom:updated>2016-12-31T20:38:18.887Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ymyEzESEEa_A6qBw5N-Y8A.jpeg" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F5HsS3lxK0O4%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5HsS3lxK0O4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F5HsS3lxK0O4%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e1149cf33c3e7514c568d800b01acfdf/href">https://medium.com/media/e1149cf33c3e7514c568d800b01acfdf/href</a></iframe><p>On October 16th one hundred d3.js practitioners gathered for two days of intensive sharing, learning and building at the <a href="http://visfest.com/d3unconf-2016/">2016 d3.unconf</a>. We had <a href="https://medium.com/@enjalot/d3-unconf-what-you-can-expect-7b42c3fb083e#.dpxbs3d8u">bigger ambitions</a> than our previous two years, and we pushed ourselves and the community in new ways.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yjG451fPnupvPo_GawOKGA.jpeg" /></figure><p>We took our tradition of animated badges (thanks <a href="http://gifpop.io/">Gifpop</a>!) to another level this year by building a self-serve app called <a href="http://badgetron.com/">Badgetron</a> to let people make their own animated designs!</p><h3>Don McCurdy on Twitter</h3><p>Day 1 was wonderful. See you tomorrow, #d3unconf! https://t.co/zuUZJ5GjiP</p><p>The badges were sponsored by Metis, who runs a <a href="http://www.thisismetis.com/data-visualization-with-d3js">6 week d3.js class</a> in both SF and NYC.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ACUJVjq8gW1cSKPfEhZIQQ.jpeg" /></figure><p>One thing we want to do better next year is give everyone even more time to design their badges. Almost 40% of attendees designed their own badge, with enough time next year we should get much closer to 100%!</p><h3>Day 1</h3><p>After everyone got their badges and their breakfast in <a href="http://www.galvanize.com/campuses/san-francisco-soma/become-a-member/">Galvanize’s</a> stunning SF location, we settled in to hear the only talk of the day: Rachel Binx’s fascinating journey with d3.</p><h4>Keynote: Rachel Binx</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5sdQY_F63xT0fpCWfHB7yQ.jpeg" /><figcaption><a href="https://medium.com/u/39b196537c54">rachel binx</a> opening up the day</figcaption></figure><p>Rachel got her start with d3 at <a href="http://stamen.com/">Stamen</a> and has since used it <a href="https://cliffsandcoasts.com/">design data-driven jewelry</a> and help coordinate <a href="http://rachelbinx.com/NASAJPL-Vortex">Mars missions at NASA JPL</a>. You should really watch her talk as she does a better job summarizing exciting applications of data visualization than we possibly could do in one paragraph:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FAQuq8hKYhtY%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAQuq8hKYhtY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FAQuq8hKYhtY%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b9e1fa488122158922f2b9f1664ecabe/href">https://medium.com/media/b9e1fa488122158922f2b9f1664ecabe/href</a></iframe><p>Rachel’s talk set the tone of curiosity and discovery, which was perfect because the rest of the day wasn’t about listening to talks, it was about participating in discussions. We broke out into 3 sessions for about an hour at a time. Covering a variety of attendee-chosen topics ranging from GIFs to Machine Learning (detailed with links to notes at the end of this post).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cI9oyDM3ZswWpf1uVa4cDg.png" /><figcaption>Breakout sessions took place in 3 different rooms</figcaption></figure><p>The energy at day one was amazing, many people who only knew of each others twitter handles, github usernames or <a href="https://d3-slackin.herokuapp.com/">slack handles</a> got to meet in person for the first time. We had people fly in from as far as France to join the fray and share ideas. Both beginners and experts learned from each other, shared tips and resources and traded inspiration.</p><p>The organizers know that the real magic of the event comes from the attendees, but we also know that the environment in which attendees gather can have a large impact on their experience. We put a lot of thought into they day-of experience, from the breakfast and lunch to the timing and location of sessions and chill spaces for catching a breather between constant socialization. We hired an <a href="http://siumei.org/project/d3-unconf-2016-2/">event planner</a> to ensure smooth logistics and more structured planning, freeing up the organizers to focus on the content and the experience as well as fundraising through sponsorships to keep our ticket prices low.</p><p>If there is one big lesson we learned this year it is to start planning even earlier. Even with 2 prior years of experience we would have loved to have more time for every aspect of the process. My biggest mistake was to block further planning on key pieces like locking down a location. In 2017 we look forward to an even better multi-day event by getting all the balls rolling in <a href="https://github.com/d3/d3-queue">parallel</a>!</p><h4>Diversity Scholarships</h4><p>Another tradition we are proud to continue is the diversity scholarships we offer to members of the community who might otherwise not be willing to attend. Whether its for financial reasons or because underrepresentation discourages some people from attending homogenous tech events we wanted to provide an avenue for encouraging everyone to attend. This year we were able to provide 17 out of 100 people with free tickets thanks to <a href="http://illumio.com/">illumio</a>’s sponsorship!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bJKmVRD6U2ntOtjI2Ax8QA.jpeg" /><figcaption>illumio meeting <a href="https://medium.com/u/39b196537c54">rachel binx</a> and <a href="https://medium.com/u/c918c478bb49">Mike Bostock</a></figcaption></figure><h3>Day 2</h3><p>For the first time the d3.unconf had a second day! We gathered in Google’s San Francisco office for a day of hacking and learning. We got a taste of Google’s infamous catering thanks to a sponsorship from <a href="http://cloud.google.com/">Google Cloud</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ktemvkg7Q0g9GmAZ3g-Ltg.jpeg" /><figcaption>Google SF hosted and sponsored our second day</figcaption></figure><h4>Keynote: Mariko Kosaka</h4><p>Mariko gave us an inspiring keynote with plenty of encouraging ideas. Her work with d3 is both exemplary and challenging, bringing data well outside the usual confines of a two-dimensional chart.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dHcm9OnsZLVUsLrNjhSgvw.jpeg" /><figcaption>Mariko shows off a knitted sorting algorithm</figcaption></figure><p>Don’t take my word for it, watch her talk and find out:</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBBDDdUDJJq0%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBBDDdUDJJq0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBBDDdUDJJq0%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2f0208a2d511ce06250a50c3048ef51f/href">https://medium.com/media/2f0208a2d511ce06250a50c3048ef51f/href</a></iframe><p>After the keynote the room was buzzing with energy, new friends wanted to continue conversations and many people were excited to try their hands at new ideas. This was our first time trying to facilitate such a large event where people would focus on coding rather than talking. We had many questions about how this might work, how much structure should we try to impose? How do we encourage a balance between absorbing information and putting it to practice?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JEGyx7LqkHd4iUrvBUvxsA.jpeg" /><figcaption>Noah Veltman teaching about animation</figcaption></figure><p>We ended up with some answers, though as usual nothing is as simple as it may seem. We heard excited praise as well as disappointment about the exact same elements of the day. One key part was a series of workshops led by members of the community. Many thanks to <a href="https://twitter.com/veltman">Noah Veltman</a>, <a href="https://twitter.com/recifs">Fil</a> and <a href="https://twitter.com/KristinHenry">Kristin Henry</a> for leading these. A lot of attendees enjoyed these workshops, which were only 45 minutes long and fairly unstructured, delighting in the spontaneity of discovering new concepts and trying new ideas. At the same time others had expectations of more structure and hopes of matching them at their skill levels. We anticipated this to an extent and had various community members lead intro-to-d3 sessions throughout the day. These were appreciated but could have benefited from more preparation on the organizers behalf.</p><p>In any case, much was learned, as can be seen in the communal <a href="https://docs.google.com/document/d/1L-y4wbRtaGYEVT83dskllO02wKy-xfrgUr34IWnfa8I/edit">notes from Noah’s workshop</a>.</p><p>Fil’s Voronoi workshop included a fun hands-on activity drawing <a href="http://blockbuilder.org/search#text=voronoi">voronoi diagrams</a> on paper before diving into any code. This is something we will certainly encourage future workshop leaders to do as it was a fun and engaging way to learn about this powerful technique.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eB-6ZzzXS0lq4MS67QZCIQ.png" /><figcaption>Voronoi drawings by <a href="https://twitter.com/trebor">Robert</a>, <a href="https://twitter.com/jonsadka">Jon</a> and <a href="http://chrispolis/">Chris</a></figcaption></figure><p>As far as I know, we didn’t learn any lessons about lunch. Good food with good company in a beautiful setting was a great way to fuel up for a full day of hacking and learning!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-Hi2B7c9u8zS4Y3inIY4-g.jpeg" /></figure><h4>#d3-meta</h4><p>A cornerstone of the d3.js community is <a href="https://bost.ocks.org/mike/example/">learning by example</a> and with over <a href="http://blockbuilder.org/search">18,000 examples</a> we have an embarrassment of riches. Being a community of data visualizers, it is only natural that we would want to visualize data about our community.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XL7TzeSGJERMov86aYOBsw.png" /><figcaption><a href="http://bl.ocks.org/micahstubbs/b35f2560f4205570b3328d1b40de0c6c">Micah’s block</a> visualizing the connection between blocks</figcaption></figure><p><a href="https://twitter.com/micahstubbs">Micah Stubbs</a> put together a <a href="http://bl.ocks.org/micahstubbs/68c2091b07505e0995f7d341790d8f41">curated dataset</a> of blocks and their meta-data for attendees to visualize. We had a room reserved for anyone to come and try their hands at visualizing the data, with guidance from Micah and myself. It was great to have an accessible dataset that was relevant to most people in the room, it removed a lot of friction for people who wanted to test new visualization skills and techniques on data they could relate to. You can see some of the outcomes of the sessions in the show-and-tell section below!</p><h4>Hacking</h4><p>Another important component of day 2 was simply creating space for people to hack. We had two rooms where people could find a seat at a table, plug in their laptops and start coding. Many people did just that and enjoyed a few hours of coding around like-minded individuals. We heard a lot of keyboards but also a fair amount of laughs along with several oohs and aahs.</p><h3>Topics</h3><p>We wanted to do a better job of capturing all the knowledge that gets shared at the unconf, so we prepared a series of Google Docs for people to take notes in. All of the sessions linked here have a wealth of examples and resources to explore!</p><h4>Generative Art: <a href="https://docs.google.com/document/d/1jaRruSU-6ful5866xEiL2iOaIMhuoTv3_Txb-uloVNY/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*59SZHXAMydE_192jffoyzw.png" /><figcaption><a href="https://docs.google.com/document/d/1jaRruSU-6ful5866xEiL2iOaIMhuoTv3_Txb-uloVNY/edit">Generative Art</a></figcaption></figure><h4>d3.v4: <a href="https://docs.google.com/document/d/1kE9yZfuiKi03YiT7x0AZ1x-iEtP7Hhuo_C1auJDr8MQ/edit">Notes &amp; Links</a></h4><h4>VR/AR: <a href="https://docs.google.com/document/d/1pY7OYorubF8GxryOxI6dDtKzTwfGOF8CwXEkQsef8T4/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JFkTOsxJ5zOlwljTnC7TYQ.jpeg" /><figcaption><a href="https://docs.google.com/document/d/1pY7OYorubF8GxryOxI6dDtKzTwfGOF8CwXEkQsef8T4/edit">VR/AR</a></figcaption></figure><h4>Maps: <a href="https://docs.google.com/document/d/1TOYSB5LSe15MEsW_msvcrgfuESvKmy4TbX6WpOsgheQ/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4gy5SwASyiOu9y8ylXwuVQ.png" /><figcaption><a href="https://docs.google.com/document/d/1TOYSB5LSe15MEsW_msvcrgfuESvKmy4TbX6WpOsgheQ/edit">Maps</a></figcaption></figure><h4>Modular and Reusable: <a href="https://docs.google.com/document/d/1X9ceTjvZjQmVrp51aABvbPBvApE9cBuJoeHKJP-dSkY/edit">Notes &amp; Links</a></h4><h4>GIFs: <a href="https://docs.google.com/document/d/1Fk500LZYMlXq38lhf_MmL7c_CNBZ-dzAhvKWEqDbKYg/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/1*VBTBZeF6LV0uppi9CrjG5Q.gif" /><figcaption><a href="https://docs.google.com/document/d/1Fk500LZYMlXq38lhf_MmL7c_CNBZ-dzAhvKWEqDbKYg/edit">GIFs</a></figcaption></figure><h4>WebGL: <a href="https://docs.google.com/document/d/1yrXiU7iIVe6WVqNdqPr-zUARQdhGyRWoj8jv1puHgGM/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PlXwBqEirxNiIPmd0dwavw.png" /><figcaption><a href="https://docs.google.com/document/d/1yrXiU7iIVe6WVqNdqPr-zUARQdhGyRWoj8jv1puHgGM/edit">WebGL</a></figcaption></figure><h4>Machine Learning: <a href="https://docs.google.com/document/d/1o-DO65PEZShLuadyRd35PsTJ_XMi62Nhb1XOVQu2sUQ/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/976/1*j50v-OhpXrWMulEyfYi60Q.gif" /><figcaption><a href="https://docs.google.com/document/d/1o-DO65PEZShLuadyRd35PsTJ_XMi62Nhb1XOVQu2sUQ/edit">Machine Learning</a></figcaption></figure><h4>Clustering: <a href="https://docs.google.com/document/d/1Q3-N_gE4Cm30JcNuPrlcn2KB2NBd5ba3rEPU7Npp4hI/edit">Notes &amp; Links</a></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/842/1*7gqGDMv1VgvYnUimk8EHrQ.png" /><figcaption><a href="https://docs.google.com/document/d/1Q3-N_gE4Cm30JcNuPrlcn2KB2NBd5ba3rEPU7Npp4hI/edit">Clustering</a></figcaption></figure><p>You can see all of the <a href="https://drive.google.com/drive/folders/0Bxi2do2mwjbccW90YXZrTTdkY00?ths=true">Shared notes</a> if you want to dig deeper!</p><h3>Show-and-tell</h3><p>We had an amazing show-and-tell session, a tradition we borrowed from our d3 meetups. Over 20 people shared what they have been working on lately or what they built during the hack sessions earlier in day 2.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wrfX53d5EiFaWJB9RqOX6A.jpeg" /><figcaption><a href="http://bl.ocks.org/kenpenn/d9f1ca5f982e81ce3b9f95ee537fd5dc">Gangnam style: v4</a> by Ken Penn</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fnqKgbynqx7KJR3IghosPg.jpeg" /><figcaption>Pokeballs by <a href="https://medium.com/u/672abd713a0e">Krist Wongsuphasawat</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TGHY7n_wS_0Vftqoboxg4A.png" /><figcaption><a href="http://bl.ocks.org/redblobgames/724411560f4796c90f6e9a0e9405d802">d3.js API usage</a> by <a href="http://www.redblobgames.com/">redblobgames</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/862/1*zohH7aSn9eNY4pFF99EURA.png" /><figcaption><a href="http://twitter.com/syntagmatic">Kai</a> made a <a href="http://bl.ocks.org/syntagmatic/e8ccca52559796be775553b467593a9f">continuous legend prototype</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9Jlrpm30BEQtNBbQldH7OQ.png" /><figcaption><a href="https://github.com/vlandham/text-art">Sentence drawings</a> by <a href="https://twitter.com/mf_viz">Mike Freeman</a> and <a href="https://twitter.com/vlandham">Jim Vallandingham</a></figcaption></figure><h3>Micah Stubbs on Twitter</h3><p>d3 blocks on a-boxes a #d3js + #aframevr experiment 🙌 @donrmccurdy @aframevr #d3unconf https://t.co/ThTOb88bH7 https://t.co/pNG1rf8qMB</p><p>I wish I had been able to capture all of the show-and-tell examples with links and photos, but a good part of the excitement is being there to see whats happening as people share for the first time! We even had some demos that we were asked not to capture with exclusive behind-the-scenes looks at data visualiztions used in products we know and love.</p><h3>See you in 2017</h3><p>With all the things we learned at our third annual event, we look forward to an even better 4th annual d3.unconf!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rfN322F48987W_-zjYrCVw.jpeg" /></figure><p>I can’t wait to see who we can bring together and what we can accomplish. It is such a joy to be a part of the d3.js community and I hope to see you at our next event!</p><p>❤</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b3af91a65f00" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Working & Designing with Spatial Data]]></title>
            <link>https://medium.com/hi-stamen/working-designing-with-spatial-data-be97130d1fd7?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/be97130d1fd7</guid>
            <category><![CDATA[design]]></category>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[3d]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Fri, 14 Oct 2016 01:56:45 GMT</pubDate>
            <atom:updated>2016-10-14T19:17:27.329Z</atom:updated>
            <content:encoded><![CDATA[<p>Late this summer, 10 people gathered at <a href="http://stamen.com/">Stamen Design</a>’s studios to learn how to design and work with geospatial data on the web.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EWnUCAybzM05cgUZqwKshA.jpeg" /><figcaption>Ian loading that data!</figcaption></figure><h4>What we set out to do</h4><p>We all set aside 4 hours of a Sunday afternoon to get a hands-on introduction to the leading tools for web based mapping visualization. With a <a href="https://github.com/enjalot/wwsd">repo full of workshop materials</a>, we dove into <a href="http://geojson.io/">GeoJSON</a>, <a href="http://leafletjs.com/">Leaflet</a>, <a href="https://www.mapbox.com/mapbox-gl-js/examples/">MapboxGL</a> and <a href="http://d3js.org/">d3.js</a>. From the start it was clear we wouldn’t be able to cover all of the exciting examples we had collected, so our main focus was giving a solid foundation for exploring the rich world of online web-mapping and data visualization.</p><h4>What went right</h4><blockquote>well organized material in a relaxed setting</blockquote><p>There are two positive things that stood out in the feedback we heard from the students, and they go hand in hand. The first was that we <strong>connected the dots</strong> for them in terms of how all of these tools and techniques fit together. With <a href="http://blockbuilder.org/search">so many d3.js</a> examples out there in the wild, it can be overwhelming trying to find a starting point</p><p>The second thing people liked was <strong>learning by doing. </strong>It’s one thing to be introduced to new and confusing concepts like map projections and GeoJSON its another thing to get your hands dirty and start feeling for yourself how they work.</p><h4>What could have been better</h4><p>Something we heard from several students is that they wanted more time. We take that as a compliment, if people are asking for more instead of running away screaming we must be doing something right! This may be related to something else that was brought up, we tried to cover too much. We love this subject matter and want to share as much as we can, but we need to make the best of the limited time we have together to set people up for success. Our goal is to get the content just right so you have enough to work with when you get home (or back to work) and continue building your knowledge.</p><p>We heard several people loud and clear, you want more hands on. It’s a tough balance introducing new concepts and making time to play with them. We tried to prepare many examples that could be explored after class beyond the few we went through together. Next time we will make sure to make more space for hands on activities.</p><h3>Designing with Spatial Data</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cZJVsxR6_jjRxGVSaFbQtA.jpeg" /><figcaption>Eric talking about Stamen’s design process</figcaption></figure><h4>What we set out to do</h4><p>Stamen has been making the best damn maps and data visualizations for years. The results coming out of the studio might seem like magic but we wanted to shed some light on what is actually a very interdisciplinary exploration. Eric kicked off the day with an overview of Stamen’s design process, giving a behind the scenes look at how they think about data and design.</p><p>There is a lot to think about when it comes to making maps, from colors and accessibility to geopolitical boundaries it can be intimidating to start designing from scratch. One of our main goals was providing context for the tools and resources available to design with. Alan took us through a <a href="https://github.com/stamen/dwsd">thorough survey</a> of mapmaking design principles and technologies, with interactive examples along the way.</p><h4>What went right</h4><blockquote>Very informative, a good primer to the complicated world of data vis on maps</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wjG3JL54nVw2rHmAJG-Nyg.jpeg" /><figcaption>Alan priming the students on the complicated world of maps</figcaption></figure><p>It turned out people were really interested in <strong>Stamen’s design process</strong>. it can be mystifying how such beautiful output starts from raw numbers, where does one begin? how does one find their way? how do you start such a process inside an existing organization? We spent a good amount of time discussing these questions and more at the end of the workshop.</p><p>People were also very happy with the context we provided, they let us know we helped put various puzzle pieces into place for them.</p><h4>What could have been better</h4><p>We heard again that people wanted even more hands-on material. This is something we will definitely focus on in our next set of workshops.</p><p>Something we didn’t expect but learned could be better was the order of the 2 workshops. Next time we will put this class first. We originally thought we’d give people the technical building blocks first and then show them how we reason about them. It seems like it might be more effective to give people more context &amp; overview before we dive in to solving problems with tools. People seemed to enjoy both classes but we hope to make them even more effective by doing things in the right order.</p><h3>Lets do it again!</h3><p>Stamen is hosting the <a href="http://stamen.com/data-visualization-classes/designing-with-geospatial-data-on-the-web/">second round of classes November</a>! We are really looking forward to trying out some improvements and doubling down on what went well.</p><p><a href="http://stamen.com/data-visualization-classes/designing-with-geospatial-data-on-the-web/"><strong>Sign up now!</strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/243/1*o5Ldm1448Avn-8g2MNP2Eg.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=be97130d1fd7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hi-stamen/working-designing-with-spatial-data-be97130d1fd7">Working &amp; Designing with Spatial Data</a> was originally published in <a href="https://medium.com/hi-stamen">Hi.Stamen</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[d3.unconf: What you can expect]]></title>
            <link>https://medium.com/@enjalot/d3-unconf-what-you-can-expect-7b42c3fb083e?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/7b42c3fb083e</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[unconference]]></category>
            <category><![CDATA[3d]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Thu, 15 Sep 2016 14:23:57 GMT</pubDate>
            <atom:updated>2016-09-15T15:26:37.030Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VQY58R0NBjasJmnaJcz9gA.jpeg" /></figure><p>For the third year in a row we are gathering together 100 d3.js practitioners to discuss, share and collaborate at the <a href="http://visfest.com/d3unconf-2016/">d3.unconf</a>. The past two years we brought together designers, developers and data analysts for a single day of intense discussions.</p><p>This year we have 2 days: <a href="http://visfest.com/d3unconf-2016">October 16 &amp; 17, 2016</a></p><p>We learned a lot from the past two years, and the biggest takeaway was that one day just isn’t enough. You get to meet people you’ve only seen on <a href="https://twitter.com/search?q=%23d3unconf">twitter</a>, you get to see inspiring works-in-progress and share your ideas all day long. You leave the event with a full notebook, your brain worn out from constant stimulation but filled with anticipation because you want to try out at least three things you heard about and you’re finally ready to go for that little idea you’ve been toying with.</p><p>But then you wake up the next day and you have to get back to life and work and your ideas go to the back burner. Not this year, this year you wake up the next day and eat breakfast with the same folks that inspired you. You find a place to sit with your new friends or a quiet spot in the hacking room. You spend the afternoon coding to your hearts content or designing with people who fly to the other side of the world tomorrow. At the end of the day you can show everyone what you tried, and you’ll see what they were inspired to do.</p><p>The d3.unconf is all about making time and space for our community to come together and do what we love. It’s an environment where everyone is learning, not by sitting down and shutting up, but by participating actively. We can’t promise what topics will be covered this year, because you determine that, but we can promise you it will be a great place to bring up whatever d3 &amp; data visualization topics are on your mind.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u4fueHcGsYlybLEBo3bIug.jpeg" /></figure><h3>day 1</h3><p>We continue our unconference tradition of attendee-driven discussions throughout the day. We start with breakfast and give people time to show up. We have whiteboards with time slots that you can add topics to as well as vote for topics others have added. Before we get into the sessions <a href="http://rachelbinx.com/">Rachel Binx</a> will inspire us with a talk drawn from her extensive experience with d3. The rest of the day will be 45 minute sessions to discuss your favorite topics. We always keep a space free to just chill, hack or have casual conversations. We will close the day out with a short presentation and an unofficial happy hour nearby.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HzcSun8AMnpu8nOVHULHCQ.png" /><figcaption>A small sampling of <a href="http://rachelbinx.com/">Rachel’s projects</a></figcaption></figure><h3>day 2</h3><p>This is where things get interesting, similar to day 1 we start with breakfast and an inspiring talk. This time by <a href="http://kosamari.com/">Mariko Kosaka</a>, a great speaker and creative wielder of JavaScript. What follows is again totally up to you. You can choose to attend (or lead) one of a series of 45 minute guided tutorial sessions or you could carve out a couple hours to code away on your favorite idea or project. You can form a team and try to visualize some of our prepared datasets or you can continue a deep conversation from day 1. Our goal is to give you the time and the space to make the most of the energy you get from being surrounded by 99 other d3 &amp; data visualization enthusiasts!</p><h3>Mariko Kosaka on Twitter</h3><p>Yey quick sort scarf is done! I always wanted to mix 2 of my favorites - datavis &amp;amp; knit! Image generated by d3.js 💕</p><h3>Who will be there</h3><p>While we can’t just list off everyone who’s signed up already, we can promise that the <a href="http://visfest.com/about/">organizers</a> will be there. If thats not enough, we do know there will be plenty of teachers &amp; tutorial makers in attendance, including <a href="https://bl.ocks.org/syntagmatic">Kai</a> &amp; <a href="http://sxywu.com/">Shirley</a> who are teaching the upcoming <a href="http://www.thisismetis.com/data-visualization-with-d3js">Metis d3.js course</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wsAxRaic-VMXnNekciqa2g.png" /><figcaption>Prolific example writer and D3.js in Action author <a href="https://bl.ocks.org/emeeks">Elijah Meeks</a> will be there!</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*I8LVuxc2cLuk8t2Z2X_F3g.png" /><figcaption>Interactive tutorial wizard <a href="http://www.redblobgames.com/grids/hexagons/">redblobgames</a> will be there!</figcaption></figure><p>We also know engineers and designers who are using d3 at companies like Apple, Twitter, Netflix, Uber and Google will be there. Of course we have plenty of creative students, design studios and startup hackers in attendance as well!</p><p>So if you’ve already signed up, we hope you are even more excited now! If you haven’t signed up…</p><p><a href="http://visfest.com/d3unconf-2016/">Sign up!</a></p><p>P.S. If you didn’t attend in <a href="http://visfest.com/d3unconf-2014/">2014</a> or <a href="http://visfest.com/d3unconf-2015/">2015</a> you may not know how sweet everyone’s badges were:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/270/1*b9vyXNw2nC5Ri-tstLvZWA.gif" /><figcaption>Animated badges from <a href="http://gifpop.io/">Gifpop</a></figcaption></figure><p>This year we are going to take it a step further and let you make your own animated badge design. We will show you how once you get your ticket!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wQm_LZCCuCOcGfbCHUDGkg.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7b42c3fb083e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[An ode to d3.js projections]]></title>
            <link>https://medium.com/hi-stamen/an-ode-to-d3-js-projections-9d6477d6da0b?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/9d6477d6da0b</guid>
            <category><![CDATA[gis]]></category>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[3d]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Mon, 30 May 2016 18:20:01 GMT</pubDate>
            <atom:updated>2016-05-30T18:20:01.546Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yj8OW6jg7QgXEEqCAqB2sA.png" /></figure><p>When it comes to making maps online there are many tools available, but they all have one thing in common: <a href="https://en.wikipedia.org/wiki/Geographic_coordinate_system">Geographic coordinates</a> go in and a two-dimensional image comes out. Converting from geographic coordinates (longitude,latitude) to pixel coordinates is accomplished via a <a href="https://en.wikipedia.org/wiki/Map_projection">map projection</a>. Most of the tools made for online map making focus on facilitating the navigation of a map with layers of geospatial data. <a href="http://leafletjs.com/">Leaflet</a> and <a href="https://www.mapbox.com/mapbox-gl-js/examples/">Mapbox GL</a> are two such tools and they do their job well. There is one tool that focuses on the projections and lets you decide how to present the geospatial data: <a href="https://github.com/d3/d3/wiki/Geo-Projections?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+gblinks+(Geomatic+Blog+social+links)">d3.js projections</a>.</p><p>What happens when you bring geospatial data into the <a href="https://github.com/d3/d3/wiki/Gallery">rich and expressive</a> d3.js data visualization ecosystem? The possibilities are endless, and this post attempts to explore and categorize some of them.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/956/1*kP3Ai8RWUC00B5jzDYyajQ.png" /><figcaption><a href="http://bl.ocks.org/mbostock/94b9fd26e12c586f342d">basic mapping example</a> by Mike Bostock</figcaption></figure><h3>custom style</h3><p>One of the first things that stands out is the potential for custom styling. Once you have used a projection to create SVG elements you can style them to your hearts content. The following example utilizes some of SVG’s features like <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/defs">&lt;defs&gt; and &lt;use&gt;</a>, and the <a href="http://riccardoscalco.github.io/textures/">textures.js</a> library to render custom patterns on a map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5d5HQp6hS5CLwJh2a-jSAA.png" /><figcaption><a href="http://bl.ocks.org/emeeks/31b4b8aa83583fecd5d8">example</a> by <a href="http://bl.ocks.org/emeeks">Elijah Meeks</a></figcaption></figure><p>It’s not just SVG either, here is an example of generating a sketchy style using an algorithm that renders to <a href="https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes">canvas</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/897/1*waVkQB2Yil0dtVRHEVsStg.png" /><figcaption><a href="http://bl.ocks.org/emeeks/c42968993536f921a5c8">example</a> by <a href="http://bl.ocks.org/emeeks">Elijah Meeks</a></figcaption></figure><p>The key idea here is that we get to use all of the tools we are familiar with in HTML5, SVG and CSS to express our geospatial data. We have complete control over the rendering, which leads to some powerful possibilities.</p><h3>custom data</h3><p>The most common use of d3.js projections is customizing the representation of data that has a geospatial component. The following examples show a small sample of the variety of ways that people have visualized data in a geographic context.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/614/1*jkmrbgq3BzRGR5LIcqrWqg.png" /><figcaption><a href="http://bl.ocks.org/allardw/21b2885a1de45e0694e1">example</a> by <a href="http://bl.ocks.org/allardw">Allardw</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/846/1*1wNwa26B8yeTE03FOG8jCg.png" /><figcaption><a href="http://bl.ocks.org/armollica/6314f45890bcaaa45c808b5d2b0c602f">small multiples choropleth</a> by <a href="http://bl.ocks.org/armollica">Andrew Mollica</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/811/1*s54AgwjA4CVybl9H0vOKcA.png" /><figcaption><a href="http://bl.ocks.org/mbostock/5180185">zipcodes</a> by <a href="http://bl.ocks.org/mbostock">Mike Bostock</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/955/1*3ZlhvN5a-Z6zFmW9q2MmUQ.png" /><figcaption><a href="http://bl.ocks.org/syntagmatic/dd17d7b62fb4fbb56897">satellite debris ground tracks</a> by <a href="http://bl.ocks.org/syntagmatic">Kai Chang</a></figcaption></figure><p>From these examples we can see that the size, shape and even number of maps can all be changed to suit the visualizations purpose. The wide variety can be seen in <a href="http://blockbuilder.org/search#api=geo.path">this search of d3 examples</a>.</p><h3>custom transitions</h3><p>A powerful concept in d3 is transitions. Animating a visualization between two states when the underlying data changes is a great way to provide consistency to the viewer. This is no different when using geospatial data as d3 can animate a transition between two projections. You can also transition the parameters of the projection, such as the center, scale and rotation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/962/1*-O1vBIQa7-8GmjqdQakp-g.gif" /><figcaption><a href="https://www.jasondavies.com/maps/transition/">transition example</a> by <a href="https://www.jasondavies.com/">Jason Davies</a></figcaption></figure><p>Projection transitions are used here to help understand the differences between projections.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/895/1*6tTGnh4VR0oq9QNGrNcpCg.png" /><figcaption><a href="http://bl.ocks.org/syntagmatic/ba569633d51ebec6ec6e">projection comparison</a> by <a href="http://bl.ocks.org/syntagmatic">Kai Chang</a></figcaption></figure><p>This example transitions between two different representations of the data, a standard choropleth map and a dorling cartogram.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BEkCIL-65mdvkbT2ITKx5A.gif" /><figcaption><a href="http://bestschoolday.huffingtonpost.com/#mt=map&amp;filter=total&amp;geo=US">representation transition</a> by <a href="https://hi.stamen.com/mapping-donations-to-bestschoolday-on-the-huffington-post-58ccbe6c5f6a#.73vitgqes">Stamen</a></figcaption></figure><p>This example allows the user to choose between a globe projection and the traditional Mercator projection.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3TQtw5G8nm4KjPHlCkWPzA.gif" /><figcaption><a href="http://openearth.net/#map=globe">globe to flat transition</a> by <a href="http://stamen.com/">Stamen</a></figcaption></figure><p>Transitions can also be abused to induce sea sickness.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/962/1*sagy0sdyj6LIzrrL9cgmlg.gif" /><figcaption><a href="http://bl.ocks.org/enjalot/raw/b3dcf273c3c6d56411b6/">sickening example</a> by <a href="http://bl.ocks.org/enjalot">enjalot</a></figcaption></figure><p>As they say, “change is the only constant” so being able to incorporate change into your visualization opens the door to many interesting posibilities.</p><h3>custom interaction</h3><p>One of the more exciting aspects of web based visualization is the ability to include interaction. Because projections allow you to create DOM elements, you can leverage the existing browser APIs (made easier with d3’s selections and event handlers) to provide custom interactions with your geospatial data. These examples show some simple but powerful interactions with the mouse cursor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/874/1*mrEhtZDVRtPp2OufxaxQvw.png" /><figcaption><a href="http://blockbuilder.org/armollica/94bfb37d81234ad91ced">example</a> by<a href="http://bl.ocks.org/armollica"> Andrew Mollica</a></figcaption></figure><p>In the following example a zoomed-in version of the map is rendered on the right hand side, centered on wherever the cursor is pointing in the left map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/963/1*aW__otGkdMOtKhb5i6FKlg.png" /><figcaption><a href="http://bl.ocks.org/syntagmatic/0613ee9324e989a6fb6b">example</a> by <a href="http://bl.ocks.org/syntagmatic">Kai Chang</a></figcaption></figure><p>This example uses fish-eye distortion around the cursor to allow the user to inspect densely plotted points inside the same map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/937/1*JDsH17Hp-8mowd3PWls8pA.gif" /><figcaption><a href="http://bl.ocks.org/enjalot/a50efa43ec84aba00e33349c8da7fc9a">fisheye distortion added to a d3 projection</a> by <a href="http://bl.ocks.org/Fil">Fil</a></figcaption></figure><h3>custom geometry</h3><p>It may be desirable to create geometry from data in order to approximate it, or group it together visually. With d3 projections you can run any algorithm that works on two dimensional coordinates. A fairly common algorithm is the <a href="http://bl.ocks.org/mbostock/4060366">voronoi diagram</a> seen in these two examples.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*573F_7IY2CclcjnFxjzE5w.png" /><figcaption><a href="http://halftone.co/projects/temperatures/">voronoi example</a> by <a href="http://halftone.co/">Halftone</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/867/1*oSVl6p8htO0WxKmTdVXA5w.png" /><figcaption><a href="http://bl.ocks.org/mbostock/4360892">voronoi example</a> by <a href="http://bl.ocks.org/mbostock">Mike Bostock</a></figcaption></figure><p>A lesser known but useful technique is to generate a <a href="http://bl.ocks.org/emeeks/436c12e5bea2bdb9de57">concave hull</a> to group data together.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/828/1*RYT0COWqbsYXeeq4sOpQZg.png" /><figcaption><a href="http://bl.ocks.org/emeeks/bcc67e2977a96d547a06">concave hulls example</a> by <a href="http://bl.ocks.org/emeeks">Elijah Meeks</a></figcaption></figure><p>The key takeaway is that d3 projections bring you into the well-studied realm of 2D graphics, your tool set can be expanded from mapping-specific to anything that has been invented for manipulating x,y coordinates.</p><h3>custom composition</h3><p>It is not just the rendering of the geographic shapes that can be customized, but what you do with them once they are rendered as well. Many geographic features are instantly recognizable (at least to relevant audiences) and can be used as icons. d3’s projections make it convenient to render single features independently, for arrangements outside of a traditional map.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/941/1*OSE7dNZd0ChKpptNngsUwg.png" /><figcaption><a href="http://blockbuilder.org/sivartravis/67cd8163a864c2c461e0">icon example</a> by <a href="http://bl.ocks.org/sivartravis">Travis Taylor</a></figcaption></figure><p>Layering two locations in the same projection make for an educational example.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/913/1*TzzC1-PD2mZgVZ8qSSEgUQ.png" /><figcaption><a href="http://bl.ocks.org/zanarmstrong/raw/caa2da1ea1558cdc3357/">size comparison example</a> by <a href="http://bl.ocks.org/zanarmstrong">Zan Armstrong</a></figcaption></figure><p>Once your geospatial data becomes a set of DOM elements, you can lay it out with the same flexibility and specifity as any other HTML and CSS project.</p><h3>extending projections</h3><p>d3 includes <a href="https://github.com/d3/d3-geo-projection">an extensive set of projections</a>, and that set can be extended when people implement other projection with d3’s API.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sEFNUF8XmMZe2LaiWhmJVQ.png" /><figcaption>a few of <a href="https://github.com/d3/d3-geo-projection">many d3 projection</a>s</figcaption></figure><p>Some countries have territories that are not geographically close, so <a href="http://geoexamples.com/d3-composite-projections/">this library</a> makes composite d3 projections that plot them together.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/655/1*c8OJlBGhM2u2UcUl4kdlUQ.png" /><figcaption><a href="http://bl.ocks.org/rveciana/72987a139a9886ed6a87">composite projection example</a> by <a href="http://bl.ocks.org/rveciana">Roger Veciana i Rovira</a></figcaption></figure><p>All projections introduce some sort of distortion when they attempt to flatten the 3D globe on to a 2D plane. This example allows you visually inspect the distortion of several d3 projections.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HwsQAj7cp42_DNeMFucmIw.png" /><figcaption><a href="http://bl.ocks.org/enjalot/bd552e711b8325c64729">projection distortion example</a> by <a href="http://bl.ocks.org/enjalot">enjalot</a></figcaption></figure><p>Interrupted projections allow an aspiring cartographer to decide how the earth should be cut in the process of flattening it out, <a href="https://www.youtube.com/watch?v=XHBZkek8OSU">BECAUSE THE EARTH IS NOT FLAT</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Jfv8x5L-GSbQ38rboxh0ew.png" /><figcaption><a href="http://bl.ocks.org/enjalot/251b9b6255b9087a25dde02d64ed3724">interrupted sinusoidal projection</a> a remix of <a href="http://bl.ocks.org/mbostock/4458991">Mike Bostock’s block</a> by <a href="http://bl.ocks.org/enjalot">enjalot</a></figcaption></figure><p>You can actually print out the map and cut along the “interruption.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/951/1*eVgiOl40UnmNAouOWnB4LQ.png" /></figure><p>Glue the result to a tennis ball and you’ve created your own custom globe!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UoQb-HdL9nLE2rGp9CJA7A.jpeg" /></figure><h3>custom conclusion</h3><p>We’ve covered custom styles, data layouts, transitions, geometries, compositions and projections. The real conclusion is that we are just getting started with the potential for geospatial visualization. Use the links in all of the above examples as starting points, and don’t forget to <a href="http://blockbuilder.org/search">search for more</a>.</p><p>If you are in the San Francisco Bay Area at the end of June or beginning of July</p><h3><a href="http://stamen.com/designing-and-working-with-geospatial-data-on-the-web/"><strong>Sign up</strong></a></h3><p>for our two d3.js &amp; mapping workshops to get a solid foundation in coding and designing with d3.js projections! Read more about our <a href="https://hi.stamen.com/excited-to-announce-that-stamen-is-offering-classes-in-data-visualization-and-map-mapping-439a49e83c68#.n49w48ov3">philosophy</a> and <a href="https://hi.stamen.com/d3-js-workshops-ff376fe398dc#.uf6d719qo">methodology</a> behind the workshops.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9d6477d6da0b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hi-stamen/an-ode-to-d3-js-projections-9d6477d6da0b">An ode to d3.js projections</a> was originally published in <a href="https://medium.com/hi-stamen">Hi.Stamen</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[d3.js workshops]]></title>
            <link>https://medium.com/hi-stamen/d3-js-workshops-ff376fe398dc?source=rss-f682ddbdedde------2</link>
            <guid isPermaLink="false">https://medium.com/p/ff376fe398dc</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[3d]]></category>
            <dc:creator><![CDATA[Ian Johnson]]></dc:creator>
            <pubDate>Wed, 25 May 2016 17:22:19 GMT</pubDate>
            <atom:updated>2016-05-25T17:39:19.186Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vG2-yyAOMZTHZVIRzMBn2A.png" /></figure><h4>learning and teaching d3 together</h4><p>Learning <a href="http://d3js.org/">d3.js</a> and data visualization is a long and sometimes frustrating journey. First, there is the overwhelming amount of choice. From the <a href="http://blockbuilder.org/search">tens of thousands</a> of <a href="https://github.com/d3/d3/wiki/Gallery">examples</a>, to the <a href="https://github.com/d3/d3/wiki/API-Reference">hundreds of API functions </a>and millions of ways you can combine them with <a href="http://bl.ocks.org/nbremer">SVG</a>, <a href="http://bl.ocks.org/syntagmatic">Canvas</a> or <a href="http://pathgl.com/">WebGL</a>. Even if you can chart a course across this <a href="https://github.com/d3/d3/wiki/Tutorials">vast ocean</a> you may find many icebergs lurking just below the surface. d3 on it’s own is just a collection of commonly useful functions, but it touches many technologies that have their own ecosystems, APIs and paradigms to learn. Just ask anyone who wanted to connect some data points with a simple line about the SVG <strong><em>&lt;path&gt;</em></strong> element and the <strong><em>d</em></strong> attribute.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z0Cpu9zYJgw3guEJ96f1SA.png" /><figcaption>a sampling of things you may have to learn to make datavis with d3.js</figcaption></figure><p>So how do we help people navigate this overwhelming sea of possibilities? I have <a href="https://medium.com/@enjalot/how-do-you-learn-d3-js-ccffc151419b#.51o66iak4">many</a> <a href="https://medium.com/@enjalot/groundskeeping-an-electronic-garden-fdafafacb24#.7bpen4jpl">ideas</a> but I want to focus on a particular strategy: <strong>1-day intensive workshops</strong>. There are tons of online resources, but nothing beats a focused session with an expert to help put everything in <em>context</em>. I’m convinced that a few tweaks to the traditional workshop format can create a powerful learning experience for those trying to make this data-driven journey.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dmN1Kp4aQt_7QAxc2_kDIw.png" /><figcaption>its easier to learn when you are part of a highly connected network graph!</figcaption></figure><h3>what we’ve learned about learning d3</h3><p>Four years of running the <a href="http://www.meetup.com/Bay-Area-d3-User-Group/">Bay Area d3 Meetup</a> have given me the privilege to meet all kinds of people climbing d3’s steep learning curve. From graphic designers to backend engineers, from college students to public administration officials we’ve had all kinds of people with all kinds of backgrounds come together and try to learn this one JavaScript library. We convene to <a href="https://www.youtube.com/user/viSFestWest">watch expert talks</a>, to <a href="https://medium.com/@enjalot/d3-unconf-2014-e1377d6d72a7#.wgm0deagq">share our techniques</a>, to <a href="http://enjalot.github.io/bart/">practice our craft on public datasets</a> and to <a href="https://www.youtube.com/user/viSFestWest/search?query=show+and+tell">learn from each other</a>. We’ve hosted over 100 events, from small gatherings at coffee shops to 100+ people filling up auditoriums. A few patterns have stood out to me watching all these people learn.</p><h4>crossroads</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sO9dk2HfPAvgLTPhZG2r3A.png" /><figcaption><a href="https://syntagmatic.github.io/parallel-coordinates/">https://syntagmatic.github.io/parallel-coordinates/</a></figcaption></figure><p>One of the most interesting aspects about d3 is that it is the intersection between design and code, math and art, data and story. It brings together people with wildly different skill-sets and perspectives who have no choice but to collaborate and learn from each other. There is just too much that goes into data visualization to have one individual master it all. While that may sound discouraging, it is actually quite exciting. Learning how to communicate with and bring together these diverse skills and talents is definitely within reach. You don’t need to become a master of everything if you know how to <a href="https://groups.google.com/forum/#!forum/d3-js">ask for help</a> and <a href="http://stackoverflow.com/questions/tagged/d3.js">where to find it</a>.</p><h4>peers over everything</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4VevtjG8b4gpV_hIkhLRzQ.png" /><figcaption><a href="http://bl.ocks.org/micahstubbs/948378950dd7b3e31e8cda3b33ebbcc8">source bl.ock via @micahstubbs</a></figcaption></figure><p>We’ve hosted many inspirational speakers who show amazing projects, but the most energizing aspect of our talks tend to be the Show &amp; Tell session at the end. We give anyone who wants to demo 2 minutes, which usually results in 5 or 6 rapid fire demos of projects at various stages of completion. These demos tend to kick off all kinds of excited discussion, perhaps it is their imperfection that makes them more accessible, or the fact that the person is stuck on something just like you are (or were) that opens up the connection. Knowing that you are not alone in on this journey is a comforting and exciting feeling, and surrounding yourself with like-minded individuals can really improve the experience.</p><h4>creating an environment</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ASJlYW0VSoKtaHmo2J7ckw.jpeg" /><figcaption><a href="http://stamen.com/work/map-stack/">http://stamen.com/work/map-stack/</a></figcaption></figure><p>Something I think about a lot when organizing d3 meetups and events is the environment we are creating. The basic formula is very simple: pick a time and place, maybe line up some refreshments and then announce the event.</p><p>The “traditional” format of one or two speakers creates a lecture environment, where the attendees consume a presentation. This creates a rather passive environment, though the socialization between and after the talks is often stimulating.</p><p>We have been iterating on another format over the years, which we now call a <strong>data dive</strong>. We still pick a time and a place and try to provide refreshments, but there are no main speakers. The environment we try to create here is a productive one, where attendees participate by spending the night coding and collaborating. We do provide some basics, like clean public datasets that can serve as starting points, or experts who can answer questions and give short tutorials. We have been pleasantly surprised time and time again by the <a href="http://maps.ebclc.org/backontheroad/">projects</a> that <a href="http://bl.ocks.org/boeric/c1fe5650da3d6e790706">come</a> <a href="http://blog.vctr.me/bart/">out</a> of <a href="http://sxywu.github.io/80k/#default/2P2C/SF/August/Station_Agent/1">these</a>, or the progress that people make when they have a couple focused hours in a productive environment.</p><h3>designing a learning experience</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f4NinSW7oIYI6JglFEpvEA.png" /></figure><p>Recognizing these patterns has inspired us to design a new type of learning experience for learning at the <strong>crossroads </strong>by <strong>creating an environment</strong> for learning with <strong>peers</strong>. I’m imagining a series of 1-day workshop events that can be taken individually or together, each one an intense session of learning and doing.</p><p>We know that there is no shortage of content online, I’ve <a href="http://enjalot.github.io/intro-d3/">organized some of it</a> for several workshops in the past. These events are not about downloading content into your brain, they are about navigating the <strong>crossroads</strong>. Each event will be a sign-post, a foothold for a specific topic or set of techniques. We will make sure everyone has context for the techniques and technologies we cover, how any particular function or concept fits in with the rest of the ecosystem.</p><p>The format for each event will be a mixture of hands-on and guided experimentation. The necessities will be provided: coffee, well-organized examples, clear reference material and more exercises than we can fit in 4 hours. We will build confidence with first-hand experience and excitement with examples crafted to produce aha moments. We will provide the <strong>environment</strong>, and the students just bring their laptops and their goals.</p><p>Perhaps the biggest departure from traditional workshops is that students are asked to apply to participate. We want to ensure that everyone in the room is a <strong>peer</strong>, motivated to learn and bringing their skills and perspective to the table. Asking people to apply adds some friction for both the students and the organizers, but we believe this is essential to create the environment we want to see. Maybe we won’t get a ton of students, but the ones we do get will define the experience.</p><h3>let’s do it</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vwPk0WnfUBpjf9n8EDITCQ.png" /></figure><p>We are excited to <a href="https://hi.stamen.com/excited-to-announce-that-stamen-is-offering-classes-in-data-visualization-and-map-mapping-439a49e83c68#.7xilhvw35">pilot the first series of workshops</a> with <a href="http://stamen.com/">Stamen Design</a>, a long-standing pillar of the data visualization community. The first workshop will focus on <a href="http://stamen.com/working-with-spatial-data-on-the-web/">working with geospatial data</a>, while the second workshop will focus on <a href="http://stamen.com/designing-with-geospatial-data-on-the-web/">designing with geospatial data</a>. Mapping is one of the oldest forms of data visualization, and creating maps has gotten a lot more interesting on the web thanks to <a href="https://github.com/d3/d3-geo-projection">d3.js</a> and <a href="http://leafletjs.com/">other</a> <a href="http://turfjs.org/">tools</a> we will cover. With Stamen’s deep experience in designing and making maps we think this is the perfect crossroad to start with.</p><h3><a href="http://stamen.com/designing-and-working-with-geospatial-data-on-the-web/">Sign up</a></h3><p>Be a part of the best damn learning environment we can think of!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yzP1PoLlTqwEdNh-WvCoIw.png" /><figcaption><a href="http://bl.ocks.org/syntagmatic/002ef2fb5c1dc2df5821">source bl.ock via @syntagmatic</a></figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ff376fe398dc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/hi-stamen/d3-js-workshops-ff376fe398dc">d3.js workshops</a> was originally published in <a href="https://medium.com/hi-stamen">Hi.Stamen</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>