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.

2017 Books of the Year

These are the books that were indispensable this year as I continued learning and developing the apps that constitute my portfolio.

  • CentOS 7 Linux Server Cookbook by Oliver Pelz and Jonathan Hobson
  • Mastering CentOS 7 Linux Server by Mohamed Alibi
  • Building Android Apps with HTML, CSS, and JavaScript by Jonathan Stark
  • Learn HTML5 and JavaScript for iOS: Web Standards-based Apps for iPhone, iPad, and iPod touch by Scott Preston
  • Learning PHP, MySQL, JavaScript, CSS & HTML5 by Robin Nixon
  • Plug-In PHP: 100 Power Solutions by Robin Nixon

Honorable Mention (awesome books I used a lot but weren’t as indispensable)

  • The Linux Command Line by William E. Shotts, Jr. from the ever-awesome No Starch Press

Were Briefly Under Consideration (Great books but not used a lot)

  • Eloquent JavaScript by Marijn Haverbeke
  • In the Eye of the SCORM by Claude Ostyn
  • Data Driven Documents: D3.js Tips and Tricks by Malcolm Maclean

Sprint at the End Reappearance from Last Year

  • Interactive Data Visualization for the Web by Scott Murray

Once again, I checked out this book and renewed it as many times as I could. My boss gave me a Barnes & Noble gift card for Christmas and I just used it to order my very own copy of the 2nd edition which is twice as thick!

Not books, but dang they helped me a TON 

SCORM Exchange Excitement

I willingly subscribe to a very small handful of things. One of them is Philip Hutchison‘s updates on his forthcoming book because I couldn’t be more excited about it. I think it’s important and exciting enough to share—the thoughts and files he’s been sharing at his site for years have been helpful and refreshing.

Below is his latest update and my response.


Thanks again for signing up for my book updates. The book and related code samples are coming along nicely, I hope to finish up this month, time permitting.

I wanted to take a moment to explain the gist of the book and see what you think.

First, some background:

Without a doubt, SCORM is convoluted, and is full of “nice… in theory” concepts. When SCORM was originally conceived, the authors were taking stabs at what they thought e-learning developers would like or need, but they were basically guessing, trying to predict the future.

As time progressed, they refined and expanded SCORM, adding complex features such as sequencing and navigation. Many of these new features made SCORM much harder to implement. The result was a chicken-or-egg scenario: LMS vendors didn’t fully implement SCORM features because of limited demand from course developers (and high development cost). Conversely, course developers didn’t use a number of SCORM features because the LMS didn’t fully support them.

For years we waited to see how it would play out: would the LMSs eventually start supporting more advanced SCORM features? Would we ever be able to fully utilize sequencing and navigation? Would support for CMI fields like cmi.interactions ever stabilize?

Today we know the answer: No, LMS vendors will not improve their SCORM support. The SCORM spec was last updated in 2009, and the ADL (owners of SCORM) have officially discontinued development in favor of the Experience API. Vendors have no incentive to spend development dollars on improving their SCORM support.

In my opinion, today’s level of SCORM support is the best we will get.

With that in mind, my book is focused on finding the sweet spot: how to hand-code a reliable HTML-based SCORM course, utilizing only the most widely-supported features. I’m attempting to level-set expectations about SCORM and taking a hard look at how we’re using it — the reality of SCORM in today’s world, not the dream of the original SCORM authors. I will not be delving into obscure and/or infrequently used features such as global variables or rollup rules.

If you’ve read this far, THANKS! I hope you’re as excited about this as I am.

I’m looking to make this book and the accompanying code examples as relevant as possible. If you have a minute to spare, I’d love to hear about your relationship with SCORM: how do you use it today, and what are your goals with SCORM? Are you trying to build a new course system, or do you already have one, but are looking to make it more reliable? Are there any particular kinds of examples you’d like to see?

Thanks for your time.
– philip

PS: I mentioned the Experience API (xAPI); it’s growing in popularity and has a bright future, but is still a child. Because of the Learning Record Store requirement, xAPI doesn’t work out-of-the-box with most LMSs, so I anticipate it will be a few more years before it’s widely adopted. In the meantime, SCORM continues to provide the foundation for the vast majority of e-learning courseware, especially in the corporate training realm. SCORM comes standard with most LMSs, and will not be going away anytime soon.

My Reply

