Archive for the ‘Books’ Category


Saturday, January 22nd, 2011

Besides writing software of all sorts, another fascination of mine since I was a kid has been robotics. Recently I finished reading the book “Almost Human:Making Robots Think” by Lee Gutkind. The book was written during a period spanning 2003 to 2005, and published in 2006. Before iPads or even iPhones being sold! A lot has happened in the field of technology since the publishing of the book, and I can only imagine what strides they have made since then. It would be interesting to go and find out what new is going on at the Robotics department in CMU, and how much further they have progressed in their efforts since then.

One interesting take-away was the concept of in-experienced, and slightly naive, yet bright (usually young) individuals tackling really hard problems with no apparent sets of preconceived notions of what isn’t possible. I think it is a valuable lesson to balance applying past experiences plus keeping and almost child-like view of a problem to come up with innovative solutions.

One other thing that struck me was how disorganized and uncoordinated the efforts to develop the hardware and software was. Part of the problem is that no one really knows what is going to work, so both the software and hardware built by trial and error. The problem was that so often they ran into a lot of software integration problems. Not necessarily with interfacing with the hardware itself, but with coordinating with other software modules with the robot. I got the feeling, and it could be from just the way the book was written, that not a lot of real engineering went into the software. It truly was just hacked together with varying levels of quality and success.

I recommend the book for anyone who finds the field of robotics at all fascinating. I’m sure in a few short years, everything they attempted to accomplish will seem almost basic and obvious as they move forward coming up with new amazing technology. But ultimately, as usual, software is key.

Tapworthy: The Essential iPhone Developer’s Book

Monday, August 2nd, 2010

“Tapworthy: Designing Great iPhone Apps”
by Josh Clark
O’Reilly Media
320 pages
$39.99 dead-tree book
$31.99 digital book (look for periodic discount codes on

Usually, when I seek out a technical book, I tend to look at what O’Reilly has to offer on the subject first. I have always found their books to be both informative, and usually actually fun to read… generally not an easy feat when it comes to technical subjects. Josh Clark’s recently published book, “Tapworthy: Designing Great iPhone Apps” continues this fine tradition.

After you have read Apple’s iPhone Human Interface Guidelines (usually referred as “HIG“), before you write a single line of code, and even before you start designing that next great app, take a short amount of time to read “Tapworthy”. It is a blend of philosophy, pragmatism, and enlightening First Person views into the development thought process of developers of some well known iPhone apps, including Twitterific, Gowalla, PCalc, and USA Today.

Note: Even if you are not writing an app targeted at the iPhone, but some other mobile platform, such as Android, WebOS, or Windows 7 Mobile, don’t let that deter you from reading this book. Apple went to a lot of trouble researching human interactions centered around the mobile form factor, and Mr. Clark brings much of the findings into the topics he covers. It won’t mean you’ll be writing an iPhone clone app, but an app that follows some logical, and reasonable, guidelines that will make the user experience that much better.

While I often tend to skip a books’s Introduction, don’t skip it in this book. The last section, “Advice from the Real World”, is worth half the price of the book alone. Copy this page and hand it to any prospective clients that come knocking at your door asking you to do their killer iPhone app idea, to give them a reality check on the time and effort to do it right:

Great apps seem effortless, and the best make it seem as if the design process came fast and easy. That’s rarely true. No matter how sensational the designer or developer, designing a great app takes hard work and careful consideration.

The first three chapters, “Touch and Go”, “Is It Tapworthy?”, and “Tiny Touchscreen” were the most thought provoking of the chapters, and are applicable to any small mobile platform. Here is where the philosophy of mobile app usage and development is addressed. As any good book, these chapters set up the basis for the remaining chapters where it is applied discussing the various flavors of content navigation models, controls indigenous to the iPhone, and general product presentation tips. The themes “Less is More”, and “Focus, focus, focus” emerge, and Mr. Clark’s helpful guidelines of, “Rule of Thumb”, “The Magic Number is 44”, and “Designing to a 44 Pixel Rhythm” all stand out and will go a long ways in helping the developer create an app that is not too busy, too crowded, or too difficult to use.

The remainder of the book covers the material that is found in Apple’s HIG documents, but in no way should it be considered a substitute, nor should it be passed over. On the contrary, they should both be read together, as they compliment each other. “Tapworthy” has many little gems sprinkled throughout these chapters that makes even an experienced developer think, “Ah ha!”. Subtle nuances of proper usage for various UI bits, working with gestures, working well with other apps, and general presentation. “Tapworthy” gives the “when” and “why”, whereas Apple’s HIG gives the “what” and “how”.

I thoroughly enjoyed reading “Tapworthy”. I find the end of chapter summary “Touchpoints” useful for returning back to refresh one’s memory on key concepts after having completed the book. The various diagrams used to help illustrate key points throughout the book were very helpful, although iBooks had some formatting issues. However, only once did I have to go to my physical iPhone to get an visual clarification. Each chapter was sure to contain a few little morsels of information that I could step back and apply immediately to my current project (even though it is for the iPad). I will certainly go back and review old shipping apps and apply retroactively as appropriate.

I particularly appreciated the interviews with other developers. Where it could have been a big ego-fest for them, in actuality each was enlightening and illuminating, and in some cases humbling as they revealed their early failings and missteps. While you might not 100% agree with their design decisions, you can understand where they were coming from.

I rate this book as a must read for any iPhone developer or prospective developer. Of particular value are the Introduction, and chapters 1 through 3, to any mobile app developer, iPhone or otherwise. I think it will be the rare developer that won’t learn something from this book that will make their product(s) that much better. At the very least, a developer will have a much better understanding of basis of various Human Interface Guidelines requirements that were conceived and established by Apple.

Once again, O’Reilly has published a book that broaden my knowledge and was compelling to read. I look forward to seeing if Josh Clark will come out with “Touchworthy: Designing Great iPad Apps” in the future. You hear it here first, folks.

This book, and this book review, was entirely read and written on an iPad using Apple’s Pages, then posted to this blog via the WordPress iPad app.