Ubuntu Up and Running

I just received my copy of Ubuntu Up and Running. I had the privilege of being one of the tech reviewers, so consider this more of an announcement than a review (as well as an invitation to take a look and see if the book interests you–Robin Nixon is a good writer). It is similar in focus to another book that I have contributed to heavily, The Official Ubuntu Book; (5th Ed coming very soon!). Both are aimed at being an introduction of Ubuntu to people new to Linux, but each covers the topic differently and in differing depth and each has information that the other does not.

97 Things Every Programmer Should Know

I have read programming books for years. There was a time when I could write a “Hello World” program in each of seven or eight languages. That time has passed, mainly because I haven’t been intimately involved in any specific software project for many years. Still, I have this habit of reading programming books and enjoying them, perhaps in the hope or expectation that one of these days I’ll find myself with a project in front of me, time to work on it, and motivation to learn a new language or tool to make the project’s vision a reality. Well, here’s the newest book of programming foundational tips that I have read.

97 Things Every Programmer Should Know is a collection of short, two page essays, each by an experienced programmer. The book is a collection of tips and tricks for writing code that works, that is maintainable both by the author and by others, and that will best fit the situation. While the book doesn’t measure up to some of my all time favorites in the genre like The Art of Unix Programming or The Pragmatic Programmer, it wasn’t meant to. This is not an in depth guide to underlying philosophies of coding practices and standards, but quick hit and run articles that would be easy to fully grasp and absorb in short five minute bursts, such as during work or study breaks (which is how I read the book).

Some of the topics included in this book will seem obvious such as “Don’t Ignore That Error” and “Comment Only What The Code Cannot Say,” and some tips are going to serve only as reminders to best practices that are sometimes ignored (to our own peril) like “Check Your Code First Before Looking To Blame Others” and “Make Interfaces Easy To Use Correctly And Difficult To Use Incorrectly,” there are some real gems in the book that aren’t so obvious like one author’s instruction to “Read the Humanities” because they are a great tool to help programmers learn to effectively interact with people and not just software and the advice that says “Don’t Just Learn the Language, Understand Its Culture” so that you will write effectively and idiomatically within each language, rather than writing the same thing using different words.

I can’t say that this is a must-have book for experienced programmers, but anyone at the novice to intermediate levels would certainly benefit from what the book contains. I’ve enjoyed reading it.

Disclosures: I was given my copy of 97 Things Every Programmer Should Know free by O’Reilly as a review copy, I also write for O’Reilly.

Open Government: Collaboration, Transparency, and Participation in Practice

The most basic definition of open government is the idea that people have the right to access the documents and proceedings of government. Being able to closely examine decisions, policies, and procedures is foundational to having the ability to make intelligent and informed decisions as a citizen, especially in a democracy where an informed electorate is vital if good choices are to be made by voters when selecting leaders or holding them accountable.

The Open Government movement is not officially organized as a group or party, rather it is a growing collection of concerned citizens who want to help create better government by increasing citizens’ access to information. It has been heavily influenced by the open source software movement and has similar aims: increased collaboration through making options available to any interested party willing to read and study, increased transparency by making source materials freely available for anyone to peruse and examine, and increased participation by eliminating closed systems wherever possible. While this idea was broadcast most widely in the campaign and early days of Barack Obama’s presidency, this is not a one-sided political issue as much as it is an Enlightenment era system of belief, enshrined in the United States’ Declaration of Independence and Constitution, now being updated for the digital era which is filled with technologies which could make those ideals more easily fulfilled.

Open Government: Collaboration, Transparency, and Participation in Practice is a collection of 34 essays written by a wide variety of people who are interested in both promoting the philosophy of open government and in suggesting practical ways to implement procedures that will assist in applying that philosophy. The range of topics covered is diverse and interesting. Included are thoughts about governmental uses of information technology that currently limit openness and specific recommendations for remedying the problems, creating a wider variety of methods for people to access government data and increasing access across society, enabling greater innovation among those not directly connected to government such as through the creation of specific APIs so that outside research may be more easily accomplished using government collected data (paid for with public funds via taxes and therefore publicly owned data). We have essays that consider new and effective ways for current government officials to communicate more easily and directly with the people who elected them, discussions of how increased openness in government could decrease the influence of monied interests in governmental policy and could replace that with a greater influence by and for the electorate. There are clear and logical presentations on topics like why using open standards for data storage matters, especially with regards to publicly owned data as collected and used by governments, as well as some great arguments for the use of open source software to make government more efficient, transparent, and flexible in a rapidly changing world.

