Reactive Conference is bringing you an interview with one of our speakers Colin Megill.

What’s your personal elevator pitch?

I am fascinated by the way human behavior is influenced by information architecture, for better and for worse. I truly believe in the future of the web as a platform and am so excited by what’s happening right now in dataviz. Real-time, interactive data visualization gives us rich views into systems and helps us develop insights we might not otherwise have — Bret Victor’s talk “Media for Thinking the Unthinkable” really exemplifies that idea for me. Using it to both examine systems more deeply and change behavior for the better is at the core of all the work I do.

How did you end up being a web developer?

I’m a news junkie. I read the New York Times every morning and have for 15 years or so. I am a huge fan of Shan Carter and the work that he did with D3 for the Times. But I think the first visualization that really opened my eyes to the possibilities was SF CrimeSpotting by @stamen. The stories you can capture with interactive data visualization are simply of a different kind than than what is possible in print, and I think for a couple key reasons. First, it’s possible to let the users tell their own stories. Second, and this is what enables the first point, filters allow for many more permutations of the data than would be expressible in print. Third, if the data is live, you don’t have to make the chart over and over again — it’ll stay relevant. Necessarily, the processes and best practices around producing them is also completely novel and frequently involves big data techniques.

“The number of problems that could be attacked with interactive data visualization was so broad and so interesting because the data sets in the social sciences are frequently multivariate.”

I really thought, when I first saw it, that interactive data visualization was going to be something that I could invest my whole life in and never reach the bottom. As a tool chain, I knew I needed to have it inside of me and know how to build with it. Pretty much as soon as I saw D3 in 2011 I started learning JavaScript. My background is in social science — I went to university for it — and that’s broadly international relations, philosophy, history, economics, sociology, psychology, religion. And I just thought that the number of problems that could be attacked with interactive data visualization was so broad and so interesting because the data sets in the social sciences are frequently multivariate. I’ve been building a product called pol.is, which applies machine learning and data visualization to human communication and digital democracy. Working on that product, for an outcome I was intrinsically passionate about in a toolchain I was determined to learn, was the way that I became a developer.

What is the most important project you’re currently working on? What was the journey to creating it like?

National governments in Taiwan and Australia are starting to use pol.is to get more organic feedback from their citizens, which is the reason we started building it. Watching it get legs in the digital democracy realm is deeply fulfilling on an existential level. Building it was where I gained the insights about how D3 might be improved by React. As for the journey, you’ll have to buy me a tea at the conference or read blog.pol.is.

Is there any issue in web development world that should be fixed asap?

CSS is an unfortunate little language that has caused more trouble than it’s worth. Being free of it has been simply fantastic. I’ve been speaking out a lot about how to make that switch happen in practical terms, mostly with regards to Radium for React. I do feel strongly that as a language CSS is going away. I think there are a lot of misunderstandings surrounding how it might go away and what that is going to mean in practical terms for designers. It probably won’t be much different for designers eventually because the can write in JSON what they’re writing now in classes — so the curly’s will be in a slightly different place and they’re going to have much finer grain control over what styles get applied to what elements.

“CSS really isn’t expressive enough to do what we need it to. JS is.” — tweet this quote

Overall, “styles as data” solves some pretty profound issues in web. When @vjeux spoke as CSSCONF EU he had a slide that went around and it was “The 7 Problems of CSS”- global name spaces, dependencies, dead code elimination, minification, sharing constants, non-deterministic resolution and isolation — and we just don’t have those problems in JS. CSS really isn’t expressive enough to do what we need it to. JS is. There’s a lot of fear around that because it feels like a bigger change than it actually will be — most of the difference is infrastructure that the designers won’t touch anyway. Pulling styles into JavaScript is one of the most important changes that we can make to make sites more maintainable and to make code bases more expressive right now.

What will you speak about at Reactive 2015?

I’m going to be speaking about Victory.js, which is really a discussion about the process and craft of how we build interactive data visualizations. I had been working in D3 for years when React came out, and I began using React on client projects in consulting work with Formidable in Seattle. When I tried to get designers in the game, D3’s API proved too difficult. I started investigating whether or not we could ditch D3’s DOM model in favor of React’s so that the iteration — .enter( ) — would be more explicit and the SVG markup more declarative. I hacked something together and it worked. After the initial blog post and some good response on social media, the idea grew into an OSS project that now has 8 people contributing. We’ve had to rebuild some of the D3 components like axis and figure out a story for animation, but piece by piece we’re working to put in place a new foundation that can be built upon by the community, with help from some amazing contributors from @FiveThirtyEight and @Twitter.

“It feels full circle from becoming a developer because of D3, to watching D3 inspire React, to potentially React transforming the data visualization ecosystem.”

Victory replaces D3’s DOM model with React components that cover data visualization layouts. It also replaces D3’s .transition() with a new animation component that’s been built, Victory-animation. Because it’s React, you have access to all of the lifecycle methods and component state, which has generated much cleaner interactivity than was obvious in D3. I look forward to showcasing some of that. Victory also replaces gists with repos. Repos have infrastructure and which people can file issues against and improve over time. This also means you’ll be able to NPM install a component and drop it into your project, then PR if you needed to add functionality and want to contribute it back. I’m really excited to give this talk — it feels full circle from becoming a developer because of D3, to watching D3 inspire React, to potentially React transforming the data visualization ecosystem.

What do you expect from the conference?