Review of MCSD Certification Toolkit (Exam 70-483): Programming in C#

You’re really excited about becoming a Microsoft Certified Solutions Developer (MCSD)! How do you proceed to make your venture a success? Having been through several certifications myself, I understand the importance of having a great certification guide to help you overcome some of the less intuitive parts of the examination process. Tiberiu Covaci, Gerry O’Brien, Rod Stephens, and Vincent Varallo have provided such a guide with MCSD Certification Toolkit (Exam 70-483): Programming in C#. Anyone planning to take exam 70-483 will benefit from this book because it presents the exam topics in a highly organized manner.

Let me get one of the gripes out about the book before I discuss all of the good material though. It seems as if every certification guide I’ve ever looked at includes topics such as, “Why Get Certified?” The problem with these topics is that they waste space and bore the reader. The reader already knows why certification is important, so there is no need to discuss the topic. The reasons for getting certified vary, of course, but the vast majority of people can sum it up in one word, money. Certification will open a door to a better job, help the candidate keep an existing job, or move the candidate one step further up the corporate ladder. The topic is unimportant because the only thing the reader wants to know is how to ace the exam (or at least get a passing score). I feel strongly that the authors could have used the space spent in preaching to the choir to provide additional helps and aids. If your tolerance for less useful material is low, then you’ll want to skip directly to page 11 of the book and start reading “How to Study for the Exam Using This Book.”

After you get past Chapter 1, the rest of the book starts to take on a predictable pattern. You read the theory behind each of the topics that the exam will test. Code Labs give you hands on experience putting the theory into practice. My favorite sections are the Real-World Case Scenario, which helps you understand how the theory is actually used to write an application that could exist in the real world. A problem with many certification guides is that they pursue a purely academic course—this book avoids that particular problem and gives you practical knowledge as well.

Each chapter ends with a Chapter Test Questions section that contains a few questions you can use to check what you have absorbed. The questions will typically be useful for one or two uses, so you need to ensure you read the chapter and go through the exercises before you attempt to try the test questions. Otherwise, you won’t really know whether you have absorbed the material. Personally, I found the number of questions a bit small. The authors could have beefed up this section to provide the reader with a better idea of how the exam will appear.

The Cheat Sheet and Review of Key Terms sections provide an outstanding method for refreshing your memory the day before the exam. One of the mistakes I (and probably many others) made in preparing for a certification exam is to study too hard the night before. If you don’t know the material the night before, you most definitely won’t pass the exam because these exams are designed to thwart people who cram. A reminder, an overview of what you should know, is really all you need the night before. Relaxing and getting the rest you need are essential.

I wasn’t quite sure about the Additional Reading and Resources section found in each chapter. This section is helpful, but only if you’re using the book as a reference after the exam, rather than as a means for preparing for the exam. The authors could have possibly skipped this section in favor of providing more questions or other kinds of hands on learning activities (one of my favorite CNE books used puzzles as a learning aid). Then again, having the book as a reference after the example will likely prove useful too—just don’t cloud your mind with too many competing sources of information before the exam. The trick is to keep your mind clear and focused on your objective (passing the exam).

Overall, the text is written in a clear manner and you’ll find that the authors carefully lead you from one topic to the next. Developers who are already familiar with C# application development may find the book a bit boring because it really does cover all the details. The book is more designed for someone who hasn’t programmed using C# in the past. In fact, the authors recommend that more advanced readers simply skim the book and look for areas of weakness, which seems to be a winning strategy.

Of course, the big question is whether a book is worth the price you pay for it. In this case, you’re getting a bargain. The book is well written and will serve the needs of anyone who needs to take the 70-483 exam. Certification usually brings some significant benefit, so anything you spend on materials today will reap financial rewards in the future. Getting a book is also a lot less expensive than taking a course. Using this book will save you money in the long run.


Review of Visual Basic 2012 Programmer’s Reference

As you might expect, Visual Basic 2012 Programmer’s Reference is a heavy tome at 798 pages. Of course, those pages could be filled with fluff, but that isn’t the case with this book. Rod Stephens does a great job of covering a wide variety of topics that anyone who wants to know how to write Visual Basic applications will need to know. The book starts with the assumption that you have never worked with Visual Studio before. Actually, it’s a good start for some developers who have been coding a while because they are self-taught and really haven’t explored everything Visual Studio has to offer.

The first part of the book discusses using the tools of the trade—a topic that most books seem to miss for whatever reason. I’m not talking a quick overview either. Rod provides six full chapters, 77 pages, worth of material on how to use the Visual Studio IDE for various kinds of application development including both Windows Forms and Windows Presentation Foundation (WPF). This may not seem very important at first, but quite a few readers of my books have problems with the IDE they’re using and even more have no idea that the IDE supports certain functionality. In short, many developers don’t have a firm grasp of the tool that they’re using to write code, so they can’t perform their best work. However, if you’re already completely familiar with the IDE, it’s probably a good idea to skip this part of the book because it is quite detailed. Missing from this part of the book is material on working with Metro applications. In fact, that material doesn’t appear until Chapter 21, so this really isn’t a strong Windows 8 offering from a building Metro applications perspective.

