Just for fun, code isn't very elegant. One new topic explored, transition an object along a custom path. Make use of built in SVG values such as .getTotalLength and .getPointAtLength to make a custom tween. See other examples here: http://jsfiddle.net/geotheory/UJuWX/ (jsfiddle not by me)
Modified http://d3js.org/d3.v3.min.js to a secure url
https://d3js.org/d3.v3.min.js