The eli4d Gazette – Issue 049: DevDocs.io and the BaseCS Podcast

DevDocs.io – an amazing programming documentation resource

While scanning through Quincy Larson’s excellent posts I came across the DevDocs site and how it has recently joined the freeCodeCamp family.

DevDocs allows you to rapidly search for documentation of various languages and frameworks. It is similar to Dash but through a web page and it’s free. The best way to use this resource is to add it as a keyword to your browser (per site’s instructions). Having one location for software development documentation is excellent and having this under Freecodecamp’s stewardship guarantees that this resource will only get better over time.

A gentle introduction to computer science through the BaseCS podcast

I’ve come across this extremely charming and useful podcast that goes through computer science in a gradual well-paced way.

The format revolves around one topic, and it is a question/answer type of conversation between Saron (founder of the Code Newbie site) and Vaidehi Joshi. Saron is the questioner and Vaidehi is the CS “explainer in chief”.

Each episode of the BaseCS podcast comes with a well-written article from Vaidehi Joshi’s site.


Thoughts? Feedback? Let me know: @eli4d on Twitter


The eli4d Gazette – Issue 047: Keeping up with Software Industry and Developer Marketing

Keeping up with the Fast Pace of the Software Development Industry

The Syntax.fm podcast had an excellent episode about the issues (and solutions) of keeping up with the fast pace of software development. While this podcast is more skewed towards JavaScript, the suggested approaches apply to all programming languages, libraries, and technologies. Some interesting points (which I bookmarked in my twitter feed):

  • At 15 minutes and 46 seconds: a sane approach to this fast-moving field
    • maintain core programming skills in whatever language that you’re versed in
    • practice “just in time learning” for everything else
  • At 47 minutes and 42 seconds: how to stay up-to-date

Developer Marketing and Landing Pages

I listened to 2 excellent episodes from the Release Notes podcast about the art of creating landing pages for various types of products. Justin Jackson does an excellent job of explaining his approach, as well as providing actionable advice. You can find the episodes here:


Thoughts? Feedback? Let me know: @eli4d on Twitter


Reflecting on O’reilly’s Departure from DRM Free Technical Books and Finding Alternatives

I’ve been trying to figure out why I’ve been so disturbed by Oreilly Media’s closure of their online bookstore. It feels like I’ve lost an old reliable friend.

The long and short of it is that they are no longer selling DRM-free versions of their technical books (i.e. in epub, mobi aka Kindle format, and PDF formats). Instead they have gone down the path of forcing customers to either have a Safari Books Online subscription ($399/year for individuals) or to purchase individual physical/electronic books through Amazon where the electronic version would be the Kindle format (i.e. a DRM mobi file that could be removed by Amazon at any time). Both of these options do away with the ownership of electronic books1.

Note 1: I have nothing against Amazon’s DRM protected Kindle books, and I have purchased many such books with the understanding that my purchases are a sort of perpetual lease that can be revoked at any time. I feel that this sort of arrangement is bad for technical books besides the significant format issues of the Kindle format (discussed below).

It is easy to be outraged by this change, and my peers at Hacker News have done a commendable job in expressing this justifiable outrage. Like my technical peers, I am rarely prone to emotional outbursts instead resorting to the sweet logical song of rationality. And yet, I can’t help but feel that I’ve lost an old friend. Why is that? It truly does not “make sense” to me.

In 2010 I attended a Drupal conference where Tim O’Reilly spoke about “Open Source in the Cloud Era.” I recall Tim speaking of his company’s core mission which included, front and center, DRM free books. And here we are seven years later with an evisceration of this core mission in the name of a “reinvention”. It’s funny how Tim O’Reilly has said nothing of this change beyond a tweet whose responses have been anything but supportive.

Out of all O’Reilly’s books, I will dearly miss the “Head First” series. But such is life, and I hope that this change will bring new publishers into the fray as well as inspire old publishers to avoid O’Reilly’s path.

Three aspects make me fairly certain that I will not be buying O’Reilly books in the future (which includes steering students away from such books for my online and on campus classes):

(a) As a reader of technical books:

As a reader of technical books, I have learned long ago that the Kindle and ePub version are inferior to PDF. While I love my Kindle Voyage for fiction books, the Kindle format is terrible for technical books. It is bad both from a formatting issue, in addition to the issue that Amazon published Kindle technical books are rarely updated as new revisions of a book are published (see Andy Hunt’s comment by searching for ‘AndyHunt’ in the previously mentioned Hacker News thread about this very issue). Check out any great technical book on Amazon, and you’ll see that more often than not the 1-star reviews refer to the Kindle edition. Here’s an example for “Head First JavaScript”:

