2018 Books of the Year

  • Data Visualization with Python and Javascript: Scrape, Clean, Explore & Transform Your Data by Kyran Dale
  • Web Scraping with Python: Collecting More Data from the Modern Web 2nd Edition by Ryan E. Mitchell
    2nd edition bigger and even better than the first and the first one was really freaking awesome!
  • LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400 by Christine Bresnahan
    How I wish I’d read this book before many other Linux books!
  • Interactive Data Visualization for the Web: An Introduction to Designing with D3
    2nd Edition by Scott Murray
    The more good D3 resources I find, the more mixed my feelings are about this book but it is so packed with awesome stuff I feel morally obligated to keep it on the list.
  • Data Driven Documents: D3.JS Tips and Tricks v4.x by Malcolm Maclean
    Perhaps the best part about this book is he wrote it as he learned so he is sure to keep the learning-person/student in mind as he explains things and offers insights (such as potential mistakes and confusing concepts).
  • Building Progressive Web Apps: Bringing the Power of Native to the Browser by Tal Ater
    I grabbed it at the library because the library is free so there would be no consequences if my low expectations were met. I recommend this book by itself and as a pre-requisite to Archibald’s course below. 
  • Data Journalism Handbook 2 (just released!) from the European Journalism Centre and Google News Initiative

Not Books But Amazing Resources I Was Elbow Deep In Throughout the Year

  • Any video, course, or documentation by Jake Archibald including but not limited to:
  • Udacity — not only did I earn a Mobile Web Specialist nanodegree I actually learned a ton! I won’t link to it, however, because they have autoplay media on the page and I can’t condone or support that.
  • FreeCodeCamp — resumed my coursework there after finishing the above nanodegree and it is better than ever! In particular …
    • Their Data Visualization content rocks my world — I’m not taking anything away from Murray‘s book but FCC certainly explains the foundations much more clearly and concisely so I recommend going through it first even if you don’t move on the projects phase.

My Train of Thought Down the Internet Rabbit Hole

Stop #1

While reading Twitter, social network analysis and data jouralism by Alessandro Zonin, one of many articles I found this morning during my first visit to LinkedIn‘s Data Journalism group,

Stop #2

I clicked a link to an obscure book (Who Shall Survive? by Jacob Levy Moreno) cited by the author. I am so grateful for the age in which we live where not only can I instantly go to the 84-year-old primary source without leaving my seat but then send my very own free copy to multiple devices with which I can read it anytime, anywhere.

I love archive.org (home to the WayBack Machine, among literally–and I mean literally in the literal sense–millions of other things).

Stop #1 again

A couple charts in Zonin’s article inspired a couple ideas for my Spotify app but I didn’t know the name of the chart type I wanted to use so I

Stop #3

Googled “types of charts” and, after opening a few results in other tabs,

Stop #2 again

I returned to archive.org and searched for “charts” wondering if there were other really old cool books related to data visualization.

One of the results was Charts On Ciphered Codes by William F. Friedman which is interesting to me in and of itself because I love Edgar Allan Poe who was one of the greatest cryptographers in history but also interesting because the book is in the William F. Friedman NSA Collection. So I clicked it

Stop #4

and saw it is also in the nationalsecurityarchive which, of course, I clicked. Here’s that collection of collections:

Those are just the top results. Look at all that yummy goodness!

Stop #5


The National Security Internet Archive (NSIA) above includes, among a giant pile of candy like the Friedman NSA Collection, the NSA Archive.

Am I the only thinking, “What are the Venona Documents”?

That Dept. of Army Technical Manual and a Field Manual that appeared a little further down both reminded me of my best friend from high school and college who collected lots of books that probably creeped most people out. He was not only one of those people with shelves of true-crime novels about serial killers but he also had books he could only find at gun shows like the infamous How to Kill from Paladin Press and an innocence-shattering Department of Defense book on … the title either called it “advanced” or “enhanced” interrogation. He bought this and I saw it in the early 90s, 10-15 years before such a term entered the mainstream vernacular.

Stop #6

So I googled that. First, I searched for “DOD advanced interrogation handbook”. What I find most interesting about these are URLs … I am also so grateful to live in a country were our government is this transparent and the rest of us are free enough to question and criticize our government.


The results often included “enhanced” so I then started searching for “enhanced interrogation” — that auto-populated as “enhanced interrogation techniques pdf” so I used that.


I opened many of them in other tabs but think I’ll just close those and get back to thinking about things less dark on this Wednesday like … today is my wife’s birthday and my daughter is baking a cake.