The second part of the book is entitled, “Getting Started,” which I view as a misnomer. Yes, you’re getting started writing code, but anyone who skips the first part really hasn’t gotten a good start. This part of the book introduces the reader to controls, forms, and other objects used to create applications. There are six chapters of this sort of material. Again, you can’t expect to create great applications if you don’t know what objects are already available to you. Developers who don’t really know what objects are available will tend to reinvent the wheel or assume that the language isn’t capable of performing a specific task. Rod does an outstanding job of making the reader aware of what is available and how to use it effectively. There are 100 pages worth of extremely useful material of this sort.

Chapter 13 should have begun a new part. Rod leaves controls, forms, and other objects in this chapter to begin working with applications. It’s one of the few organizational errors in the book, but one that is easily forgiven. The next six chapters, 160 pages worth, discuss basic programming topics such as variable data types and the use of programming structures. Chapter 18 provides an excellent discourse on error handling and will be one of the chapters that even experienced developers will want to read.

Chapters 19 and 20 provide extremely basic, but thorough coverage of database topics. This is not a book about database development. Rather, it exposes you to the topic of database development and you’ll need to obtain another book on the topic to finish your education. This said, what this book is really doing is helping you understand database development at an extremely basic level so that the second book you get, the one specifically about database development, will make sense.

Chapter 21 (which is only 12 pages), likewise, is an extremely basic view of Metro development. Again, this isn’t a Windows 8 book and it doesn’t appear that the author ever intended it to fulfill that role. What Chapter 21 does is introduce you to Metro in a basic way so that you can go on to work with a Windows 8-specific book and make sense of the material it contains. That said, I did notice that Chapter 21 does miss out on a few fundamentals, such as obtaining a license for developing apps. Rod doesn’t appear to mention that the target application will only work when running Windows 8 either (at least, I wasn’t able to get it to run on Windows 7).

Starting with Part III, you learn about Object-Oriented Programming (OOP) techniques in detail. Chapter 22 is a must read chapter because it provides the theory that many books on the market lack. It describes what OOP is all about. It’s tough to understand coding examples when you don’t understand the basis for those examples and Rod fills all of the gaps for you. In the chapters that follow, Rod leads the reader through basic class development, structures, and namespaces. The book then continues with some specifies on collection classes and generics. Again, all of this material is designed around a person who really doesn’t know anything about Visual Basic, so Rod takes time to explain the details not found in other books.

Part IV of the book fills out some basic information needed to create standard desktop applications, such as printing in Chapter 27 and the use of configuration information in Chapter 28. The use of streams and filesystem objects come next in Chapters 29 and 30 respectively. The book closes out with an enormous array of appendices (22 of them) that contain all sorts of useful reference information. After you’ve gone through the book, the example applications and this reference material continue to provide you with long term value.

Overall, this is the book that you want when learning Visual Basic. It provides the details needed to write robust applications quickly. However, getting this information is like getting any other sort of education—it takes time and you must work through the examples. This isn’t a quick reference book, nor is it going to provide you with details about specific technologies such as database development or writing Metro apps. Where the book does touch on specifics, it covers those specifics at a basic level with an emphasis on helping people understand the underlying technology. If you’re looking for a book that provides quick answers, a cookbook approach to solving problems, or detailed information about specific technologies, you really do need to look elsewhere. On the other hand, if you’re tired of being confused by online examples and tutorials that don’t really teach you anything, then this is the book you want.


An Interesting Review

I’m always on the lookout for an interesting book to read. The only problem is that the supply of equally interesting book reviews are in short supply. So, it was with great interest that I read a review entitled simply, Summer Reading, about an interesting sounding book with a really long title, “Agent Garbo: The Brilliant, Eccentric Secret Agent Who Tricked Hitler and Saved D-Day.” The book is written by Stephan Talty and sounds like a real winner—one that I must have for my collection. The book has everything I would want: history, mystery, secret agents, and probably more; all of which is presented by an author who really sounds as if he knows his topic.

The author of the review, William Bridges, is a favorite blogger of mine. He has an easy to read writing style and doesn’t tend to embellish his experiences. I find that I can trust what he has to say, which is more than I can say for the majority of what I read online. Of course, the topic of this post is the review, which I hope you’ll read critically for the style it provides.

Any review that you read is an opinion—never confuse a review with fact. What you need are reviews that match your world perspective. When an author presents ideas, concepts, and remarks that fall in line with your own—you’ve found a reviewer who can help you make an intelligent buying decision. That’s the purpose of a review; to help you understand the product in question well enough to make a good buying decision. Of course, the review has to be well-written. Ask yourself questions such as, “Can the reviewer actually gain insights into the hurdles faced by the book’s author?” A good reviewer presents an informed opinion, one that considers a number of perspectives.