The content is great, but the ebook formatting is some of the …
By … March 23, 2015
Format: Kindle Edition|Verified Purchase
> Note – this is about the kindle edition. The content is great, but the ebook formatting is some of the worst I’ve seen.
>
> Terrible, terrible, terrible. The formatting is some of the worst I’ve seen, with parts frequently unreadable and cut off. Want to read the code examples? Good luck, they were scanned in unchanged as images, so you can’t zoom in by changing the font size. Instead you get to squint!
>
> Seriously, did they just hire an intern to hold the book up to a flat bed scanner?
>
> The content is great, but the ebook formatting is some of the worst I’ve seen. DO NOT BUY
>
> Buy the physical version. Save yourself some headache. If you want an appropriately formatted Javascript e-book, Javascript: The Good Parts is very readable.

The only format that stands to the content rigor of technical books is PDF. Sure PDF is far from perfect, but for this sort of book, anything else is pretty awful.

The Safari online option is somewhat questionable in that the mobile and web reading experience is less than ideal (Hacker News has much information about this). If reading on O’Reilly book is a poor experience on the Kindle app and iBooks app, then how much better can O’Reilly’s Android/iPhone reading app be for Safari Online Books?

(b) As a teacher

As a teacher of technical/programming courses, I have always recommended the DRM free versions of any required textbooks including O’Reilly books. I heavily use the PDF version of such books to create my course materials (so lectures can be in sync with the particular text book for the course), and I steer my students from the Kindle version to the PDF version in a DRM free format. An example for this is the “Head First JavaScript” book. This book has various exercises and puzzles that should be solved by hand (i.e. “pencil the answers in the book” type of work). If you’re using the physical book then it isn’t a problem. But what if you want the electronic version of the book? The only easily printable version (i.e. maintains exact format and pagination of the physical book) is the PDF version of this book.

While I will continue with any current courses that utilize O’Reilly books, I cannot do so for any future courses. Without question, I will resort to non-O’Reilly books for any new courses, and I will only books from publishers that provide DRM free epub, mobi, and PDF.

(c) For future authors of technical books:

If you’re a someone who is considering writing a technical book – why would you write for O’Reilly? Outside of the name, what is the possible advantage? (and no – there is no editorial advantage)

Since O’Reilly’s new electronic version of their books comes only from Amazon – why bother? Why not publish directly with Amazon if you want to go that way? Obviously, you’ll distance technical readers that want PDF but that’s a conscious choice that you would be making. Alternatively, you could publish on Amazon and have a DRM free ePub/mobi/PDF versions that you sell on your site.

If you do want to publish PDF versions of your book(s) and DRM free epub/mobi versions on one platform then there are plenty of publishing options:

  • self publishing via Gumroad or Leanpub
  • more traditional publishing via:
    • Pragmmatic Bookshelf: From a publisher perspective, I would say that this publisher is the closest to being of the old O’Reilly quality while providing DRM free electronic books including PDF.
    • No Starch Press: A large and quirky publisher that allows for parallel Creative Commons publication (see books by Al Sweigart for examples of a hybrid approach)
    • Apress: Yet another one with lots of technical books
    • Pearson’s Informit: Another traditional technical publisher with DRM free epub/mobi/pdf options

Of course, some of these publishers may follow O’Reilly’s path so you might consider having a contractual clause that lets you move your book to another publisher if the DRM free options go away.


In conclusion, the “books as a service” is not a surprising business goal. Recurring monthly subscriptions seems to be the current holy grail for many companies. After all, if Adobe, Netflix, and Spotify can do it why can’t anyone else do so? Whether the company is small or large. But like everything in life the true answer is ‘it depends’:

  • Is the subscription service providing a better product for the customer? (For technical books – O’Reilly media is not providing a better product)
  • Can the customer get the product without a subscription? (Customers cannot get O’Reilly books without subscription (and no – the Amazon Kindle version does not count because of the poor formatting and content update experience for technical books))
  • Can the customer find equivalent products from competing vendors? (fortunately, there are plenty of other technical book publishers)

O’Reilly Media Inc. has every right to choose its business model. My hope is that readers, teachers, and authors will vote with their dollars and feet by moving to other publishers. I know that in my case, O’Reilly’s website will be the last place I will look for a new technical book instead of being the first.


Thoughts? Feedback? Let me know: @eli4d on Twitter


JavaScript Specifics for the “Where do I go from here?” Question

This article is a continuation of the “Where do I go from here?” article with a focus on JavaScript (this is a frequent question I get from the students in my ‘Beginning Programming with JavaScript’ class ). If you haven’t read the previously mentioned article – you should do that first since it sets up the context for what I’m going to say here.