Well, I closed all of them except for this one …




Those People At StackOverflow

Not long ago, a couple separate people I approached with questions asked if I’d shared my problem on StackOverflow. I told them that, while I always search StackOverflowExchange and find it extremely helpful, I would never ask a question myself because I see the abuse heaped on those who ask and answer questions. I’m a pretty sensitive guy and there are too many other places on the whole wide internet I can find help without the risk of pretentious pricks. I’ve never seen anyone be anything but totally polite and extremely helpful on, say, Reddit and in the 17 years I’ve been on the Adobe Forums. It’s bad enough that I get worked up about how I see others getting treated — I’ll pass, thank you.

Then this happened …

Because some articles I read said that some potential employers look at your StackExchangeOverflow reputation along with your GitHub participation, once in a while I search for unanswered or inadequately answered questions where I might try to help. Also, because my reputation is still low due to my lurker-level participation prevents me from voting on things, etc.

I reached for this low-hanging fruit …

I would upvote painter’s question but I can’t. Those who could, would rather be dicks.

Oh my gosh, I thought … there are a billion questions like this one and I know of a single, perfect site that I always direct people to. Yes, I could give him the answer but this site explains it perfectly AND dozens of other related issues. So …


Then I saw this …

This morning, I had an email from StackExflowOverChange and I was eager to see whether or not I helped the person. I was SO hyped that to see that green checkmark yet, “rather perplexed that the answer is marked as correct but has a negative score.” I immediately figured somebody (or a couple somebodies) didn’t like the fact that I didn’t answer the question so much as pointed him to some treasure that included the answer plus oodles of other stuff I knew painter would love.

But then I noticed the history of my points … my answer had earned 15 upvotes followed by not just one, but, apparently, 17 downvotes!

Then I noticed this …


Let me preface this by saying that little green checkmark put me over the moon where I still am so I’m not lashing out at these two guys … just throwing them out there as examples of why I don’t ask questions. I won’t stop looking for opportunities to answer because A) I want the reputation and B) Someone needs to be helpful and encouraging to counterbalance this poor behavior and these poor experiences by those who do ask.

First, The Prick

I think I may have been the first person to respond, so after I posted my answer, some guy — what I’d consider a stereotypical but not-as-bad-as-they-can-be StackOverEx Bully — first takes the time to criticize the question then take a shot at someone else who tried to answer it (I’m not @Uday and their answer was no longer visible by the time I got there this morning). Again, this OverStack bully isn’t anywhere near as obnoxious or offensive as they can get but it’s still just unnecessary to dig at people asking and answering questions.

Then, The Pathetic

While I would never solicit a greenCheckmark or upvote, I certainly understand why someone would — I’m there for the reputation myself, not to help humanity. The reason I point it out is … I wonder if the question’s zero score is because that person deliberately did not upvote the question because they didn’t get their answer upvoted or, worse, maybe the question had a point or two and this person vindictively downvoted it. Then I wondered … did this guy downvote my answer out of spite? Did he go tell 16 of his friends to downvote it? In the real, adult world that might sound paranoid or whatever but … this isn’t the real world, it’s the WWW and it’s a site filled with infantile behavior.

It Reminds Me of a Poem

The Paradoxical Commandments by Dr. Kent M. Keith

  1. People are illogical, unreasonable, and self-centered. Love them anyway.
  2. If you do good, people will accuse you of selfish ulterior motives. Do good anyway.
  3. If you are successful, you win false friends and true enemies. Succeed anyway.
  4. The good you do today will be forgotten tomorrow. Do good anyway.
  5. Honesty and frankness make you vulnerable. Be honest and frank anyway.
  6. The biggest men and women with the biggest ideas can be shot down by the smallest men and women with the smallest minds. Think big anyway.
  7. People favor underdogs but follow only top dogs. Fight for a few underdogs anyway.
  8. What you spend years building may be destroyed overnight. Build anyway.
  9. People really need help but may attack you if you do help them. Help people anyway.
  10. Give the world the best you have and you’ll get kicked in the teeth. Give the world the best you have anyway.

That’s more for me than you. Not because of OverStack but because I’m in my cubicle at my soul and spirit killing, mind-numbing day job.

SCORM and St. Philip Hutchison