I’ve always felt that good reviews are critical, but also constructive. A review must examine the topic in enough detail so that the reader can understand the reason the author took time to review the book (or any other product for that matter) in the first place. However, the review must also explore both the pros and the cons of the book. Bill always provides these sorts of elements in his reviews, which is the reason I’ll continue to read them as long as he sees fit to write them.

My current book list is a tad tall. People have been kind and sent a few items of reading material my way. However, once I wade through the current pile I’ll read this book and provide my own review of it. I hope that you enjoy my review as much as I enjoyed Bill’s. What do you look for in a review? Let me know at


Review of The Art of Readable Code

I encounter a lot of unreadable code because I work through a lot of code I download from the Internet for learning purposes and rework code from failed projects. So, it was with great interest that I opened The Art of Readable Code by Dustin Boswell and Trevor Foucher. After reading this relatively short book, I’m convinced it should be picked up as a college text. If developers would follow even half the advice in the book, many of the truly weird errors in code today would simply disappear because developers wouldn’t end up overwriting the good parts of other developer’s code due to a lack of understanding it.

The authors rely heavily on humor to make good points about writing code that is easy to read by others. The cartoons are engaging and fun. I wouldn’t necessarily call them funny—some of the jokes are tongue-in-cheek and others are a bit dry, but they’re all in good taste and make important points. As for the good points in the book, I don’t think I’ve ever seen anyone suggest that a developer actually turn to a thesaurus to find a better name for a variable, but the authors make this point on page 9. The point is made in a humorous way—not as a command as I’ve seen some authors do. I did laugh relatively often. For example, “The Ultra Hard Metal Nail Smashing Rod” reference on page 13 gave me quite a laugh. You’ll need to see the reference for yourself to understand it.

You’ll want to pay attention to the frequent Advice blocks in this book. In fact, if you’re short on time, skim the book looking for these blocks (and the Key Idea blocks I describe in the next paragraph) and you’ll improve your coding technique significantly. Some of the advice is obvious to a veteran programmer. For example, on page 25 the authors advise putting max_ or min_ in front of programming elements that describe some sort of limit. (If only novice programmers would follow that simple advice.) I only wish that the Advice blocks appeared with greater regularity later in the book. I would have welcomed advice from the authors on some of the more complex topics.

The Key Idea block is another useful addition in the book. For example, on page 122 you find the authors advocating that you create code that only performs one task at a time. Even though this idea seems quite obvious, you’ve probably seen code that is trying to do too much and ends up not doing anything well. The authors back up their Key Ideas with good coding examples (some relatively complex). Unlike the Advice block, the Key Idea block does appear with good consistency throughout the book and the authors have used it quite well.

The section on Eliminating Variables that starts on page 94 was especially useful for me. I often create intermediate variables while writing an application to aid in debugging it. The authors provide techniques that greatly simplify code without making it much more difficult to debug later. Even so, sometimes you really do need that intermediate variable for a while. The point is that you should simplify your code as it nears production to reduce complexity, provide fewer failure points, and improve performance.

As with any book you buy, this one does forward the author’s agenda. If you follow all of the advice in the book, your programming style will closely reflect the style that the authors use. Anyone who has written a lot of code knows that there are many perfectly acceptable styles of coding. The point is to make your code readable so that someone coming behind you can pick up on your style and quickly discover how your code works. For example, I still prefer to use a form of Hungarian Notation for my applications. Because I apply the notation consistently, my code is readable, but many developers feel that the notation is outmoded. Whether you use Hungarian Notation or not is not the point, the readability of your code is. The authors express their view of Hungarian Notation on page 17—as with many other parts of this book, they take a firm middle ground approach that should serve the reader well.

There is a lot to like about this book. As I said at the beginning of the review, colleges would do well to incorporate it into their curriculum. The authors do press their style of coding strongly at times, but I imagine that if I were writing this book I would do the same things, so I can hardly fault them on this point. The content is a bit simplistic for the veteran programmer at the beginning, so you might want to start around Chapter 7. Overall, I think this is a good and much needed book.

Review of the Sword of Truth Series

The Sword of Truth series is written by Terry Goodkind. It features a number of interesting characters, but the focus is on two characters, Richard and Kahlan. Richard’s grandfather, Zedd, also plays a major role in the book series, but not in the way Richard does. Richard is the Seeker of Truth, which would be an auspicious goal for any hero. The other characters come and go as needed to fill out the various scenes. It’s not that the book series lacks depth due to too few characters—quite the contrary, the book series is actually quite detailed and rich. The series consists of these books (in the order that you should probably read them):


Anyone familiar with the series will see that I left Debt of Bones out of the list. Yes, this book is also part of the series, but take my advice, save it for later. The eleven books that contribute to the main part of the series will take quite a while to read and reading Debt of Bones does present a few spoilers that I would rather not have known. It’s a good book to read after the fact, much like watching Legend of the Seeker (the ill fated television series based on the book) adds to the experience. It’s possible that there are other additions to the Sword of Truth series, but this review doesn’t discuss any of them.