The usual disclaimer applies. This is going to be an evolving post because everything changes in software all of the time. Feel free to contact me with any questions, suggestions, and feedback.

Assuming that you are pursuing project focused learning here are some JavaScript related ideas/approaches.

The ‘no-frills’ project iteration

I suggest that your first iteration of the project use the JavaScript concepts that you just learned. This means using the JavaScript that you know right now. This no-frills iterations will help you understand the essence of your project.

You can continue with plain old JavaScript and an expansion of the ToDo project that we started in class. Or you can choose your own project. As you can tell based on my other article I’m a big proponent of choosing your own project – something that scratches your own (software) itch.

The ‘I must pursue the latest and greatest’ JavaScript ____ \ ____

Many feel that the pace of change in JavaScript (more specifically – the frameworks and approaches to JavaScript) is a never-ending race. It can feel like you’re Charlie Brown, the football is the current must-use/best/must-have JavaScript related technology, and Lucie is that ‘other’ developer who surfs on the bleeding edge with full understanding and a new Medium article about the best framework/approach/’awesomeness’ that you are not using:

This sort of view is known as “JavaScript Fatigue”, and it connects with the two views of JavaScript. The first is that “JavaScript is great!” and the second is that “JavaScript is a mess!” (the State of JavaScript Survey shows this quite nicely on its front page).

The long and short of it is that there is no magic bullet in terms of programming language, frameworks, and technologies. What’s popular today may be gone tomorrow. JavaScript has gotten large enough that you can pick something and specialize in it.

So pick whatever piques your interest. And if you don’t want to pick, then pick a project that interests you and start coding it in plain JavaScript.

There’s a great Theodore Roosevelt quote that applies to decision making:

“In any moment of decision, the best thing you can do is the right thing. The next best thing is the wrong thing. The worst thing you can do is nothing.”

What about bootcamps?

Programming bootcamps are a huge topic that is beyond the scope of this post. Some minimal suggestions:

  1. Figure out if you are the type of personality that would work well in a bootcamp (are you the type that jumps into a cold pool of water or do you slowy wade in?).

  2. They tend to be a large commitment in terms of both cost and time.

  3. Do your research very very carefully since there are lots of questionable ones out there.

  4. If you are seriously considering a bootcamp, you should try your hand with a free one called Free Code Camp. See how well you can commit to daily and weekly work.

I know of 2 students who went to bootcamps for a career change. They completed the bootcamps successfully and did the career change that they wanted. They also found out that the grass wasn’t greener on the other side. One thing about both of these individuals is that they were driven and would have succeeded even if they didn’t go through a bootcamp. In their case the bootcamps accelerated a trajectory that they were already on.

Additional resources

Conclusion

The JavaScript universe is huge. It’s a big mess of awesome. I think Steve Jobs said it best:

stay hungry, stay foolish


Thoughts? Feedback? Let me know: @eli4d


The eli4d Gazette – Issue 018



Issue 018: 2016-11-09

Tech Pick

In Issue 16 of this Gazette, I mentioned a recent well done JavaScript survey. Last week I listened to Sacha Greif, the creator of the survey, on the React Native Radio podcast. There was an interesting part of the conversation where Sacha explained his view/approach to the JavaScript fatigue issue. His fundamental point, that the JavaScript ecosystem has gotten large enough for specialization, was both enlightening and reassuring. In other words, you don’t need to know every nook and cranny of JavaScript and surrounding frameworks/build-tools/fill-in-the-blank to do your job.

Media Pick

Through John Gruber’s site I came across this video where iPhone app developers are reading their 1-star reviews (note that parts of this video are NSFW). While superficially the video is funny, it fundamentally demonstrates the issues of customers and customer support. No matter how much blood, sweat, and tears is poured into software (and to any product for that matter), some customers will always show disdain and disrespect. But that’s the cost of having customers and doing business.

More Recent Articles


Thoughts? Feedback? Let me know – @eli4d on Twitter or eli4dcom on Snapchat (I’m still experimenting with Snapchat)


The eli4d Gazette – Issue 010

Issue 010: 2016-07-20

Tech Pick

I came across a Peter Norvig article. It’s an interesting article and perspective that focuses on using deliberate practice on the craft of programming. Of course, the assumption is that one is approaching programming as a craft.

Freakonomics had two episodes about deliberate practice. The first episode is a conversation with the research psychologist (Andres Ericsson) that studied it. The second (bonus) episode is a conversation with the man who popularized the concept of deliberate practice (i.e. Malcolm Gladwell) and the differences between what he wrote about and what Andres’ research revealed.

