Junkyard Jam Band

As I opened Junkyard Jam Band, the first thing I thought of was a couple of books I read in the mid-1990s by a man named Craig Anderton. I still have his books covering electronic projects for musicians and do-it-yourself projects for guitarists on my shelf, but they are a bit outdated. The connection is a positive one. I have played guitar for more than 25 years, built my own effects, and even built my own full-on tube amplifier.

Junkyard Jam Band is a worthy heir to the maker-musician throne that Anderton’s books sat on for me. David Erik Nelson does a great job of mixing practical and easy projects with inspiring ideas. Here you will learn how to make some instruments in less than 5 minutes, provided you already have all of the tools and have collected the supplies you need. You will also discover some projects that will take longer, but which are useful as building blocks for larger musical ventures.

I was thrilled to discover a chapter dedicated to a project that I tried more than 15 years ago, just at random. At the time, I learned that piezo pickups and piezo speakers were very similar, so I bought a $1.99 piezo speaker from Radio Shack, cut it out of its plastic case, soldered the leads to a guitar plug jack, and mounted it inside a guitar. It worked! I wish I had potted the project at the time, as it was (still is) a bit noisy, but that procedure is covered in Junkyard Jam Band with the use of Plastidip. Cool idea!

No more spoilers. If you understood any of the contents of the last three paragraphs, take a look at this book. You may find it as fun and enjoyable as I have. It has also given me some ideas for projects that I must make time for soon.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The Smart Girl’s Guide to Privacy

At first I requested a review copy of The Smart Girl’s Guide to Privacy: Practical Tips for Staying Safe Online because I wanted to see whether it would be helpful for my middle school aged daughters. As I got into the book, I found tips and tricks that were helpful to an internet savvy long-timer like me could use.

The book covers topics like controlling what you share and where, keeping your personally identifying information safe, how to mitigate against data loss and cracked passwords, dealing with harassment as a female, and more. The topics range from middle school appropriate up to things that I wish more adults knew and thought about. I found the text easy to read and the tips intelligent and clear. One caveat for the more squeamish adults considering this book for their kids, read it first and make sure you are comfortable with the author’s discussion of things like dating and sexytime activities. I think the discussions are right in line with and perfect for today’s societal norms, but they may be uncomfortable for the more conservative among us.

The book is a quick read, filled with useful links and information alongside the advice. I am passing it on to my girls and will probably recommend that my son read it as well, when he is a little older.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

How Software Works

I really enjoyed reading How Software Works: The Magic Behind Encryption, CGI, Search Engines, and Other Everyday Technologies. The author, V. Anton Spraul, also wrote Think Like A Programmer, which I reviewed three years ago. This book, like the older one, is not a “how-to” book in the sense of learning syntax, grammar, or other programming language-specific information. This is a conceptual book, one that explains the details of what software does algorithmically when performing tasks that seem like magic. The goal is to walk the reader through the most commonly used processes in software, but without using a single line of programming code.

Granted, some of the explanations of the processes are simplified, but these high-level descriptions are clear and accurate. They will be useful to anyone who is curious and wants to understand from a conceptual level, rather than only from a language-specific detail level. This is not a book about implementation, rather one about understanding.

Topics covered include encryption, passwords, web security, movie CGI and video game graphics, data compression, search, concurrency, and route mapping. While the topics are not necessarily connected in the sense that every chapter leads into another or builds on the one previous to it, all the topics covered are incredibly common things that each of us has witnessed being done on a computer. Even better, each is covered with a clear writing style and using explanations that are smooth and unladen with unnecessary jargon. Vocabulary is introduced as appropriate, but a novice could pick up the book and find the prose comprehensible and the topics presented in a way that requires no prior knowledge.

I am impressed. If the topic interests you, you will enjoy and benefit from the book.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

How Linux Works

This is the Second Edition of How Linux Works: What Every Superuser Should Know and is the only Linux-focused book I can recall that has a strong focus on the computer science, what is happening here and why, big picture instead of the how-tos. The reader does learn how to do things, but only after learning conceptually what is happening. This is something that is sorely lacking in today’s computer education classes and I am thrilled to see the author’s focus here. I am convinced that once a person understands the concept of what a computer is, what it does, and how it does so (from a high level), it is much easier to then learn the mechanics. This is important because the concepts apply across operating systems and across time as those systems change their methodology, say by replacing the System V init program with Upstart or systemd.