I’m going to try hard not to spoil anything for anyone who hasn’t already read the series by providing a detailed overview of the plot. If you really want to spoil your reading experience, read the reviews on Amazon. However, the series does contain everything needed for a good fantasy. There are the usual heroes and villains. The hero has a pretty girl to protect. As in any good fantasy, magic is a must and you’ll eventually encounter mystical creatures such as dragons.

Terry is a great writer in many ways. His writing style reminds me quite a bit of Tom Clancy, another favorite author of mine. Rather than gloss over the details, Terry writes about them with vigor. It almost feels as if you’re seeing the fantasy world through a camera—the vivid details are nothing short of fantastic. However, reading the details isn’t everyone’s cup of tea, so you’ll see lots of complaints that Terry doesn’t move the plot along quickly enough. It’s true, the plot does seem to drag at times because you’re reading about details that may not matter much to the story. From my personal perspective, I greatly enjoyed the detail because it helped me envision the world of Richard and Kahlan in ways that would have been impossible otherwise.

A problem with the series is that it runs across so many books. Terry must repeat details for readers who could read the books out of order and not know about details in other books. I tried reading one book out of order and the repetition wasn’t a problem at all. However, reading the books in order did leave me feeling at times like I was getting buried in repetition. The series would have been far better if Terry had limited it to four or possibly five books. Leaving out a little of the non-essential detail and all of the repetition would have accomplished the task in a far more elegant manner. However, this is a minor nit that plagues an otherwise well-written series.

Some people have complained that Pillars of Creation should never have been included in the series. I disagree. Part of the reason that this series has kept me interested is that Terry takes side quests. You wander about the four main lands of the series: Westland, The Midlands, D’hara, and The Old World and really examine things. If Terry had never used the material from Pillars of Creation in other parts of the series and used that material effectively, I probably would have said that the book didn’t belong in the series either, but the fact is that Terry does use that material to good effect. It’s one of those situations where you must read with the idea that the author requires time to develop part of the plot for you.

A few people were appalled by some of the graphic detail in the books. I must admit that I could have probably done without a little of that detail myself. There is only so much that I want to know about the blood, gore, broken bones, and other horrors that the protagonist has faced. In this case, the exquisite detail of Terry’s writing didn’t serve to make the series more enjoyable, not unless you’re of the Marquis de Sade persuasion. There were a few small sections that I scanned briefly because I didn’t relish the graphic details in them.

Richard represents many good elements that I have found in few books. His emphasis on loving life and living it to the fullest because you want to do so is presented in unique fashion. Terry does seem to get on the stump at times and I found the long diatribes distracting, but I did approve highly of the way in which Richard presented the facts to others and encouraged them to live their lives. In fact, I’ll go so far as to say that these passages often motivated me to grasp life a bit more strongly and robustly.

The sign of a great author is the ability to do the unexpected—to entertain in a way that surprises the reader. I feel that Terry has succeeded to a high degree in this regard. His solutions to the problems created for the hero and his associates to overcome in the book series are interesting and incomparable. The fact that readers got so worked up about some of the solutions that many of them chose to write reviews about them tells me that the author has achieved that rarest of goals—a strong emotional response. The readers are obviously engaged and fully appreciate the characters that Terry has provided.

Now that I have finished the series, one of the biggest questions I must answer is whether I’d read the series again. A book series of this sort is best when it attracts a second or third reading. I must admit that I’m going to put Richard and Kahlan away for a while, but I definitely plan to take them for another stroll in a few years after I have forgotten enough book details to make the reading enjoyable once again. This is the kind of series where the surprises that the author has included are a distinct part of the series as a whole. You want to read because you don’t know what the author will do with the characters next.

Is this a good book series? It’s not Tolkien, in that the styles are different and the sort of fantasy differs as well. Terry produces a great book that’s an easy read and something that will most definitely entertain, but I don’t really feel it’s a classic. Of course, time could easily prove me wrong. Given what I know now, I’d still buy the books and I’d still enjoy them. I hope that Terry sees fit to produce another series—perhaps one that omits a few of the fit and finish problems with this one.


Review of ADO.NET 4 Step by Step

Microsoft has created a plethora of database technologies over the years. The managed form of ActiveX Data Objects (ADO) is just another in a long series of ways to access data from within an application. Because some older technologies, such as Open DataBase Connectivity (ODBC), are so entrenched, there isn’t any way that a single book can tell you everything there is to know about working with databases from a Microsoft perspective. When you add in all of the potential database products (SQL Server, MySQL, AskSAM, Oracle, DB2, and many, many others), the task becomes impossible. So, when I reviewed this book (supplied to me by the publisher), I didn’t consider completeness from the perspective of providing a single source solution to database management. In fact, given 25 years of experience, I feel that such a book is impossible to write—at least as a single useable volume. When shopping for a database management book, be sure you look for a book that covers both the required access technology (such as ODBC, ADO, or ADO.NET) and the database manager (such as SQL Server or MySQL) that you need for your project.