I’ve been waiting for something like this for a long time. I’m the instructional designer for a healthcare system with almost 10,000 employees — continual development of new, mandatory training to meet new regulations and requirements. We don’t use an LMS. We use Taleo Learn, an HCM that Oracle bought from some bargain basement estate sale so they could bundle it with their other products for the “convenience” of their customers who don’t know any better.

The lack of many of the most common LMS features aside, it isn’t even able to take advantage of what few things tools like Articulate Storyline and Adobe Captivate can do. I started my ID career during the glory days of eLearning created with Flash which, obviously, isn’t an option for many reasons. All of these limitations led me to your site and others trying to learn how to hand-code truly interactive, engaging, sane eLearning using HTML, CSS, and JavaScript — the only languages available to me even a little bit. Sadly, Taleo Learn isn’t compatible with “HTML5 eLearning.” Like many other products (including Captivate and Storyline), it is sold as “HTML5 compatible” which means little, if anything, more than a different doctype.

I’ve heard dubious rumors we may finally get an LMS in a year or two. Maybe. In my mind, that gives me hope for one thing — I can hand-code my own stuff without using Storyline and, if the stars and gods favor me, it will work in this new LMS.

What I’d like:

  • Animation
  • Control over navigation and interactivity
  • Communicate with the LMS beyond what little Storyline and Captivate can
  • Change code (and read code that is written with some sanity) … I’d like to know and navigate the directory structure with ease … what’s in there and where it is
  • Basically, something that can replace Flash

The Catch-22 Pengiun

I’m not sure if that blue & red penguin meme actually represents catch-22’s, pseudo/non-ironies like the Alanis Morissette song, or simple twists of fate like the Bob Dylan song, but … I think I’ve figured out how to complete my artist object, putting the final piece(s) in — the tracks for each album — which is cool and all but it makes me sad. It means one of the functions I’m proudest of needs to, at the very least, significantly change if not be deleted altogether.

For the curious & interested, here’s the relevant file (lines 167-181) in my rockin’ repo. I’ve added a link to my GitHub profile under the I, Elsewhere links category on the right.

This reminds me: I never finished Catch-22.

You know what I love? Among other things, being able to check out library books on my Kindle Fire. It might not be a proper Android tablet, but I love it.

2016 Books of the Year

As with last year, these aren’t necessarily new books released in 2016. These are the books I discovered that most contributed to my learning and advancement in 2016. New books face a disadvantage in their hopes to be so honored — I prefer free books or library books. Having said that, free online books are at a disadvantage because I don’t own a tablet (and, if I did, it would be WiFi only limiting where I could read these online books) and my screen-space is taken up with the apps I use to do my coding and testing (books belong on my literal, not my pixel, desktop). I do have a Kindle eReader, but free eBooks are at a disadvantage because they almost always suck.

MY BIG, FAT, RAGE QUESTION: What ever happened to “Print-Friendly”? It would be so great if articles and books I found could be printed in an easily-read manner that didn’t waste paper. Is there a snippet of code that consciously, purposely prints a final page with just a couple lines on it? That’s not so bad when it’s the page’s footer — I can opt not to print (or throw away) that one — but, when it’s the last half of the last paragraph, that really sucks. Even if I don’t need that last paragraph, the OCD in me rises up and I must still print and keep it.

See Also: 2015 Books of the Year

There aren’t many. The number of sites I’d recommend for learning grew much more this year than my list of books. For the most part, these are in no particular order.

Learning PHP, MySQL, JavaScript, CSS & HTML5 by Robin Nixon

Best thing about this is Nixon doesn’t isolate writing functions, or forms, or databases … you learn like you’d want to — in context, in practical, real-world ways. Nixon is also a very good writer. O’Reilly means you won’t get frustrated by poor editing, poor proofing, or crappy code and/or directions that don’t work. Picked up an old edition at the library just based on the PHP/MySQL content and kept it as long as I could. I still need to go back and get it again. It’s frequently checked out and often has holds. New it’s almost $40. Used it’s under $10.

The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript by Peter Gasston

If, like me, you want to know what stuff is and does and why — as opposed to what code to write for X to work so you can finish the project — Modern Web is delightful. Terms, technologies, and tools I’d scanned or glossed over and those I’d never heard of are explained in understandable (1 point) and interesting (2 points!) ways.