12-18 months ago, I discovered pipwerks.com, a delightful little site with oodles of articles and downloads that captured my interest while I tried to debug and troubleshoot problems with either Articulate Storyline, Oracle‘s Taleo Learn, or both (we still haven’t figured that out–both are garbage and we can’t figure out which piece of garbage causes any given stink). My goal at the time was to learn the basic structure and content of a scorm object. I wanted to be able to put together a basic skeleton or template.

You  see, publishing a single-slide course containing only a single question in Stinkyline results in thousands of files. The HTML5 version will still contain an SWF, by the way, but the HTML is HTML5-compliant (that’s a BIG selling point to the goobers who buy it from Articulate … it’s also a major selling point of Learn for the goobers who buy that from Oracle).

I wanted to know what a SCORM object did and did not require so I could, perhaps, troubleshoot the courses we had or learn to create them without development “tools” like Storyline or Captivate. Eventually, I gave up.

Recently, however, I started to build a sample project for a potential employer and found another even more desirable potential employer that requested an optional sample project and, as it turns out, if I combined them (appropriate and compatible) the resulting combination project would be pretty freaking cool and fun. So I went to the Googlebox and asked again about SCORM skeletons or templates or whatever.

I don’t know how I missed it my last go-around, but both pipwerks (AKA Philip Hutchison) and a book called Eye of the SCORM had stuff I hadn’t found. The most important piece of all this (five paragraphs in, I know, I’m sorry) is Hutchison’s 7+ part series on Cleaning Up Adobe Captivate’s CORM Publishing Template. It’s perfect bubble-bath reading and I raved about it (the series, not my bath) at work the next day to the LMS Administrator.

Hutchison’s writing style, insight, professionalism, teacherness, and … I can’t say enough awesome things about him and/or his blog. Just go check it out.

I’d like to do something similar with Storyline’s mess. One of the solutions we’re trying at my stupid day job is rebuilding one of our problem Stinkyline courses in Craptivate so the series may be useful at work in the short term and not just for play.

Hutchison is also “writing an ebook explaining how to build an HTML-based SCORM course” which is exactly the sort of thing I’m working on and has oodles of other rockin’, hackin’ SCORM resources on his site.

The most important part of this post is that I’m excited about this sample project for the second potential employer mentioned above. The first is no longer potential or desired. Losers is what they turned out to be but I’m grateful for having endured the interview process with them because that project is what inspires me so about the project for the place I haven’t even applied to yet.

Other cool SCORM hacking resources from Rustici:

Now That’s Some Good Marketing

My name beneath the words “Massachusetts Institute of Technology” … it’s like the salesman getting you to try on the suit or sit in the car.


But how much does it cost? I just yesterday, for the first time, briefly considered forking out money when I found out the relatively inexpensive CodeSchool awards badges. Given that MIT has free courses at Udacity, I can’t see paying for this. Udacity offers what they call nanodegrees but, again, coding is the field where I don’t have to pay for pieces of paper, right? I just show what I can do and that’s what impresses people, right? Right?

Egghead.io Is Best for Learning ES6

I’ve probably mentioned that every resource I tried for learning ES6 left me completely baffled before the end of the first paragraph.

Learn ES6 (ECMAScript 2015) from Egghead.io is a miracle. The course is approximately one hour taken in ~1-5 minute topical chunks.

Classic example(s) of, “Why didn’t you just say that?” Wait … I’ve said this–and in more detail–before about this course in Trying to Learn ES6:

As is always the case with something that seems intellectually insurmountable, once I finally find a simple explanation of any given thing — in this case, for example, arrow functions or the “let” keyword — I shout, out loud, even if alone, “Why didn’t the dozens of others just say that?!”

Programming is so ridiculously easy with the right teacher(s).

Learning VIM and Stuff

At some point during your Linux learning experience, you realize you must do some file editing in the command line because your editing app of choice doesn’t have permissions to save the file in question and you really, really don’t feel like looking up the commands for opening that app with sudo in the command line again.

Like me, I’m sure you dreaded each time you had to choose which of the intimidating command line editors you’d open, then search for a web page that clearly explained how to use that app (re-learning what little you learned and forgot the last time), and mutter/curse to yourself as you screwed it up but, hopefully, eventually finished the tiny task that should have taken you a tiny fraction of the time you spent on it.

A couple days ago, I stumbled upon this:


Honestly, I’m more impressed with the concept and execution than I am the learning experience. So, there you go, sometimes a great “user experience” doesn’t mean a great “learning experience.”

Fortunately, I then stumbled on THIS:

Just type "vimtutor" in your terminal.
Just type “vimtutor” in your terminal.

An even better (far superior, in fact) interactive tutorial you already have.