I greatly appreciate that this book exists. I would love for a copy to end up in the hands of every member of the government as well as any interested person planning to run for an office. These are policies that would greatly benefit the original intent of the founders of the United States (of which I am a citizen and where the book was written) and would be useful in any nation willing to carefully read and consider the ideas being proffered.

If this topic is of any interest to you, and I argue that it should be, this book would benefit you in your thinking. Go find a copy and read it.

Disclosures: I was given my copy of Open Government free by O’Reilly as a review copy, I also write for O’Reilly.

Regular Expressions Cookbook and Mastering Regular Expressions

I have a copy of Mastering Regular Expressions by Jeffrey E. F. Friedl on my bookshelf. I bought it a long time ago to try to improve my skills at using regular expressions to search text and check input against desired norms. While that book is clear and well written, I am sometimes a bit impatient and it was taking too long for me to figure out how to do the things I wanted to do and I got distracted or busy before I read enough to complete the task (I ended up using Google and finding what I needed quickly). I have to admit that I still don’t have the regular expression skills I want to have, although this book promises to teach them to me. Someday it may do so.

When I heard that O’Reilly had an upcoming regular expressions offering to add to their Cookbook series, I was interested, but was finishing up my own title in the series. Once my task was finished, I talked to some friends at the publisher and they kindly sent me a review copy of Regular Expressions Cookbook by Jan Goyvaerts and Steven Levithan. Now that I have had time to read through the book, I can say that it exceeds my expectations and hopes.

What I was looking for was a book that would teach regular expressions while giving concrete examples of real life use cases that I could immediately put to work. This book is filled with them.

Chapters one and two lay the foundation by covering the basics of what regular expressions are, using them to search and replace, match text, and other basic skills. This is good, but where the book really sets itself apart is in chapters three through eight, which are overflowing with useful recipes for things like validating ISBNs, finding URLs within text, stripping leading zeros or matching IP addresses (IPv4 and IPv6). The book has an obvious organization scheme, a ton of useful recipes, and a useful index. Finding what you want or need is very easy to do, and unless your needs are especially unique or esoteric, you will probably discover exactly what you require in the book.

The best part of the book is that every example uses a clear format that sets the stage for an easy discovery of needed information.

First, a problem is stated, such as in chapter four’s item, 4.1 Validate Email Addresses, which says, “You have a form on your website or a dialog box in your application that asks the user for an email address. You want to use a regular expression to validate this email address before trying to send email to it. This reduces the number of emails returned to you as undeliverable.”

Next, a solution is defined, with code examples, accompanied by a description of the particular details that are vital to comprehend when implementing the solution. Next, each recipe has a section for further discussion that leads to a deeper understanding of the regular expression being used and the context in which it is being used.

Especially wonderful is that every recipe has very specific and clear code examples for use with Perl, PCRE (the “Perl Compatible Regular Expressions” library for C, which isn’t identical to Perl’s use of regular expressions, even though it tries), .NET, Java, JavaScript, Python, PHP, and Ruby with notes on which specific release versions or variations of each are covered. When differences exist in the implementation in these environments, those differences are clearly noted and discussed. This feature will make life much easier for people who need to use regular expressions in more than one language context and is a feature of the book I appreciate greatly.

The other regex book on my shelf will remain there until that mystical moment “when I have time to study it.” This book will be used regularly as a reference.

Disclosures: I bought my copy of Mastering Regular Expressions, but was given my copy of Regular Expressions Cookbook free by O’Reilly as a review copy, I also write for O’Reilly and have a book in their Cookbook series.

Footnotes in Gaza

Henry Holt and Company recently sent me a complementary advance, prepublication review copy of Joe Sacco’s history in graphic novel format Footnotes in Gaza.

This may be one of the most heart-wrenching books I have ever read. This well-researched history relies on both interviews with eyewitnesses and official documents to provide the information for its powerful telling of a bloody event in 1956 in Gaza when 111 Palestinians were shot dead by Israeli soldiers and many others wounded and scarred. Some call it a massacre, others a dreadful mistake. No one disputes the number of dead nor the painful events of one incident in a long and difficult struggle.

This book is written from the perspective of a historian who is seeking the facts of an event that happened a full 50 years before the research began and shows his struggles with differing accounts, even from people on the same side of the conflict, and the difficulty, or perhaps impossibility, of separating the events of previous generations from the events of the current day. The people involved are human, fallible, full of pain and longing for safety, security and a life of peace.

To tell the story, Joe Sacco uses powerful drawings and shows an impressive understanding of the comic/graphic art style. Every word and image are vital. Not one moment of the reader’s time is wasted. My full attention was on the book from the moment I picked it up until I (grudgingly) had to put it down to do something else. This was true until I finished reading the final page. The author spent a significant amount of time in the Gaza Strip, living in refugee camps and towns with Palestinians. He conducted many interviews and took hundreds of photos while staying in people’s homes and walking the very streets where the events occurred. This dedication shows in the final project which is written and drawn with a voice and perspective that is unparalleled in my research on the region (which is extensive).