From my March 30 post: “You should probably already be in love with No Starch Press. I kept passing by The Modern Web by Peter Gasston but it might just be my new favorite book from them. I was hooked instantly once I gave it a chance and although I’m only on page 21, I’ve been educated and enlightened. Not just informative but entertaining and stimulating. Yay for my library having a copy. I would never consider picking up a book on CSS but, based on this experience, I’m going to check out his Book of CSS3.”

My entire post from April 15: “I stopped reading The Modern Web by Peter Gasston for a bit because I thought, ‘Okay, the rest won’t be this good … it’s slowing down’ but picked it back up on a whim and then, wham, it started being so great again. I can’t believe how awesome this book is. I wish I’d found it months ago.”

Learn HTML5 and JavaScript for iOS by Scott Preston

I thought this would be creating mobile apps using HTML5 and JavaScript. I hoped so. Isn’t learning all this JavaScript (including libraries and frameworks), PHP, MySQL, and Python enough? I have to learn Java and Swift, too? Once I realized this book covered “merely” making mobile-friendly (read: screen-size) web apps, I was disappointed. But, like Modern Web (though not to that extent), I was pleasantly surprised. Preston explained things in enlightening ways that actually made me angry at the nameless clowns who wrote the crap I’d read on those topics before. Preston inspired many of those “Why didn’t they just say that?!” moments about which I’ve ranted many times before. And, there are enough things I didn’t know (and things I didn’t know about things I did) that I’m working through the books samples and exercises. Preston is a good author … who should punch his proofreader and editor in the face (this specifically applies to the 2012 edition I got from the library).

Plug-In PHP: 100 Power Solutions by Robin Nixon

Currently ripping through this. I thought the author’s name sounded familiar but didn’t make the connection until this morning. If I’d noticed the word “Plug-In” in the title, I probably wouldn’t have checked out this book. The good news, as I see it, is I would actually have called the book 100 Awesome Task-Based PHP Snippets Explained In-Depth and Extremely Well. I love that Nixon is a true hacker-geek who proudly admits to using PHP to download and store all of Wikipedia locally in case he wants to look something up offline. I’m quite fond of authors who take the time to say, “If X doesn’t work, it’s either because you screwed up Y or there’s a Z-factor, in which case you should …”

Learn Python the Hard Way by Zed A. Shaw

Hard, PDF download, or read free online. The introduction is called, “The Hard Way Is Easier” and I agree. Shaw is also very strict about adhering to the hard way. He frequently asks, “Something doesn’t work?” followed by “Did you use something I told you not to or do it in a way I didn’t tell you?” then with “I told you so. Now go back and do it how I told you.” I love it. Obviously, this isn’t one of those “Learn language X using … some thing you’ll probably never really use and, even if you did, this method won’t help you learn language X in and of itself” resources. He’s also got Hard Way books on Ruby, C, SQL, JavaScript, and … ooh … just noticed Regex which I desperately want and need.

Honorable Mention (Holdovers from Last Year)

  • JavaScript and jQuery: Interactive Front-End Web Development by Jon Duckett

Articulating My Goal(s) and a New Book

Sent an email to Swizec Teller after buying his book, React+d3.js: Build Data Visualizations with React and d3.js. He wrote me back, asking what I was working on and I was able to, IMHO, concisely state what I’m working on and why with some specific goals:

I used to teach all the Adobe products plus web-related classes such as HTML, JavaScript, and CSS. After layoffs, I used those skills quite happily for a few years in Instructional Design. Steve Jobs killed Flash which is one of the reasons most Instructional Designer jobs now suck. Finally decided to go all-in and learn programming/web-dev in-depth so I can get my creative/intellectual mojo back. Been focusing on JavaScript and I’ve heard great things about React. I love data visualization–especially if it’s dynamic and interactive–so I’ve fallen in love with D3. I’m hoping your materials clear a bottleneck I’ve had in my learning journey: I want to create pages/apps that access external data from, for example, external JSON docs or a MySQL database–not “data” (notice the “air quotes”) that is embedded in some Javascript in the same HTML file as the D3 code. My end goal for this specific effort is to access APIs such as the CDC or any number of Open Government APIs to create cool, beautiful data visualizations and apps.

Passion & love for programming/creativity is awesome:


Here’s a similarly eloquent review from one of his consulting clients:


I May Have to Spend Money

I’ve requested JavaScript and jQuery: Interactive Front-End Web Development by Jon Duckett from my library (again) but it’s taking too long. I may have to finally just break down and buy myself my very own copy. I suppose if any book is worth such a high price (used copies are $18.50 + S&H at the moment), that one is.