Monday, September 17, 2012

Review: “Getting Started with D3” by Mike Dewar

Getting Started with D3
D3 (Data-Driven Documents) is an interesting library for creating browser-based visualizations.  Unlike most JavaScript libraries I’ve looked at, D3 provides tools to declaratively transform data into graphics formats, rather than providing a pre-canned monolithic solution to various charting problems.  The successor of Protovis, D3 was specifically created to work with dynamic data. 

Its design is elegant and powerful, but it can be pretty daunting.  The website includes a large number of beautiful visualizations (which I definitely recommend checking out), some bare-bones API documentation, as well as links to introductions and talks.  Even so, it can be difficult to know where to begin to learn the library, and I was happy to see Dewar’s book devoted to it; I’ve been meaning to try out D3 for months but haven’t been able to work up the time or courage.

I like the book’s format: focused, concise.  With such a huge topic it would be possible to write a formidable, 600 page book that only a few people would actually read.  Especially with all the resources on the internet available, what readers like me need is a push in the right direction.   D3 relies on open-standards and modern web browsers, but the book doesn't waste time explaining JavaScript, CSS, or SVG.  There are recommended books in the preface, but nothing more.  D3 supports JSON, XML and CSV as data sources, but Dewar (wisely, I think) focused solely on just JSON.

The book is structured around a half-dozen visualization based upon NYC’s mass transit system, with each chapter describing the creation of increasingly complex output.  Even the most complex visualizations are not treated in a great deal of depth, however.  The source and input files are provided on the book’s website.  Unfortunately, there are no examples with dynamic content.   

The book might have needed closer editing.  I noticed a few mistakes in the code of the printed book, and at times the writing wasn’t very good, in the style of an informal blog post.  It would have been nice if the author had provided exercises.

I feel after reading the book that I know where to start with learning D3.  In short: if you need a quick start guide to D3, the book will probably be helpful.  If you're looking for something more from its 70 pages, you'll be disappointed.

(I read the kindle version, on my iPod, and the eBook conversion was excellent.)

Product Information:

Thursday, September 6, 2012


So I've been thinking about blogging again. In the past, my blogging endeavors have started strong, but lost steam, and mostly focused on things like Russian Literature. I'm going to try to take a more sustainable pace and also have multiple blogs for various topics. This first one will deal with Software Engineering, Development, etc. with a focus on learning. This will include book reviews, online content reviews, random technical opinions, and so on.

Professionally, I am a software developer with a background in Microsoft Technologies. For the past 6 years I've mostly focused on Windows Forms client server development in C#, but lately I've shifted focus towards the web. Since graduate school, I've had an on again off again interest in programming language theory and artificial intelligence. So, my topics of learning for this blog will include, but won't be limited to:

  • Functional Programming
  • The Microsoft Web stack, .NET, and C#
  • JavaScript and cognate subjects
  • Learning Programming Languages: particularly Python, Scala, and Clojure
  • Cloud-hosted web applications
  • Service Oriented Architecture
  • Massive Open Online Courses
  • Learning to Learn
That's a lot of subjects, so it'll be interesting to see how all this goes. I'll try to post approximately once per week.