Tim Patrick has written ADO.NET 4 Step by Step with ADO.NET and SQL Server in mind. In fact, the book is incredibly focused and I applaud the author’s single minded devotion to this combination of technology and product. Other database books I’ve read just don’t seem to get the idea that watering down the message won’t work. While it might be possible to include multiple products in a book, trying to cover multiple technologies seldom works because there is too much to discuss and, even if the author successfully writes about each technology in an unbiased way, the reader tends to become confused. So the first thing you must know about this book is that it’s strictly about ADO.NET and SQL Servertry another book if you need any other combination.

This is the second Step by Step book that I’ve reviewed (see Review of HTML5 Step by Step for details of the other review). As with that other book, this book is heavy on hands on involvement and light on theory, which is just fine because many people learn better using hands on tasks. However, database management is a more complex task than creating a Web page because you have data integrity rules and other issues to consider that simply don’t come into play when working with a Web site. (To be fair, Chapter 12 does discuss data integrity, but mainly from a hands on perspectiveyou end up understanding how, but not what, why, or when.) I mention this because the hands on approach in this book does help you create applications fast, but it doesn’t provide you with everything you need to know to create good applications. For example, the discussion of ADO.NET components consumes a scant two pages. Database normalization is covered in a two paragraph sidebar in Chapter 2. The author is cramming a huge amount of theory in an incredibly small space and glossing over a lot of details. I would have liked to have seen some notes, tips, or sidebars with online resources as a minimum so the reader could fill in the missing theoretical details later.

The best part about this book is the activity. I was able to create a basic application in less than an hourfar faster than any other book I can remember using, even my own books. By the time you reach the end of Chapter 1 (about 15 pages), you’ve already learned how to create a connection to your data. Chapter 2 has you creating tables using several different techniques.

I loved the quick references at the end of each chapter. They act as a quick method of ensuring you got all of the details out of each chapter. If you read the entire chapter, you can go back to the quick reference later as a reminder of the things you learned.

Patrick provides a relatively good discussion of every aspect of managing the database and the information it contains using both C# and Visual Basic examples. Support for both languages is a good addition to the book. In addition, the support isn’t sporadic as it is in many books that favor one language or the otheryou’ll find most information discussed equally in both languages so neither language feels like a second class citizen.

Chapter 8 does discuss external connectivity, but it feels like Patrick is discussing the topic from the perspective of the developer who normally uses ADO.NET exclusively, which is absolutely correct for this book. You’ll discover how to interact with OLE DB and ODBC data sources. Unfortunately, as with many other areas of the book, the author digs right into using the connections without providing any theory whatsoever. This is another area where it would have been nice to have resources provided so that the confused reader could learn more. Still, everything works as promised, so there is something to be said for that. Many readers don’t want to know how it works, they simply want to know how to do something black box style and this chapter fits in perfectly with that mindset.

For me, the highlight of the book was Chapter 16. In this chapter, the author cuts through all of the usual garbage associated with objects and shows the bare essentials to use technologies such as LINQ. This is possibly the shortest, yet best conceived, coverage of the topic that I’ve seen anywhere. Again, you’ll find yourself lacking theoretical details, but the how discussed in an elegant way that will enable most readers to make use of these newer technologies in an incredibly short time. In fact, Part IV of the book goes on to cover LINQ in detail. I’m convinced that LINQ will eventually become the data query technique of choice because it’s relatively easy to understand, requires little code, and generally produces optimized results with little effort on the part of the developer. Obviously, the author agrees with me on this matter.

Overall, ADO.NET 4 Step by Step is a fantastic book for teaching you the “how” of database management using SQL Server and ADO.NET. In fact, you’ll learn how to perform many tasks that other tomes simply leave out. However, if you want to know why you’re doing something, when to do it, or understand the theory behind a task, you’ll need another book. I recommend this book to anyone who wants to get started quickly. You can always obtain a theoretical book to fill the gaps in your knowledge and you experience programming scenarios you don’t understand. The best addition the author could make to a next edition is some online sources to help the confused reader. Writing a database management book is tough, but it’s important to recognize that there are limits to what you can do and provide the reader with help in overcoming those limitations.


Review of HTML5 Step by Step

Microsoft has thrown developers yet another curve—Windows 8 will rely on HTML5 and JavaScript for a programming interface. The revelation has many developers horrified. For me, it means updating my HTML and JavaScript skills, which was one motivation for reading the book reviewed in today’s post. HTML5 Step by Step, written by Faithe Wempen, provides a quick method of getting up to speed on HTML5.

This book is designed to aid anyone who wants to know how to work with HTML5, which means that it starts out extremely simple. The book avoids the ever popular Hello World example, but the example it does provide is small and easily understood. The chapters don’t remain simple, however, so even if you have some experience with HTML, you can use this book to update your skills. You’ll likely want to start around Chapter 3 if you are experienced and skim through the material until you come to something unfamiliar, which could happen relatively fast given the changes in HTML5.

