Skip to content

Month: March 2010

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.

Ubuntu – refreshing the brand

For years people have complained about Ubuntu’s default color: brown. While I liked it, and while the last few releases have been more orange than brown, it was time for a new look. Jono Bacon has made an exciting announcement on his blog, with pictures, of the upcoming new look. I like it.