This is the sort of book that I would recommend for a user who is new to Linux and wants to understand why things work the way they work, not merely learn how to do things. If there is an immediate need to learn just mechanics, perhaps this should then be the second book to read after reading one that focuses on what to do when. Regardless of when they read it, any Linux user who wants to grow in their comprehension of Linux, its parts, and the entire operating system ecosystem will benefit from this book.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Teach Your Kids to Code

Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming is a unique and welcome addition to the recent trend of programming books with a focus on teaching children. Unlike books that are designed for self-study, Teach Your Kids to Code is intended to be used in a collaboration between an adult and a child. This could be a parent working with a daughter or son or a teacher working with one or more students. It certainly could be used for self-study, but I like how the intent and focus is to provide something to do together.

The book covers all the important topics from installing and setting up Python on your platform to creating a game. In between, we are treated to coverage of drawing graphics, first simply using Turtle in Python, and later with animated effects using Pygame. Concepts like math, numbers, and variables; loops; conditions; functions; and user interaction are covered clearly and in a logical order within an interesting and enjoyable context.

Each chapter ends with a set of programming challenges to give the readers a way to practice what was learned in the chapter. Sample answers are made available on the publisher’s website. These are interesting and valuable.

I really like this book. If you are an adult looking for a fun project to do with a child in your life, or a kid looking for a way to interest an adult in learning how to use Python, Teach Your Kids to Code is worth a close look.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Battle Lines: A Graphic History of the Civil War

I confess that I have never been deeply interested in The American Civil War. After reading this book, I’m convinced that the only reason I wasn’t interested is because of how the topic was presented to me. I am now very interested.

Battle Lines: A Graphic History of the Civil War takes the history and scholarship surrounding the conflict which shaped the United States and which still has an impact on its internal politics and struggles and adds what was always missing for me: the human element. Each chapter takes an ordinary, everyday object from the era and uses that object to begin a vignette that demonstrates how the war affected real people. We are given solid history, but within a context that gives the facts meaning. As Jonathan Fetter-Vorm did with Trinity: A Graphic History of the First Atomic Bomb, a difficult and complex topic is deftly broken down into easily digestible portions along with a moving and real sense of why I as a reader should care.

The artwork in the book is powerful and evocative. The narrative is cinematic. It is not hyperbole to say that I was transported into the story while reading, to the extent that I often forgot I was reading; I was so moved with emotion that more than once I found myself in tears. Combine this with the solid presentation of historical facts and I am left with a hunger to know more. For this, I say this book belongs in every school library in the country and on the shelf of anyone interested in good art, excellent storytelling, and careful scholarship.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The GNU Make Book

The GNU Make Book is intended for people who already have an understanding of GNU Make, what it is, and the basics of how and why someone would use it. The reader is assumed to know enough about programming and source code, about compiling and creating software executables to not need an introduction. The book begins by talking about setting environment variables in your makefile. If you know what this means, you will likely benefit from the book. If you don’t, you aren’t ready for this book.

The GNU Make Book has six clear chapters, arranged in a logical order:

  • The Basics Revisited covers topics like variables and version checking in your makefile.
  • Makefile Debugging helps you find problems with tips and tricks like variable tracing and dynamic breakpoints.
  • Building and Rebuilding uses example makefiles to demonstrate things like automatic dependency generation and rebuilding under specific circumstances.
  • Pitfalls and Problems clarifies many troublesome aspects of makefiles and helps you avoid common difficulties.
  • Pushing the Envelope takes you beyond the typical use of make with a few cool ideas.
  • The GNU Make Standard Library works as a reference for an open source project started by the book’s author, John Graham-Cumming, to collect and provide common functions that makefile authors “end up writing over and over again.”

I think this book is fantastic. It does have one weakness that, once addressed, would be likely to broaden its appeal. Many people who want or need to learn to use GNU make more effectively do not yet have the foundational knowledge necessary for reading or benefiting from this book. That could be remedied in a 15-20 page introductory chapter covering topics like “what is make?” and “how is make typically used?” The descriptions could be short, but would set the context for the rest of the book and ease the nervous reader in. Perhaps starting with something like, “GNU make is a tool that enables you to automate the generation of program executables from program source code” would be useful and could be followed by, “This is typically accomplished by writing a Makefile, which includes a list of instructions for make to use as it does its work.”

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Build an HTML5 Game