This, and other events in the region, deserve far more attention than they receive, but not merely from the angle of politics and warring opinions. These are not covered in this book. Rather, what needs to be seen and understood is how real people and their lives are affected. This book shows that in a way that never succumbs to sappy attempts to provoke pity. It is a dispassionate and clear sharing of personal memories from diverse sources of one main event, often pointing out moments of disagreement or comments that could not be corroborated. It is the events, not any attempt to manipulate the reader, which provokes the response.

If you only read one book about history and foundations for current day conflicts in the Middle East, read this one. I give it my highest recommendation. I will also warn you that it is the first book in a very long time that genuinely moved me to tears, so be prepared.

The Book of Genesis Illustrated by R. Crumb

After my review of another of their books, I asked W.W. Norton & Co., Inc. to send me a review copy of The Book of Genesis Illustrated by R. Crumb. They didn’t respond. However, I saw the book in a bookstore and was so impressed that I went ahead and bought it for myself.

There are two notes on the cover that immediately grab attention.

The first says “adult supervision recommended for minors,” and I agree, at least as far as younger kids go, solely because the book of Genesis itself is filled with stories and themes that children will not fully comprehend or that they are not developmentally ready to deal with, just as a parent wouldn’t let a child watch an intense movie alone or perhaps at all while they are young, something like Schindler’s List for example, because there are things they don’t need to confront or know about quite yet. That doesn’t have anything to do with the quality of the content. There is also some nudity and violence in the book, and although it is of the pen and ink comic illustration variety and merely illustrating what is clearly described in the text, some may not be comfortable with children seeing it in some of the contexts in this narrative.

The second note says “the first book of the Bible graphically depicted! Nothing left out!” This is the first time I have ever seen a graphic version of any portion of the Bible that both included the complete text and also chose not to add anything like dialogue to “help the narrative” or “assist comprehension.” As a result, there is no editorializing whatsoever, neither positive nor negative. The text is presented as it is with illustrations along the way.

I have a feeling that religious people could be offended because R. Crumb is known not to be a religious person. Those fears are not well founded as this text is treated respectfully and with no sense of judgment or editorial comment whatsoever implying anything negative about any belief system. What is presented in the illustrations is what is clearly stated in the text.

It is just as likely that non-religious people could be offended because an illustrator and artist of such quality and stature has chosen a religious text as his subject matter. Those fears are not well founded as this text is stated to have been chosen because of its historical importance and with no sense of judgment or editorial comment whatsoever implying anything positive about any belief system. What is presented in the illustrations is what is clearly stated in the text.

For many readers, the most important facet of this review is the question of whether this work stands up as a piece of art. I wholeheartedly believe it does. Some may not prefer R. Crumb’s style, and this is a pretty typical example of what he has focused on doing for years, but I don’t think anyone could complain that he has not done it well. The illustrations are focused, clear, emotive, and powerful. At times he demonstrates his cultural perspective as a modern-era westerner and some of the motifs are almost clichéd (eg. God is pictured as an old man with long white hair and a flowing beard wearing a white robe, almost Gandalf the White like, but with more hair, a bigger beard, and a larger halo of light around him), but those are the exception, and they don’t progress from overused but commonly understood symbols into caricature or parody. Most of the time the illustrations are interesting with what appear to be culturally appropriate styles of dress and terrain. The bottom line for me is that the illustrations never detract from the story; they add to it by making things more clear.

This is one I will definitely recommend, but in the case of children, only with parental consent.

Nelson Mandela: The Authorized Comic Book

I had very high hopes for this official history of a well respected world leader. The publisher, W.W. Norton & Co., Inc. sent me a review copy last fall and I was immediately impressed with the artwork. Unfortunately, I wasn’t as impressed with the writing.

The history contained in the book is accurate to the best of my knowledge, and Mandela’s life is certainly interesting enough for me to force my way through reading the entire book, but the narrative style is dull and unsuited to the graphic novel format, where one could tell the story much more effectively using images and dialogue instead of treating the artwork as mere illustrations to accompany walls of text.

The bottom line here is that if you are looking for a biography of Nelson Mandela that has good information and nice illustrations, this book is worth your time. If you are looking for a quality graphic novel, using the criteria generally considered for rating items in that format, you will be disappointed. The quality of the art is better than adequate, good even, but the failure to truly adapt the narrative style to the format being used was disappointing. I am glad I read the book for the history it contains, but I ended up giving my copy away after I read it as it is highly unlikely I would read it twice.