HTML5 Step by Step is light on theory and reference information, but heavy with hands on experiences. It relies on using Notepad as an editor, which may seem like an odd choice, until you read the “Why Learn HTML in Notepad?” section of the Introduction. The author’s reasoning is akin to the same reasoning I would use, which is to make sure that the reader types everything and understands why a particular element is required. If you really want to get the most out of this book, you have to do the exercises in Notepad as the author suggests. Otherwise, I guarantee you’ll miss out on something important. Faithe has made a great choice of teaching aids in this case.

Chapter 1 is most definitely designed for the rank novice. It even shows how to set up the examples directory as a favorite in Notepad. However, unlike many books, the rank novice should read the book’s Introduction because Faithe does provide some needed information there, such as the “Understanding HTML Tags” section.

Chapter 2 gets the reader started with some structural elements. Faithe covers everything that the reader is likely to need for a typical starter Web page. I wish that the chapter had covered <meta> tags in a little more detail, or at least provided a table listing them, but this book does have an emphasis on hands on exercises, so the omission isn’t a glaring one. As an alternative to including the information, an update could provide a URL that lists the tags so the reader knows where to go for additional information.

By Chapter 3, the reader is formatting text and starting to make the sample site look pretty. I really thought Faithe did a nice job of moving the reader along at a fast, but manageable pace. She shows the reader how to make effective use of tag combinations, such as the <kbd> (keyboard) and <b> (bold) tags.

There is the smallest amount of reference information in some chapters. For example, Chapter 4 contains a table on page 50 showing the list attributes. These references are very small and quite helpful, but the reader should understand that the emphasis is on doing something and that the reference material may not be complete. For example, the special symbols table on page 56 is missing the em dash, which is something most people use.

The book progresses at a reasonable pace. Never did I find myself rushed. The examples all seem to work fine and I didn’t find missing steps in the procedures. The author uses an adequate number of graphics so that the reader doesn’t get lost. I liked the fact that every exercise ends with a cleanup section and a list of the major points that the reader should have gotten from the exercise.

Readers who are only interested in new tags will need to wait until Chapter 9 to see one. The <figure> tag makes an appearance on page 141. However, even some professionals didn’t use all of the HTML4 tags and it really does pay to start at Chapter 3 and look for something you don’t recognize. It may surprise you to find that an earlier chapter contains a somewhat new (but not new to HTML5 tag) that you’ve passed by.

There are a few nits to pick with this book. The first is that the author places the accessibility information in an appendix where almost no one is going to read it. The information should have appeared as part of the rest of the book as appropriate. In addition, the author misses the big point that most people today have some sort of special need addressed by accessibility aids. The number of people who are colorblind alone is 8 percent of the male population and 0.5 percent of the female population. This book is unlikely to help you create a truly accessible sitenot that this is the reason you’re buying the book.