No Starch Press has published a number of programming books that impress me, both in their depth and in their accessibility.

Build an HTML5 Game is intended for people who already have a basic familiarity with HTML, CSS, and JavaScript. This book takes you beyond the typical “let’s introduce tags and build basic web pages” stuff you usually see and walks the reader through building an entire browser-based game, start to finish. The programming starts immediately in Chapter 1, which is cool. All the important facets are covered from sprite animation, transitions and transforms, game logic, levels and sound, and quite a bit more.

The reader who is most likely to benefit is the one who has at least a little programming experience, but wants to broaden their skills with an entry into game development. To that end, I suggest you already have a little experience making web sites and using JavaScript and jQuery. If you have previous experience developing Flash games and want to move to the present and future with HTML5, you will also find this book useful and an enjoyable way to get started.

I really enjoyed reading Build an HTML5 Game. The writing is clear and easy to follow, the examples are good, and the concepts provide a solid foundation on which you can build. This is not a comprehensive “everything you will ever need or want to know about game programming” sort of book, but rather a clean and enjoyable entry that helps you over the first hurdle of writing that first game. It then gives you ideas and tips to help you know what else is out there so you have a bit of a roadmap to continue learning as you figure out what sorts of games you want to create.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

The Cartoon Introduction to Philosophy

I like this sort of book, the type that combines complex ideas with approachable expression and style. It is even more enjoyable when I’m already interested in the topic.

The Cartoon Introduction to Philosophy provides a solid, basic foundation to the thoughtful contemplation and interesting ideas in philosophy. It is scheduled to be published in April 2015.

The book presents its information using an enjoyable graphic style that is well done and pleasant to the eyes. The topics are broken into six chapters, each of which builds on the previous. The order is logical, which is good for a book on philosophy, and is actually where we start after a short introduction. Logic is followed by a discussion of perception. This leads to a discussion of the mind, free will, God, and ethics.

The cartoon narrative that is the vehicle for these discussions uses a guide, Heraclitus, one of the early philosophers who predated Socrates. He takes the reader on a journey from the beginning to learn about philosophical thought from the earliest stage to later ideas that built upon, and often contradicted, them.

Most of the big names are mentioned along with a brief description of their main themes. This includes all your favorites across time, such as Plato, Descartes, and Mill. In total, I counted more than 20 different philosophers introduced. That is great in a comic-style book of 168 pages. The introductions are short and necessarily simplified, but this provides an excellent beginning to help the reader get the big picture.

I recommend the book for anyone from later elementary school through college who does not already have a basic understanding of philosophy and the main schools of thought.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?

Learn to Program with Minecraft Plugins

My kids love playing Minecraft. I run a server for them. I would love for any of my kids to learn to program (and also to take over the server admin duties from me). This book immediately struck me as having great potential.

Learn to Program with Minecraft Plugins

Learn to Program with Minecraft Plugins: Create Flying Creepers and Flaming Cows in Java
starts slowly, but it says it is going to start slowly. As it must, the book begins with coverage of topics like installation and configuration. This is the only dull part of the whole book, and I don’t think that could be helped.

Once we get to the meat of the material, things pick up considerably. I love how the author chose to give a high level view of each topic first, to orient the reader. While doing so, consistent calming statements are made to reassure the reader that it is not necessary to understand everything being said at this stage. Then, once the big picture is painted, the details are filled in. The accompanying explanations are clear and written in an enjoyable manner.

I love how topics like pseudo-code are explained almost as an aside, but in a way that makes them seem almost obvious, as in “Oh yeah, why wouldn’t a programmer write something like that first to help the process along?”

Each chapter builds on the knowledge from the previous chapters while introducing topics in a logical order.

Almost any programming book will work for a highly motivated and brave student. However, this is one of those special books that I believe to be suitable for a tentative, interested-but-scared sort of student.

I’m impressed by the author’s ability to combine accurate details and descriptions of complex concepts in a way that I’m certain my kids could grasp and later apply to other programming languages and environments, should they wish to. Albert Einstein is reputed to have said, “If you can’t explain it to a six year old, you don’t understand it yourself.” Author Andy Hunt has deftly proven himself as one who understands. That he is also able to express these ideas to a novice-level audience without talking down to the reader is exceptional.

Disclosure: I was given my copy of this book by the publisher as a review copy. See also: Are All Book Reviews Positive?