Keming Labs Talks
Building a grammar for statistical graphics in Clojure
I was not planning on speaking at this conference, but the organizers asked me to fill in for a last-minute speaker cancellation---this talk is essentially a repeat of the Øredev talk. --kevin
As programmers, we're used to seeing data in rectangular tables that are optimized for fast retrieval and processing by computer. Pictures of data, such as scatterplots, bar charts, and maps, optimize data for efficient analysis by human. SQL is powerful because it allows us to ask complex questions of our data without busying ourselves with the mechanics of iteration, aggregation, and indexing. We need the same for pictures: a grammar that allows us to express rich data visualizations without the nuisance of looping, drawing axes, and juggling legends.
In this talk, I will introduce such a grammar of graphics, implemented in Clojure. As motivation, I'll discuss the principles of effective data visualization and the insights that can come from just looking at your data. The grammar itself consists of simple data structures, maps and arrays. As a first consequence, this means the grammar can be easily used across the JVM as well as via JSON. However, there are several other, deeper ramifications of having a "data API" that will be discussed.
Building a grammar for statistical graphics in Clojure
As programmers, we're used to seeing data in rectangular tables that are optimized for fast retrieval and processing by computer. Pictures of data, such as scatterplots, bar charts, and maps, optimize data for efficient analysis by human. SQL is powerful because it allows us to ask complex questions of our data without busying ourselves with the mechanics of iteration, aggregation, and indexing. We need the same for pictures: a grammar that allows us to express rich data visualizations without the nuisance of looping, drawing axes, and juggling legends.
In this talk, I will introduce such a grammar of graphics, implemented in Clojure. As motivation, I'll discuss the principles of effective data visualization and the insights that can come from just looking at your data. The grammar itself consists of simple data structures, maps and arrays. As a first consequence, this means the grammar can be easily used across the JVM as well as via JSON. However, there are several other, deeper ramifications of having a "data API" that will be discussed.
Web data visualization: what's becoming easy, what's becoming possible
Panel with Kim Rees (Periscopic), Hadley Wickham (Rice University), and David Nolen (New York Times).
Advances in browser and mobile technologies have made the visualization and interaction of data on web a viable alternative to traditional tools used to visually explore data. Panelists will discuss the current state of web data visualization, as well as novel approaches made possible by recent advances.
Visual Analytics in Practice
Kevin will review three of Keming Labs commercial visualizations from the past year: a wind turbine monitoring platform, a gene variant analysis tool, and an iPad diabetes clinical reporting tool. With this context, Kevin will then wax philosophical on emerging programming languages, visualization on the web, and the role of open source software in the commercial and academic spheres. Finally, in what may be of interest to students, Kevin will also detail his transition from VisWeek 2010 workshop paper third author to full-time world-traveling high-fiving charts & graphs consultant.
Building visual, data-driven UIs with ClojureScript
Clojure iPad analytics dashboard in energy sector
Visualizing and Interacting with Data over the Web
Declarative web data visualization using ClojureScript
Data-driven interfaces on the web using Clojure
Composing statistical graphics on the web
Statistical graphics illuminate by mapping abstract data to visual primitives like dots, lines, and color. Excellent statistical graphics first and foremost show the data. Likewise, the tools for making such graphics should emphasize essential data-visual mappings and hide the implementation details of looping, painting, and layout.
Clojure's emphasis on immutability allows one to compose functions while retaining the ability to reason about their behavior. These same strengths can be leveraged to build rich, data-driven graphics composed of smaller visual pieces. Kevin will discuss using ClojureScript with the Cassowary constraint solver to construct and layout statistical graphics on the web.
Make yourself a job
Invited talk to Reed College. Kevin will discuss his experiences consulting in the design and programming fields and the pros and cons of self-employment. The talk will include an extended Q & A session for interested students.
Extending JavaScript Libraries from ClojureScript
Kevin will discuss using the D3 JavaScript data visualization library from ClojureScript. In particular, using macros to construct a ClojureScript façade that implicitly coerces types and allows one to naturally extend jQuery-style chained syntax. He will also discuss miscellaneous ClojureScript tips and rough edges, and compare ClojureScript with CoffeeScript and more traditional JavaScript functional-mixin libraries like Underscore.js.
Introduction to ClojureScript
Introduction to the newly released Clojure–to–JavaScript compiler.
D3 data visualization
D3 is a JavaScript library that binds arbitrary data to HTML & SVG elements, allowing you to build rich, interactive visualizations on the web. Rather than try to serve as a monolitic library supporting every visualization imaginable, D3 simply provides a lightweight, data-driven interface to the web's underlying HTML, CSS, and SVG technologies. Developers can use D3 immediately with their current development tools and knowledge of web standards.