Algorithms Online Book

Jeff Erickson, professor at the University of Illinois, has published an excellent book on algorithms. He will be self-publishing this content as a paper book, but the online copy will remain available.

“I never hear anybody mentioning him but Jeff Erickson’s ‘Algorithms’ textbook [1] has some of the most lucid explanations I’ve come across. CLRS is often times impenetrable and for the times I didn’t like its explanation of something I turned to Jeff Erickson’s book and it hasn’t failed me yet. I’d urge anybody trying to solidify algorithms and data structures to take a look at it.” — stuxnet79

Asset Attack Vectors

by Morey J. Haber, Apress 2018

The author works for a vendor of expensive computer security systems for large companies. In his role, he visits customer sites to install and customize the product. This book talks of the kinds of vulnerabilities these products address. But jump ahead to one of the last chapters, ‘Tales From the Trenches” and read this first to understand his point of view. Then you may want to read the rest of the book, which is strong on project management and customer support.

Apress needs to do more editing. It seems possible that no editing was done on this book, at least the parts that I read.

Java by Comparison

Java by Comparison, Simon Harrer et al, Pragmatic Programmers, 2018

I really wish I had read this book about two weeks after I started working with Java.

The book gets straight to the point, as it works by example, not by dry description. Each two page example shows half a page of Java code, unremarkable, code which would be normal for many programmers in many companies. On the facing page, it shows slightly changed code, and the changes might seem trivial. Now read the description and see that the changes are very important for readability and maintainability. Just common sense, you will say. But more than this, it is a matter of code quality. Maybe you are already writing quality code, but if not then read this book and you will start writing better code automatically without much thought.

This book is for Java, but much of it applies to Python or other languages. For example, p76, Always Catch Most Specific Exception. And the chapter on naming conventions will be different in the details, but the core suggestions ring true.

Read more about the book at the book’s website.

CSS Definitive

CSS
The Definitive Guide : Visual Presentation for the Web
By Meyer, Eric A.
O’Reilly, 2018

Topics:

  • Selectors, specificity, and the cascade
  • Values, units, fonts, and text properties
  • Padding, borders, outlines, and margins
  • Colors, backgrounds, and gradients
  • Floats and positioning tricks
  • Flexible box layout
  • The new Grid layout system
  • 2D and 3D transforms, transitions, and animation
  • Filters, blending, clipping, and masking
  • Media and feature queries

Network Programmability and Automation

Network Programmability and Automation

By Edelman, Jason
O’Reilly, 2018

People who already know Git, Python, data formats and Linux may be annoyed to find them introduced here. But skip forward to the sections which explain Netconf and how to automate network configuration.

Also, people who know Continuous Integration may be annoyed, but there is a valuable discussion of company culture: management buy-in is critical.

Topics:

  • Python programming basics: data types, conditionals, loops, functions, classes, and modules
  • Linux fundamentals to provide the foundation you need on your network automation journey
  • Data formats and models: JSON, XML, YAML, and YANG for networking
  • Jinja templating and its applicability for creating network device configurations
  • The role of application programming interfaces (APIs) in network automation
  • Source control with Git to manage code changes during the automation process
  • How Ansible, Salt, and StackStorm open source automation tools can be used to automate network devices
  • Key tools and technologies required for a Continuous Integration (CI) pipeline in network operations