Media Pick

The 99% Invisible podcast hits it out of the park with an episode about intentional unpleasant design in public spaces. The Unpleasant Design book looks like quite an interesting read.

The Future of Education

I was talking to a co-worker recently about his four and a half-month-old son. When we talked about education, he said something that surprised me – “I’m going to teach Eric everything I know, and I’m not going to encourage him to go to college.” When I asked if he would encourage his son to make his own business, he responded with “maybe, but I rather he works on open source software and helps change the world.”

We further talked about the whole educational upheaval that is currently happening – boot camps for software development, Khan Academy, nano-degrees, Coursera’s removal of hundreds of free courses and the general idea that all educational information that you need is “out there” or better said “right there” on the internet. This information availability with so-called personalization would seem to be a current and future trend.

What will education look like in 20 years? While my co-worker disagreed with the need for a college education, he did agree that it can provide a social/networking aspect that individual web access from home cannot. After all, how much better are your chances to get work at a start-up if the founder or some member of the executive team comes from your alma mater?

I’ve always wondered about the Star Trek (ST) universe and its nature of education. In that world, the focus seems to always be on Star Fleet Academy. But what about the mechanics that service the ships? The construction workers? The suppliers of replicators and other fantastic technologies? How do they fit in?

In the ST world are you assessed when you’re a child over a period of time, and a customized educational path is made for you? And if this is the way that works, then does a very specific education help you as an individual become a well-rounded individual? Or are you a ‘silo-ed’ person that knows how to do a very specific job with the expectation that you’ll stick to this path and be ‘happy’ with it? What does happiness mean to a person in this world? Where is individual purpose in such a world?

I did a couple of Duckduckgo searches, and the only relevant information that came up was a comment on old forum from a woman named Karen Henke ( http://www.futureofeducation.com/forum/topics/star-trek-a-vulcan-education):

I saw the movie Star Trek last week and enjoyed the action, the characters, the story, and the vision of the future…except for one thing. The future of education portrayed on the Vulcan planet consisted of individuals in pods repeating back to a disembodied voice. It seemed to show the personalization and individualization of education, but missed collaboration and social learning entirely.

Later in the movie, the skills needed to succeed were collaboration, problem solving, and the ability to work together as a team with each team member having specialized skills. Perhaps the cadet education was radically different?

This was an interesting perspective on Vulcan education as portrayed in the movie and I suppose it’s just as valid for the reflection about an earth-bound education.

My view is that presently – a bachelor degree is the new GED. In other words, most jobs tick off the undergraduate education checkbox as a basic requirement. A master’s degree provides a bit more distinction with a Ph.D. being a much bigger distinguishing factor (especially if one wants to teach in a 4-year college). Besides this checkbox, a college education can provide an important network of people that may make the job search easier. Consider for example that you graduated from Acme University and the CEO of the start-up that you’re approaching is also from Acme. Alternatively, a university-based network that can help you reach individuals at companies that you could not otherwise approach.

This is all present stuff – what about the future? What about the education in Eric’s time and beyond? Will he have the illustrated primer described in The Diamond Age and will that help him? I think that Karen hit the nail on the head in that forum post concerning collaboration and social learning. If personalized education is a click/swipe away (or whatever gestural UI there is in the future) and anyone and everyone can learn whatever they need – then where does one learn about social based interaction and problem solving?

It’s easy to fall into a Cassandra-ish trance of OMG the future will be composed of subject specific individuals that are walled off from the rest of the world. It’s easy to stomp our aching generational feet and claim that all is lost because of technology. But I think that this is a false approach.

I find my hope in a recent visit to a Peet’s Coffee. This Peet’s was near a community college, and when I sat at one of the bar chairs, I noticed this community college student sitting two chairs away. She had a notebook open (the paper type), with a laptop in front of her, and white ear buds running to her iPhone 6S. And right there on the iPhone screen was a FaceTime connection to another student. She was collaborating with that student through FaceTime while working at a coffee shop that was buzzing with people and activity. Social learning – check. Collaboration – check. Being in environment that has other humans – check again.

I think that as long as we are human, social and collaborative learning is not going to go away. Whether the bridge of such interaction is an ancient campfire or a FaceTime connection, it’s still there. Technology is just like that Promethean fire – it’s a tool and as a tool, it can connect us or put significant distance between us. It’s our choice in terms of both the interaction and the technology that we choose. To be human is to to be social and to collaborate – whether introvert or extrovert. It’s in our nature, and future generations will use whatever technology is commonly available to do this interaction.