The second is that Appendix C doesn’t really help very much with the additions and subtractions for HTML5. For example, Appendix C doesn’t tell you about the new <aside> tag. If you want a quick list of the new tags, check out the HTML5 New Elements page. (I checked the missing <aside> tag against a number of other sites, such as The point is that Appendix C won’t give you the complete picture. Again, this isn’t one of the selling points of the book, but the list should have been complete.

The third is that there isn’t really enough information about why something is done or why it changedsimply that it must be done or that it did change. The reader probably doesn’t want a full blown history of the change, but the why of something can make understanding and, more importantly, remembering a concept easier. Still, this particular nit is minor since the purpose of the book is to get you started with HTML5 quickly and not to explore it at a theoretical level.

Overall, HTML5 Step by Step is a great book for the novice who wants to learn how to create Web pages. It’s also an acceptable book for someone who’s experienced with HTML coding, but wants to get up-to-date on the HTML5 changes quickly. This book is definitely designed for someone who wants to do something, rather than simply read about it. If you don’t perform the exercises, you won’t get much out of the book.


Review of Creative Close-Ups

You may have noticed that I use quite a few photographs in my blog entries. Some of these photographs look nice (they aren’t art by any means) and some of themwell, they didn’t quite work out as I hoped they would. Over the years I’ve grappled with unwanted shadows and close-ups that aren’t quite close enough. Focus is also a problem and fuzzy pictures never convey what you want when it comes to factual posts of the sort I create. I was recently talking with Harold Davis about my photographic ventures and he graciously offered me a copy of Creative Close-Ups. As expected, this is a self-help book for people who want to create better close-up photography, which is the sort found most often in my blog posts.

The one thing that will strike you immediately about this book is that Harold is quite talented and is possibly wasting him time writing books, but I’m extremely happy that he did. The book contains page-after-page of striking images. Some of them have been Photoshopped, something that Harold readily admits and even recommends to an extent. Because I’m looking more for better real world shots and not necessarily art, I’ll very likely not Photoshop anything on my blog from an artistic perspective (I could very well use Photoshop to enhance images to make them better convey the information I want), but the book also pointed out the usefulness of creative croppinga technique I intend to employ from now on.


I’ll always tell you if I’ve modified a picture in some way. Otherwise, you can be sure that the picture you’re seeing on the blog is the picture as it came from the camera. I know that there is a certain amount of discussion about this topic and plan to be up front about any modifications or twiddling I perform.

Harold has convinced me that using a tripod isn’t quite the waste of time I thought it might be. The discussion starting on page 64 will probably change your mind too. There are few sections of the book that provide a purely artistic view of a topic, but you won’t find many. Instead, Harold tries to provide good solid reasons for doing things a certain way and then backs them up with stunning pictures. In fact, there isn’t a single photograph in the book where Harold has kept the technique secrethe exposes every technique for your learning pleasure. Where there are multiple ways to accomplish the task, you’ll find them listed, along with any pros or cons of that particular technique.

I found the discussion of equipment helpful in many cases. For example, in page 60 you’ll find a tip about the Lensebaby 0.42X Super Wide Angle accessory lens. However, the text isn’t formatted differently (as a Tip or a Note found in other books), so finding the information later isn’t as easy as it could be. In addition, there isn’t any picture of the lens taken apart so that I can see what he’s talking about. The information is probably quite helpful, but it’s less useful than it could be due to a lack of pictorial backup.

Overall, the book is more focused on technique, than on how to apply the techniquethe discussions of equipment left me scratching my head and I ended up researching the information on my own online. (Harold also kindly answered my e-mail queries.) Admittedly, there is a short list of URLs on page 234, but you won’t find a resource for every piece of equipment listed in the book. Creative Close-Ups lacks pictures of any of the equipment, so someone like me has no idea of what these devices look like. If I were to go to a store, I’d be completely lost. It would also be nice to know if there are places online to buy equipment where I won’t be cheated since the nearest camera shop is in Milwaukee (170 miles away). So, this book will tell you how to do something, but not provide you much in the way of describing the means to accomplish the task.

That said, there are many sections that make the book worth the purchase price (if the amazing photography and associated setup instructions isn’t reason enough). The section on focusing on page 68 is especially insightful. In fact, the tips on page 70 are precisely what I need to do a better job with my own photography.

This book provides me with plenty of room to grow. The discussion of focus stacking starting on page 124 will require plenty of work on my part and I may never master the technique in the same way that Harold obviously has. Still, the discussion gives me some ideas and I hope that I’ll be able to use the technique in my blog.

Creative Close-Ups provides inspiration, food for creative thought, and lots of technique. I don’t think that a complete novice will be able to use the book because Harold doesn’t explain many terms such as ISO and what an f-stop is, making notations such as ISO 100 and f/40 useless. (There is a short description of these terms on page 72, but hardly enough for the novice and not early enough in the book to make the initial discussions helpful.) However, for someone who is truly serious about taking better photographs, this book provides a lot of informationmore than most people will be able to absorb in a single reading. I personally plan to read through some sections multiple times and use the book as a reference in the future. Whether this book makes me a better photographer remains to be seen. (As Harold says on page 46, “Cameras don’t take pictures; people do.”) I wish that there was more about the mechanics of performing these amazing tasks and better descriptions of the equipment the author used, but that may be asking too much out of a single book on a complex topic. Overall, I think the author has achieved his goals admirably and that anyone reading this book will truly be dazzled by what is possible.

Review of Breath & Other Ventures

I wasn’t quite sure how to categorize Breath & Other Ventures (written by William Bridges, Green Market Press), but for me it was a self-help sort of a book, so I classified it that way. You may very well classify it some other way, which is certainly your right. In reality, this book is both more and less than a self-help book. It won’t help you control your weight or manage your anger, but it does ask an intriguing and thought provoking question, “How do you want to live your life?” It’s a deceptively simple question of the same sort as, “Who are you?” Most people have no idea of who they are, much less how they want to live their life, so this is a helpful book indeed. (Don’t make the mistake of confusing this question with, “What do you want to do with your life?”, which is actually quite easy to answer in comparison.)

The majority of the book is a series of non-fiction short storiesthe author uses the term essays. It’s in three parts. The first part is literally about breathing. Although William includes a number of medical terms and diversions in the book, the focus is on the actual act of breathingsomething I’ll never look at the same again. You’ll find breathing in all its forms, including the breathing that takes place during various sorts of meditation. I’m not a Zen practitioner, but I do meditate daily to manage stress and make some sense of the chaos that’s my life. Such meditation is Biblicalit’s mentioned more than a few times even though I know most Christians sadly leave meditation out of their lives. By the time you’ve finished this first section, I assure you that you’ll no longer take breathing for granted either.

The second part is my favorite. It’s a series of short historical stories. I found them compelling. In fact, I started reading this section and didn’t put the book down again until I had finished it. The historical section isn’t about major events or places that most people would consider all that exciting. You’ll discover something about average people in Indiana. The stories are all about the author’s relatives in some way, but not necessarily exclusively about his family. He digresses into other areas, which makes for an interesting read. (There is even a ghost story included in the set of stories.) You go down the road and aren’t quite sure what to expect nextthe twists and turns keep the eventual goal hidden and elusive.

The essays in the third part of the book are more focused on how the author has lived his life. I probably could have done without the first essay on Obama, but then again, I’m not a political person in the sense that I would go out and protest something, knock on doors, or even make a contribution. On the other hand, I feel quite good about exploring every detail of a politician’s career before voting and will write a letter or two to express my dissatisfaction. For whatever reason, this particular essay didn’t speak to meperhaps it’ll speak to you. I did enjoy the essay entitled, “Ten Weeks with the Circus” quite a lot (it isn’t actually about the circusI’ll leave the details of it for you to discover).

The book also has a very short fourth part (19 scant pages) that contains a fictional detective story about GeeGee Dapple. I found the story quite entertaining and a fitting end to the book.  There is little doubt in my mind that GeeGee is the author’s alter-ego. It appears that there is a number of these stories and I hope the author eventually puts them together into a compilation. For now, this is the first GeeGee story I’ve read. The addition reminds me of the “final page” entries often found in magazines. It was a nice ending to the book that doesn’t necessarily fit in with the rest of the book but is merely meant to entertaina kind of finishing touch not found in many books today.

If you’ve ever read and enjoyed Garrison Keillor, you’ll enjoy William’s style too. It has that same free flowing musing that Keillor employs in his books. This book isn’t meant to be funny though, so there are some distinct differences in the way the two authors approach things. This author also includes more than few pieces of poetry, most of which I found a good read and thought provoking. The poetry isn’t just stuck in place either (like many books out there), it always has a purpose for being placed precisely where the author has placed it in the book. I found the author’s word choices interesting as well. For example, you’ll find “blissninny” on page 44 (I’ll also leave it to you to discover the meaning of this word). If you want to see some examples of the author’s writing, check out his blog.

So, does this book answer the question, “How do you want to live your life?” Of course it doesn’t! That’s for you to decide. The author is relating a story of how he has decided to live his life and I think the hope is that you’ll spend a few moments pondering your life as well. I certainly found myself pondering mine. If nothing else, this is the sort of book you want to read as part of your own personal voyage of discovery.



Dune is an amazing read that’s hard to strictly categorize. Most people say that it’s a science fiction book, which I guess it is to a certain extent. After all, it does take place in the future when mankind has moved out into the solar system and colonized many worlds. The book takes place so far into the future that all knowledge of man’s origins has faded into obscurity. There are certain technology elements to the book, but you won’t find robots, space battles, or anything of that sort. In fact, the author deliberately downplays technology and offers technology run amok as a reason for man’s venture into an almost anti-technology society.

In some respects, Dune is a fantasy. You’ll find mention of the strange spice melange which imparts almost magical characteristics to those who indulge in it (and almost everyone in the book does to some extent with differing effects). The backdrop for the book reads somewhat like a Gothic novel with kings and queens. The main character is a duke seeking to repair an incredible wrong done against his family. The book is also filled with the mythical creature, a sand worm that’s so large that people can ride it. Dune is a desert planet and it invokes a somewhat romantic view of the difficulty of living in such an environment.

However, in its innermost being, Dune is a book about political intrigue and the author, Frank Herbert, does an amazing job of creating a twisted plot. Because this book is a bit complex, some people will find it hard to read. Still, once you get into the meat of the book, you’ll find that it keeps your interest. Dune is for someone who likes almost Machiavellian complexity and doesn’t particularly relish a book with little substancemere mind candy.

The book has a strong cult following and you’ll find many follow on editions for it. In fact, two movies have come out about Dune in the past. The first is a shorter version (a little over 2 hours for the original theatrical offering) that stars Kyle MacLachlan, Virginia Madsen, Francesca Annis, Leonardo Cimino, and Brad Dourif. This version also includes Patrick Stewart before he became famous as the captain of the Enterprise in Star Trek. The second is a longer 265 minute version that stars William Hurt, Alec Newman, Giancarlo Giannini, Uwe Ochsenknecht, and Saskia Reeves.

Both theatrical versions of Dune diverge from the original book plot in a significant waythe book doesn’t spend much time discussing the action in battles, while the movies seem to focus on it to an extent. In fact, Frank Herbert is apt to simply say that the battle occurred and that a certain party won. Consequently, the movies and the book both have something to offer and are different presentations of the same plot. I enjoy all three and plan to review the movies at some point.

Dune is the sort of book to get if you want to become totally immersed and forget your cares for a while. The writing is good and you won’t find yourself distracted by inelegant prose. When you’re done, you’ll definitely find yourself wishing for more (and fortunately, there is more to be had in tomes such as Children of Dune).