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.”
No Starch Press has published a number of programming books that impress me, both in their depth and in their accessibility.
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.
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.
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.
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.
This is the first edition of this book to be published by Pragmatic Bookshelf, which I believe is an excellent fit as a company for the book’s content. The second edition was published back in 2000 by a publisher who specializes these days in a different sort of content. Plus, I love The Pragmatic Programmers series by Pragmatic Bookshelf and this history contained here belongs in this series. Good move for both the authors and the publisher.
Fire in the Valley, Third Edition is subtitled The Birth and Death of the Personal Computer, and for good reason. The book is a history of the types of computers that people bring into their homes, starting at the very beginning when this was just a dream for a few stalwart hobbyists willing to build their own computers. It continues through the usual suspects like MITS and Apple all the way to the present day when computing power has been grafted in to so many different devices that the meaningfulness of having “my own computer” isn’t quite the same as it once was.
The book covers not only historic events and figures, but also issues and philosophies that had an impact of the birth, growth, life, and death of many companies along the way. It also includes a ton of first-hand accounts from key players that make the story rich, interesting, and fun to read.
While this is being sold quite rightly as a history book, perhaps it should receive more fanfare as a chronology of a revolution, of a sweeping cultural shift. I lived through much of the era described in the book (I bought my first computer in 1981) and can easily remember a time when there were only three or four people in my school who had a computer at home, when there was no computer lab, or when the first computer labs were created and filled with Commodore PET computers that had no software other than an operating system, so there was nothing for students to do with or on them. Society is indeed different, and this book describes integral and foundational reasons why and how that change occurred. If this sounds interesting to you, this book is easily the best one I have encountered on the topic. That was true of the previous edition, and is even more true today with the third edition. Pick it up!
I have a new edition of Ubuntu Unleashed 2015 Edition (affiliate link), now available for preorder. This book is intended for intermediate to advanced users.
I also failed to mention on this blog the newest edition of The Official Ubuntu Book (another affiliate link), now in its eighth edition. The book continues to serve as a quality introduction for newcomers to Ubuntu, both the software and the community that surrounds it.
The LEGO Neighborhood Book is another addition to the series of cool LEGO books published by No Starch Press. In it, you find a set of instructions for building anything from small features like furniture or traffic lights to large things like buildings to populate an entire neighborhood. Unlike the creations of my youth, these buildings are detailed structures. Gone are the standard, boxy things I used to make. Replacing them are fancy window frames, building mouldings, and seriously beautiful architectural touches. In fact, many of those features are discussed and described, giving a context for the builder to understand a little bit about them. Also included are instructions for creating different types of features to put in those buildings. Everything from art work to plants to kitchen appliances is in there.
I’ve said so much about the books in this series, and it all holds true here, too. Part of me feels bad for the short review here, but the other part of me hates to repeat myself. In this instance, the praise of the past still applies. If you are a LEGO enthusiast, this is worthy of your consideration. Pick it up and take a look.
Just about all of you reading this know that I am a technical writer. One of the things I do to keep up to date with the latest trends in the field is read. I read books, articles, blogs, whatever I can find that relates. I especially enjoy Mark Baker’s blog, Every Page is Page One. Baker consistently posts articles that make me think, and in good ways. When I heard he has a book out, I contacted the publisher immediately.
As a side note, Baker’s publisher, XML Press, consistently produces books that I find useful. Every one I have read is well-written, authoritative, and filled with real-world experience and practicality.
Every Page is Page One: Topic-based Writing for Technical Communication and the Web shares the first part of its title with the blog, but the content is not directly from the blog. Rather than a collection of posts on assorted topics assembled into book form, this is a well-thought-out and well-organized text. In it, Baker observes that documentation projects tend to think about technical writing from a very book-centered paradigm. This was once ideal, but in the age of communicating technical information electronically, it forces limits on the end product that hinder the true goal of technical writing, the goal of delivering the right information at the right moment to the person who is seeking it. As someone who is not only a technical writer, but who also has a degree in information resources and library science, I have multiple reasons for supporting this goal.
What Baker does is give tangible form to thoughts and ideas that he, other technical writers, and even I have had in the abstract. How do we provide needed information to people who seek it in an age where the web makes almost anything searchable? Do manuals still matter? What about other forms of documentation? Are there changes to our style of communication, to our style of writing and presenting information, that will make the information seeker’s task easier? Baker discusses serious and realistic ways we can improve our field. It is all organized around the idea that we can no longer control the order in which information seekers will consume or even find our information, that every page (in a documentation wiki, for example) should be created in a way that enables a user to immediately understand and acquire what they need when they need it. Since we know we do not have this control like we had in a printed book, we must modify how we write and present information to fit the expectations of the seeker.
I enjoyed reading this book. I have benefited personally from reading this book. I am taking this book in to my workplace and sharing it with the other tech writers there and I believe our workplace and our employer and our customers will benefit from this book. If you work in the field, I’m convinced you will, too. The whole book is good, but my favorite parts are Section I, which lays the foundation in five chapters, and Chapter 22, which gives very practical and useful advice for making your case to others when you begin to try to make the changes the book describes.
I don’t review everything I read. Not by a long shot. I generally have 3 or 4 books being read at the same time stashed in different places in my house. Today’s book is one that I bought and that I think deserves a wider audience. It begins by separating the idea of nations from states. Nations are essentially groups of people who share a common culture, ethnic language, or historical experience. States can be made up of nations, as in the nation-states of historic France or Turkey, but nations can exist outside of states, such as the Kurdish or Palestinian nations today.
American Nations: A History of the Eleven Rival Regional Cultures of North America postulates that North America, including Canada, the United States, and Mexico (at least the northern part), is made up of eleven nations, each with its own unique historical roots, norms, mores, and cultures and that it is the differences between these nations that create the political and occasionally violent turmoil in the region, especially within the United States.
The author uses a historical narrative to describe the beginnings of each nation, and specifically the reasons its founders felt it necessary to leave their established homes elsewhere and settle in a new land. Some wanted to create religious utopias. Others wanted to escape the control of tyrants. Still others wanted to find a land that they themselves could control as new tyrants, feudal masters of their own hierarchical kingdoms. Native Americans are not forgotten, but just as in history, they are primarily relegated here to the role of conquered indigenous and their histories and interactions are mostly, but not completely, ignored except to factually and clearly describe the dastardly ways with which native peoples were usually treated.
Maps from the book have been published in articles like this one from Tufts Magazine from Tufts University and are worth a look at this point in the description. The linked article also gives a listing and short description of each nation, long enough to give a sense of the idea, but not enough to give the full argument.
The book has left me with several takeaways, and these are why I think it is worth reading for anyone with an interest in North American, and especially USA history, politics, and culture.
Talking about red states vs blue states or Republicans vs Democrats or even The North vs The South forces extreme simplification of more complex issues, beliefs, and trends.
Thinking that “everyone in the Midwest” USA thinks or believes the same is naive–this is actually one of the more diverse sections of the country, which is why it always seems to be the power broker or swing voting area. In fact, it has historically been the buffer between the Yankee north and the Deep South extremes of the spectrum on almost every debate.
American history is presented very differently to children in each of these national areas. The obvious example is that what people who grew up in Yankeedom call “The Civil War” is called “The War Between the States” in the Deep South and often also in Tidewater and Greater Appalachia. However, this is only an obvious example and are there many less-obvious examples that I didn’t realize exist.
The men who made the decisions while creating the United States of America as a state sharply disagreed on many issues and for its first hundred years it was not certain the state would persist.
American Nations gives a clear description of each group, its stated motives, and its actions and uses these to dispassionately explain thought and voting trends and more across the areas. It follows these across time as historical events unfold that cause power to rise and fall, especially as the nations expand geographically and how each chose to do so–note, each nation did so very differently from the others. The intent is to help the reader grasp the layers of meaning, communication, alternate understandings and perceptions of events that make up the continent and especially the United States. Knowing this helps both the insider and the outsider grasp the difficulty inherent in trying to unite people across the nations toward any common goal.
As a supplement to a typical (lacking) education in North American and especially American history, I consider this book a quality companion to Howard Zinn’s A People’s History of the United States; this book is less political, but I don’t think it will be less transforming for the reader.
The LEGO Adventure Book, Volume 2 is another hardcover book. This time, the volume includes a series of about 40 step-by-step building guides that are similar to what is provided when you buy a LEGO kit and pictures of many more built models for further inspiration. What I said about the first book in the series also applies here, so I’ll start off by quoting myself:
The illustrations in this book are stellar and the models are outstanding. Anyone looking to be inspired to build more interesting and more beautiful things will find this book thrilling. The book follows a loose story line focused on an adventure, a quest to learn how to build interesting and complicated things with LEGO. The story line is neither vital nor distracting, it just gives an fun excuse to move from idea to idea. This is [another] book that I expect my kids to enjoy (ages 8, 10, and 11).
If you liked the first volume, you will like this one. Along with the abundance of new ideas and building guides, there are some subtle refinements to the presentation that make this sequel even more enjoyable than the first volume. For one, there is a new focus on imagination with a limited palette, such as when a builder has only a few LEGO parts to work with rather than a limitless supply. This is a nice touch as it helps with a positive “I can do it” attitude rather than the common sales tactic that starts by building a sad “I don’t have the parts they have” feeling in the builder. To be sure, there are plenty of LEGO pieces in the examples that the reader may not already have, but they are not to focus; the focus is being creative and inspiring the reader. I like that.
The examples and projects are fun, diverse, colorful, and just all-around cool. In addition to the step-by-step instructions for specific projects, like Havoc: A Viper Fighter, where the reader learns how to build one form of space fighter, there are also follow-up pages that break the idea down to the important bits like A LEGO Viper should have… and a list. Then, there are lots of pictures of variations on this theme that use the same basic set of foundational parts to create a wide set of options and variations. This builds on the theme I mentioned above of avoiding the marketing evil of creating discontent and instead using simple basic things to get builders started and then building creativity.
The book contains large projects and small ones. There are space-based builds, earth-based, fantastic and realistic, futuristic and nods to the past. You will build cars, boats, planes, spaceships, homes, businesses, furniture, island getaways, castles, gardens, movie sets, kitchens, and some things I don’t even have words to describe or categories to name. The variety is great.
I have reviewed a lot of LEGO books this year. This is one of my favorites. It just came out, the copyright date says 2014, but I’m pretty sure I’ve seen this at the local bookstore. It is worth a look if you have a LEGO builder on your shopping list.