About

For the past 15 years, I’ve been building websites and web apps evolving from the flash days and tabled layouts into the world of javascript and fluid grids. I absolutely love to climb and refuse to live in a place that does not allow me to climb ( sorry Ohio ). I currently work at McKinsey as a Sr. Digital Expert and I have the privilege of building some of the coolest web apps and solving very complex problems. At the same time, I get to work along some of the most interesting and smart individuals I’ve ever met.This blog is barely starting so please bear with me. It will end up with a compendium of everything I learn along the way and maybe some other things that I think I’ve learned but that your comments will show me that I have not.

Thanks for reading!

2 thoughts on “About

  1. Sorry to bother you, I am reading your book named Learning D3.js Map, that’s really excellent!
    But there’s a place making me confused, I can not found your email, so I decide leave a comment here.
    In the chapter 4, we use a projection to draw a real map, the projection need to be scaled and translationed to a new place, but the translation part seems a little weird, check the follows

    Now, we have an accurate scale of our map, given our set width and height.
    var t = [(width – s * (b[1][0] + b[0][0])) / 2, (height – s *
    (b[1][1] + b[0][1])) / 2];
    As we saw in Chapter 2, Creating Images from Simple Text, when we scale in SVG, it scales all the attributes (even x and y). In order to return the map to the center of the screen, we will use the translate function.
    The translate function receives an array with two parameters: the amount to translate in x, and the amount to translate in y. We will calculate x by finding the center (topRight – topLeft)/2 and multiplying it by the scale. The result is then subtracted from the width of the SVG element.
    Our y translation is calculated similarly but using the bottomRight – bottomLeft values divided by 2, multiplied by the scale, then subtracted from the height.
    Finally, we will reset the projection to use our new scale and translation:
    projection.scale(s).translate(t);

    yes, you said “(topRight – topLeft)/2”, but the code is “s * (b[1][0] + b[0][0])”, I have thought a long time but still dont know why, could you please help me? My email is viclm@live.com, thanks a lot!

    1. Apologies for that confusion. The errata is being fixed as we speak and an update should come out shortly. It should read TopRight BottomRight instead of topRight topLeft

      Hope this clarifies and thank you very much for your comments!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s