“Domain Specific Languages” by Martin Fowler

In 2011, Martin Fowler wrote “Domain Specific Languages” published by Addison-Wesley. Examples of domain specific languages you might have encountered before are regular expression specifications, Makefiles, Direct3D’s high level shader language (HLSL), OpenGL’s GL shader language (GLSL), the Wavefront object file format (.obj) or input specifications to the compiler tools lex (.l) and yacc (.y). Fowler defines a domain specific language as “a computer programming language of limited expressiveness focused on a particular domain.” Domain specific languages (DSLs) have been around for a long time, but to date there hasn’t been any general treatment of the techniques and characteristics of DSLs in general, as opposed to the traits of a particular DSL. Fowler’s book is a good first entry.

Read the rest of this entry »

“Heaven and Earth” by Ian Plimer

“Heaven and Earth: Global Warming, the Missing Science” by Ian Plimer is a multidisciplinary synthesis of scientific research around the questions raised by the theory of anthropogenic global warming. Anthropogenic global warming is the theory that changes in climate are due to the activities of the civilization of mankind.

Read the rest of this entry »

“Mining the Sky” by John S. Lewis

“Mining the Sky: Untold Riches from the Asteroids, Comets and Planets” by John S. Lewis is the story of how every human being on Earth and their descendents can live like kings if we only try. The book opens with a quote from William Jennings Bryan:

Destiny is not a matter of chance—
it is a matter of choice.
It is not a thing to be waited for—
it is a thing to be achieved.

That, quite simply, is a summary of where we are today. Just as we chose to “go to the Moon and do the other things”, we can choose to expand the horizon of human existence beyond this one blue marble and bring the riches of the solar system to our feet, or we can stay outside the store looking through the glass at the toys we will never have.

Read the rest of this entry »

“Xcode 3 Unleashed” by Fritz Anderson

My first exposure to Macintosh programming was with THINK’s Lightspeed Pascal in 1988. I was a graduate student at the University of Utah and the teaching assistant for the introduction programming course using Pascal. The student machines were Mac SEs running Macintosh System 2. Pascal provides a fairly encapsulated runtime environment to simplify its use in teaching programming, so it wasn’t really “Macintosh programming” although you could interact with the toolbox if desired.

Twenty years later, I find myself working at a digital content company and our content creation applications support both Windows and Mac OS X as a customer platform. While we largely rely on UI toolkits to isolate our applications from UI differences between platforms, we still need to build and debug code on Mac OS X. All of this work is done in Xcode. I was in a weird situation: I needed to know how to use Xcode, but I didn’t need to know how to program Mac native applications. I needed a book that would tell me about Xcode and how to accomplish typical developer tasks in it, but I didn’t need a book that would spend too much time on Objective C, Carbon APIs, Cocoa APIs and other Macintosh specific coding tasks. “Xcode 3 Unleashed” by Fritz Anderson is just the book I needed.

Read the rest of this entry »

“Effective C++”, 3rd edition by Scott Meyers

Effective C++

"Effective C++", 3rd ed.

At the last agile roundtable, I picked up a copy of Effective C++: 55 Specific Ways to Improve Your Programs and Designs, 3rd edition, by Scott Meyers. There are some programming books that I read in chunks over time, like Design Patterns, or Refactoring and then there are books that I prefer to absorb in one big intellectual gulp. “Effective C++” is in the latter category.

Read the rest of this entry »

“Polygonal Modeling: Basic and Advanced Techniques” by Mario Russo

I’ve been working as a programmer for 30 years and in computer graphics for 20 years. During that time I’ve learned a lot about all the fancy ways that graphics hardware draws triangles. However, working on the technical rendering side of things kept me away from the artistic side of things and creates a certain distance between myself as a software engineer and an artist/content creator as a user of my software. I wanted to read a book that would teach me about polygonal modeling from a content creator’s perspective. “Polygonal Modeling: Basic and Advanced Techniques” by Mario Russo is a great book that filled in the gap for me.

Read the rest of this entry »

“Professional Assembly Language” by Richard Blum

I’ve been looking for a good x86 assembly language book for some time.  First, I picked up “Assembly Language Step-by-Step” by Jeff Duntemann (ISBN 0471578142) for cheap as a remainder.  I wasn’t too impressed with that book, mostly because it was a little too short on details, the coverage was oriented towards 16-bit instructions and DOS and the writing style was a little too chatty for my tastes.  It seems that because assembly language is riddled with machine details, authors feel the need to be chatty to get the reader past the details.  Speaking for myself, I’d rather they just went into the details and left the chitchat for cocktail parties.

Read the rest of this entry »

“Working Effectively with Legacy Code” by Michael C. Feathers

I’ve just finished reading “Working Effectively with Legacy Code” by Michael C. Feathers.  This is a book that explains a variety of strategies and techniques for transforming a code base without unit tests to a code base with unit tests.  Unit tests are small, quick tests of software components that validate their behavior. 

Read the rest of this entry »