Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Learning Perl Objects, References & Modules
Publisher: O'Reilly
Authors: Randal L. Schwartz, Tom Phoenix
Rating: 1/5
Customer opinion - 1 stars out of 5
Difficult on chapter 4 but fun

In the world of Perl there was once only the 'camel book,' held in perhaps as much reverence as 'K & R' among C programmers. It certainly appealed to roughly the same audience, those who wanted a short, sharp introduction to a programming language. It was with a problem that needed solving and a copy of the camel book that I started as a Perl programmer.
Then for those that wanted a introduction to Perl and programming Randal L. Schwartz wrote Learning Perl, a book that has arguably become the definitive textbook for teaching Perl. The one weakness was that it left off before really getting to the guts of building large, complex projects in Perl. It did not cover classes, objects, breaking your code up into pieces or the more arcane aspects of variables, references. For this we had to resort to the last few chapters of the 'camel book' and I, for one, have never really been totally comfortable at this end of the language; when I'm reading someone else's code it might take a couple of reads to fully understand the process.
Now this weakness has been well and truly addressed. Schwartz, with Tom Phoenix, has written "Learning Perl Objects, References & Modules", a volume that takes the same steady approach to teaching you the more advanced topics as the earlier 'Learning Perl'. Schwartz has spent the years since writing 'Learning Perl' teaching and writing. You can tell, this is a superbly written book, not that 'Learning Perl' wasn't well written; it's just that this volume is far better.
The Guts
The book starts with a chapter on building larger programs that covers @INC, eval, do and require before discussing packages and scope. It then has several chapters on references that explains in well understandable fashion and increasing complexity all the ins and outs of references including dereferencing, nested references, references to subroutines and references to anonymous data before a final chapter on references that gives you some incredibly useful tricks such as sorting and recursively defining complex data.
The book continues with three chapters that give you a solid grounding in Perl objects. Here Schwartz has assumed that you know at least a little about object oriented programming, some may feel the need for more explanation of concepts might be required, but if you've had any experience in OOP before then the clear examples and descriptions here are probably all you want.
Modules are not as well covered, with only a single chapter, but it is hard to think of anything left out, it covers using them and building your own so well that it left me wondering what all the fuss was about, "seems obvious to me." The book concludes with chapters on building a distribution out of your module, testing it using make test (with Test::Harness), Test::Simple and Test::More before a chapter telling you how to contribute to CPAN.
Each chapter of the book concludes with a number of small exercises, designed to be done in just a few minutes, that cement the learning of the previous chapter. The answers to these are at the end of the book.
Once I'd finished I felt I had a much more solid grounding in Perl, certainly I was much better able to understand another programmer's code that dealt with such things as subroutine references and some complex data structures. While the subject matter of this book is almost entirely covered in 'Programming Perl' the tutorial aspects of this book made it much easier going. The style would be familiar to anyone who has read 'Learning Perl', light without being frivolous and extremely well written, Schwartz seems a master at reducing complexity to manageable bites.
This book is deceptively easy to follow, each new idea built onto earlier ones, each new language concept introduced in an easy manner. The writing is excellent, it's hard to explain why I appreciated it so much. That may be the reason, the writing isn't forced or heavy or too light or obvious. It just allows the solid material of the book to shine through. Go to the ubiquitous O'Reilly website and grab the example chapter (the site also has a few Errata, the Table of Contents and the code from the book) and give it a look.
I think this may well become a classic, I may well in ten years time talk of Schwartz's books with the same awe I now talk of Brian Kernighan's. I'll certainly eagerly await his next book and keep this one close until it comes. Oh, and Randal, how about 'Software Tools for Perl Programmers'?

Product: Book - Paperback
Title: Mastering Autodesk Architectural Desktop
Publisher: Autodesk Press
Authors: Paul F. Aubin
Rating: 2/5
Customer opinion - 2 stars out of 5
Try to figure out how to create i.e. Schedules

Good book, but it could be better. You have to think the deepest tough to figure out where is the beginning and or the end of many procedures. Try to figure out the best way to approach the creation on a Door Schedule in 2d, for example.Good luck

Product: Book - Paperback
Title: Creative Projects with LEGO Mindstorms
Publisher: Addison-Wesley Professional
Authors: Benjamin Erwin
Rating: 5/5
Customer opinion - 5 stars out of 5
Projects that require the solution of complex problems

In the fall semester of 2003, I taught a special topics course in robotics at Mount Mercy College with two students. A Lego Mindstorms kit was purchased and in the first segment of the class, the students built a robot and programmed it to move around the halls. We then moved on and used a more advanced robot in the remainder of the class, because I did not consider the Lego kit to be sophisticated enough. From some of my professional communications, I learned that entire college classes are being taught using only Lego Mindstorms kits. After reading this book and evaluating the projects, I am now completely convinced that Mindstorms kits are all you need to teach a robotics class. Some of the projects in the book are a giraffe that simulates feeding, a flashlight follower, a robot painter, robots that communicate with each other, a machine that makes bubbles in response to stimulation, an infrared fax machine and even a submarine. To get these projects to work, it is necessary to solve some of the standard problems in Artificial Intelligence (AI). For example, the giraffe and all other animals require that the standard problem of getting a robot to walk be solved. The flashlight follower requires that the robot be able to dynamically process sensor input, using it to make decisions. Standard problems in machine-to-machine communication must be solved when the actions of a robot are in response to what another has told it. The robots can be programmed using visual basic, robolab or NQC (Not Quite C). Robolab is a visual development environment where many of the actions are coded by connecting icons. The visual basic and NQC languages have many differences from their true counterparts, basically, they are stripped down versions with altered syntax. Legos are one of the most mind-expanding toys that children can use. Applying some of the concepts in this book, they can be used as learning tools for some of the most complicated tasks that we can try to do, making a machine do intelligent tasks.

Product: Book - Paperback
Title: The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How to Restore the Sanity (2nd Edition)
Publisher: Sams
Authors: Alan Cooper
Rating: 3/5
Customer opinion - 3 stars out of 5
The Technical Personnel Are Not The Problem!

I am a senior IT specialist with over 27 years in the field and was looking forward to reading Mr. Cooper's book until I read the reviews and noted his emphasis on technical personnel as the primary catalysts for poor software.
They may be a factor but not the primary catalyst. Unfortunately, it is and has always been corporate management that have initiated much of the problems we are all facing today. Computers in the hands of the individual or the scientist can offer a tremendous enhancement to their work and lives in an increasingly difficult and complex world. However, in the hands of business management and/or under their aspices the computer has become a plaything for fools who rampantly execute decisions against their technical communities based more on fantasy and personal agenda than that of reality and common sense. And since it is the business realm that produces much of what the consumer uses the results tend to be less than stellar.
Most fail to remember that technicians have very little say in the finality of their projects that are usually run by an organizational stream of management. This is not to say that there aren't plenty of bad technicians who are as equally guilty of incompetence and the infusion of their own personal agendas into a project. There are more than enough. Yet management has consistently failed to understand in depth the technologies they are having implemented which would then allow them to develop quality teams with a balanced forum for input from both sides. Instead, management prefers the "glory" of the technical implementation with the attitude that they they "don't understand this stuff". And how can they when most technicians themselves are having a difficult time keeping up with the high-speed evolutionary pace of their own technology.
If Mr. Cooper had more experience in the everyday development environments that most have to contend with I believe his book would have had a much more balanced emphasis and thus a superior impact on the reading public which is what is really needed. Changing the way software works will not alter the stupidity behind it!