Domain: samspublishing.com
Stories and comments across the archive that link to samspublishing.com.
Stories · 6
-
PHP 5 in Practice
Michael J. Ross writes "Computer programming books come in all varieties, but there are at least four general categories: introductory texts, which typically have the lowest content per page; language references, which have become increasingly supplanted by online sources; "advanced" treatments, which are often a mishmash of errata-riddled articles; and "how-to" books, usually at the intermediate level, and sometimes presented as "cookbooks." It is that last category that has been growing in popularity, and for good reason. When an experienced software developer needs assistance, it is rarely for language syntax, but instead a desire to see how someone else solved a specific problem. For solutions using the PHP language, one source of information is PHP 5 in Practice." Read the rest of Michael's review. PHP 5 in Practice author Elliott White III and Jonathan D. Eisenhamer pages 456 publisher Sams Publishing rating 8 reviewer Michael J. Ross ISBN 0672328887 summary One of the most meaty, immediately useful, and fluff-free PHP books available
The book was authored by Elliott White III and Jonathan D. Eisenhamer, and put out in July 2006 by Sams Publishing (an imprint of Pearson Education). Given today's standards of hefty technical books, this particular one is relatively light, weighing in at 456 pages, which are organized into an introduction, numerous chapters, and three appendices.
Its introduction is more interesting than that of most similar books, whose introductions usually consist of formatting conventions and explanations as to why the book was written — all such content providing little to no value to the impatient programmer facing a deadline, and invariably ignored (the content, that is, not the deadline).
White and Eisenhamer took a refreshingly different tack, and chose instead to explain their use of coding standards, comments and whitespace, braces and parentheses, PHP short tags, PHP mode, and other language considerations that are more useful than the typical rundown of somewhat childish icons used in other texts, such as light bulbs and red warning signs.
Switching to the other end of the book, we find three appendices. The first one briefly discusses issues one might face in migrating from PHP version 4 to 5. The second introduces the Standard PHP Library (SPL), and the objects related to its primary design pattern, the Iterator. The third appendix discusses what composes the bulk of output from my PHP programs: error messages. Seriously, this appendix is worth reading, if only for the suggestions as to what to look for when you encounter some of the most common PHP error messages.
The bulk of the book's material is divided into 20 chapters, which are themselves divided into two parts: PHP internals, and applications. The internals are: strings, numbers, time and date, variables, arrays, functions, classes and objects, and files and directories. Starting off with a discussion of strings, might seem odd to the neophyte programmer, but to the veteran who has had to learn several languages during their career, the choice makes a lot of sense. There must be countless developers out there who, being fluent in the C language and object-oriented concepts, jumped into writing their first C++ program, and had to hit the books for the first time when they wanted to do some non-array-based string handling.
The book's second part covers some of the most common applications in PHP programming: Web page creation (using XHTML and CSS), Web form handling, data validation and standardization, sessions and user tracking, Web services and other protocols, relational databases and other data storage methods, e-mail, XML, images, error reporting and debugging, and user authentication and encryption. That last chapter, in the next edition, should be relocated so that it precedes or follows the chapter on sessions and user tracking.
Many of the chapters begin with a "Quick Hits" section, which briefly summarizes how to perform many of the most common and essential tasks related to that chapter's topic. For instance, in the chapter covering the use of variables, this first section explains how to: check if a variable has no value or if it is empty (not synonymous in PHP), undefine a variable, cast it to a certain data type, and do the same thing for a value. There is one minor erratum that should be noted: On page 71, in the first "Quick Hit," it reads "a variable has bee. given a value." ("been"'s "n" ended too soon.)
Each section within the chapter briefly explains the problem domain, and then presents sample code to solve the given problem. The code itself is fairly well commented, and the variable names are adequately descriptive (unlike in some programming books, whose coding standards border on the criminal).
All in all, the book offers a lot of worthwhile solutions to a wide range of problems, and does so in a straightforward manner. It is for this reason that it is not evident as to why this particular PHP title has received so little notice. For instance, on Amazon.com, it has received only one reader review, as of this writing, and does not even make it into the top quarter million books ranked in sales by Amazon.com. It is a pity, because the book deserves much more attention.
Even though this book is to be recommended, and is packed with code and text that are well worth studying, it has one unmistakable weakness for which this writer can think of no adequate justification. The book contains almost no illustrations, even when they are clearly called for — in fact, especially in those cases. For instance, the section that shows how to generate a calendar, does not show a calendar! The code is present, but the sample output — which is what the poor reader would appreciate, to see the results of the code — is missing.
Granted, an absence of figures and screenshots might be understandable for the first part of the book, which covers the PHP language itself. But the second part, covering applications, has far too many unillustrated PHP scripts. These include sections focusing on drop-down menus, progress bars, and graphical charts Web forms. In the last chapter, there is a section with code that generates captchas, but the reader is not shown what they look like. The entire 18th chapter is devoted to images, but contains not a single one! I cannot imagine why the authors and/or publisher chose to leave out these essential graphics. Was it to save money? Whatever the reason, it was a significant mistake, and one that should be corrected in the next edition.
Readers who agree with this assessment, or who have other thoughts concerning this otherwise excellent book, can leave feedback via the book's Web page on the Web site for Sams Publishing. This page offers details on the book, a description and table of contents, links for requesting instructor or review copies, and a tool for searching the book's contents within the Safari online technical library. The book's introduction states that the Web site hosts all of the code listings, as well as a list of errata. Yet, I was unable to find either one. (Sadly, the Pearson Education sites are still some of the least usable in the technical book publishing world.) Much better results were obtained on Eli White's site.
Despite an inexcusable and almost complete lack of needed illustrations, PHP 5 in Practice is possibly one of the most meaty, immediately useful, and fluff-free PHP books available. No serious PHP programmer should be without it.
Michael J. Ross is a Web consultant, freelance writer, and the editor of PristinePlanet.com's free newsletter. He can be reached at www.ross.ws, hosted by SiteGround.
You can purchase PHP 5 in Practice from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Unix Shell Programming, Third Edition
honestpuck writes "Back when dinosaurs roamed the earth and NCR made Unix computers I first started to program for a living. Back then when someone said 'script' they meant a shell script, generally for a Bourne shell." Even if the definition of "scripting" has grown somewhat, honestpuck argues, the old meaning still has merit and use. Read on for his review of the latest edition of Unix Shell Programming. Unix Shell Programming, Third Edition author Stephen G. Kochan and Patrick Wood pages 406 publisher SAMS rating 8 - Well written, good topic coverage, some small flaws reviewer Tony Williams ISBN 0672324903 summary Good introduction to shell programming and using the shellNow that we have languages such as Perl and Python, much of shell scripting has been forgotten. The need still arises for the times and places where running Perl would be just that little bit too much overhead; cron jobs, process start and stop scripts, even machine start and stop scripts. For these we could best go back to the old ways. Combining the power of the common Unix tools, pipes and scripts in a fairly obscure and slightly arcane syntax is not easy to pick up, though the language's simplicity does, in some ways, make it easier than more complex ones such as Perl. This book does a good job at introducing shell programming and I found it an excellent book when I needed a refresher.
I don't want to sell this volume short: you won't just learn about shell programming. The first ninety or so pages provide an excellent guide to getting the best out of the shell, and the last chapter is devoted to the features specific to an interactive shell such as command-line editing and using the history.
The authors have chosen to use the POSIX standard Bourne shell ('bash', available on many *nix systems, is a superset of the POSIX standard). That seems the right decision, given that it is so universally available and usually the default shell.
The book is well structured, starting out with a brief look at *nix operating systems before introducing the shell followed by some basic tools; cut, paste, sed, tr, grep, sort and uniq. One minor quibble, the book explains how to redirect STDOUT to a file and STDERR to a file, but not how to redirect both to the same file. That aside, these few chapters provide a good introduction to the shell.
The text goes on to systematically explore shell programming starting with variables and arithmetic. The chapters are kept short, in a good order and have a number of exercises at the end of each. The structure of the book and the order each new concept is introduced is well thought out; at each stage small examples are given that only use material already introduced and are complete in performing a task. In early chapters they are fairly trivial but by the end there is a fairly complete rolodex program written in shell script that would be a good model for anything you wished to do.
There is also a good summary of the shell syntax and common commands in Appendix A and good 'Further Information' in Appendix B. Kudos must go to the authors for a list of books for further reading that is not ashamed of mentioning other publishers, indeed they say "One of the best sources of books on Unix-related topics is O'Reilly and Associates" and list volumes from them before mentioning their own publishers.
There are some small typographic errors in the text but I did not find any in the script examples I tried. I found it to be well written and readable throughout, perhaps an advantage of a third edition in a slow moving technology.
You can visit the Sams web page devoted to the book which has the Table of Contents and the third chapter available for download. It has no errata or source code, I looked to see if the authors maintained a site for the book but could not find one.
I would recommend everyone read this book once or twice, it provides a comprehensive, well written tutorial on one of the most basic (and often overlooked) tools at your disposal. Even Windows users could install Cygwin and gain the benefit of a good POSIX compliant shell and this book. It also has the advantage that once purchased it will be useful for many, many years to come - the language has not changed noticeably in twenty five years and should not change in another twenty five.
You can purchase Unix Shell Programming, Third Edition from bn.com. Slashdot welcomes readers' book reviews -- to submit a review for consideration, read the book review guidelines, then visit the submission page. -
Teach Yourself AppleScript in 24 Hours
honestpuck contributes this review of Sams Publishing's Teach Yourself AppleScript in 24 Hours, writing "The market for books on AppleScript cannot be a large one, since there never seem to be many volumes in it; usually only one at a time is up to date and worth the money. Now that O'Reilly's AppleScript In A Nutshell is showing its age (and wasn't that great in the first place), and Danny Goodman's book is even older, I was pleased to hear that this volume had come along." Read on for honestpucks' mixed impressions of the book. Teach Yourself AppleScript in 24 Hours author Jesse Feiler pages 432 publisher Sams Publishing rating 7 reviewer Tony Williams ISBN 0672325187 summary Not a bad introduction to AppleScript but leaves off far too early.Teach Yourself Applescript in 24 Hours (TYA) from Sams Publishing is certainly up to date: it covers Applescript under OS 10.2 and the use of AppleScript Studio to build GUI applications using the language. That's its strength. The book's first weakness, though, is that it starts too far down the learning curve in my opinion. The first few chapters of TYA could be read by someone almost totally new to the Macintosh -- they cover such basics as running the scripts installed with the OS and getting new scripts from Apple and installing them. At the same time, they introduce basic AppleScript programming terminology not really required for these sorts of tasks such as suites, classes and commands. This material would have best waited a few chapters. It is not really until 'Hour 6', most of the way through the first part of the book, that it really sorts itself out and gets down to really teaching you AppleScript.
The Basics The book is divided into four parts: 'Getting Started With AppleScript,' which covers using scripts and basic programming concepts; 'Writing Scripts With Script Editor,' which takes you through using the Script Editor, details AppleScript syntax and how to script the Finder and various applications and using AppleScript Dictionaries; 'Working With AppleScript Studio,' which covers building AppleScript-based GUI applications using Project Builder and Interface Builder all the way through to complex applications that can store and retrieve documents; and a final section 'Advanced Scripting,' which covers Script Objects, scripting across a network (including SOAP and XML-RPC), and integrating scripts with the terminal and cron.Each section is then divided up into chapters designed to be worked through in less than an hour ,with a small number of short exercises at the end. I found that most chapters took me about half an hour before I reached the exercises, which then took ten to fifteen minutes.
As you can see, almost everything you could ask for is touched on in this book. Once over the introductory chapters, I found the book to be well laid out, well structured and well written. I particularly liked Part III on AppleScript Studio; it started easily and worked up to quite an advanced little application explaining everything well along the way.
The Bad There are some things missing, however. Debugging is hardly mentioned (3/4 of one lesson), and debugging is not exactly trivial in AppleScript. I also found no mention of my pet demon with AppleScript; its incredibly strong typing and problems with having data in the wrong type; this is a classic problem with files and file names. In reality, this book teaches you the language without really getting down to teach you how to program in the language. A fine distinction, I know, but after just reading Learning Perl Objects, References & Modules, I found TYA to be light on real examples and real world code. Even the best section, the one on AppleScript Studio, didn't touch on many things you will need to know.Sams have a page devoted to the book at the Sams web site, but frankly the URL is so long and cumbersome I don't dare risk putting it in a post. Go to the site and type 'AppleScript' in the search box. It has the table of contents and a sample chapter and some of the code from the book. The sample chapter is the third chapter 'Running The Scripts You Already Have' and really doesn't give you a good feel for how the book teaches you AppleScript programming. The page to download the code examples says "All the code developed for the book in one convenient download," but in fact all you get are the AppleScript Studio projects and source from four of the chapters. Oh, and the introduction says "There are even a few goodies on the web site that aren't in the book" -- they sure must be good as I couldn't find them.
In conclusion, I think this book starts too far down the learning curve and leaves off too early, with not enough detail. It seems a shame, what we have here is well laid out and well written, I wanted it to be better after I had finished. This book might suit someone absolutely new to the Mac who wanted to learn enough AppleScript to perform a few basic operations, for everyone else it'll be better to wait till October when AppleScript 1-2-3 will be out from Peachpit and AppleScript: The Definitive Guide will be out from O'Reilly, and we might have a better option. If you absolutely need to get some help with AppleScript Studio then borrow someone else's copy or find one second hand.
You can purchase Teach Yourself AppleScript in 24 Hours from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Teach Yourself UML in 24 Hours
Wrinkled Shirt writes: "If you want to be able to work either as or with a systems analyst, you're going to have to speak the same language as everyone else in your team, and in the tech industry that language is increasingly becoming the UML. The Unified Modelling Language provides ways of modelling every sort of system that you can imagine, covering everything from the relationships of your different objects to the dynamics of the system in action to the way it'll look when you physically set it up." He's reviewed below the SAMS-published Teach Yourself UML in 24 Hours; read on below for his reactions to the book, both good and bad. Teach Yourself UML in 24 Hours, 2nd Edition author Joseph Schmuller pages 397 publisher SAMS rating 5.5 reviewer WrinkledShirt ISBN 0-672-32238-2 summary Useful enough as an introductory text, but likely needs companion texts for anyone who wants to design complex systems.
IntroductionThe UML was adopted by the OMG (Object Management Group) as their official method of visually representing an object-oriented design, and as such is particularly well-suited to working with CORBA (Common Object Request Broker Architecture). Now, the OMG believes in their acronyms the way the Irish believe in their whiskey, and if you're hoping they'll give you introductory material on how to use the UML without broadening the context to all the other standards the OMG is responsible for, well, good luck. Addison Wesley has an entire series dedicated to the UML and different aspects of it, and O'Reilly's got the requisite Nutshell book, but there's definitely a void for good low-cost beginner texts, and it is this void that Schmuller's book attempts to fill.
Does it succeed? Well, sort of.
The GoodTeach Yourself UML in 24 Hours is a very thorough introduction to the language. The first fifteen chapters alone cover practically every structural and behavioural element, all the important relationships, static diagrams and dynamic diagrams, and even a little object-oriented design theory. As far as computer books go, it's not very expensive at its full price, and is even available at some discount stores. It is also loaded with sample diagrams throughout, and has a large seven-chapter case study going through a sample project design process, terminating with a couple of chapters on miscellaneous applications of the UML.
Understanding the subjective element of design, this book tries to help the reader gain their own personal take on the UML by providing lots of sample exercises to perform, and the sum total is a book that gives the reader a good idea of the effectiveness of the UML as a modelling language. In fact, if I were a systems analyst and I needed to give my team a crash course in the UML before getting them to implement my specs, I could do a lot worse than making them all read this book first.
Unfortunately, here's where the accolades stop. A book that teaches people how to read another person's diagrams written in the UML is one thing, but as an effective reference on how to design using the UML, the book comes up short in a few ways.
The Not-So-GoodPart of the power of the UML is that even though the OMG really needed to it to get their CORBA spec to make sense visually, you can basically use the UML to describe any old sort of system you want. Unfortunately, Schmuller takes a little too much advantage of this, and a disproportionate amount of the examples and diagrams involve physical systems instead of software systems. It's as though software design is a bit of an afterthought, which is fine, but the book could have been richer had it focused more on this aspect of UML implementation rather than, for instance, how to use the UML to model a soda machine.
Another shortcoming is that the book tantalizes us with the odd example proving that part of the power of the UML comes from the flexibility to combine elements from multiple diagrams into a single diagram, and yet these examples are used so sparingly and with no substantive explanation to the methodology involved that you're left with a feeling that even though the UML can do a lot of things, you're not quite sure how to make it do all those things for you.
It's admirable that Schmuller devoted so much time to the case study, and made sure that the scope was broad enough that all of the topics explained to that point got an appearance. However, one of the pitfalls of trying to come up with a case study that outlines a fundamentally subjective process is that some of the design decisions are going to seem arbitrary to some people who don't have a psychic connection to the author. It's not something unique to this book, but this book falls victim to it. Schmuller would have done better to have used those seven chapters to describe two different systems to give a broader idea and more than one context to the process of UML design. He also took a little too much creative license with scripting the hypothetical interview process. A reference book on the UML isn't the best place to try out your best David Mamet impression.
And then there are the really minor problems. Some of the diagrams could use a little cleaning up, and sometimes the basic diagram is represented a little differently in the summary section as it is in the chapter dedicated to it. Some of the more complex diagrams are handled first and the simpler ones later. There's no real explanation that makes sense to a newbie about the difference between an aggregation and a composite. And finally, even though one could argue that learning about the UML itself should be kept as a separate and distinct process from learning about how to program off a UML design, I think such a chapter would have been far more beneficial to a neophyte than the chapter on modelling for embedded systems, which is likely to be the domain of people who are far beyond the level of UML familiarity that this book is going to give you anyway.
ConclusionNow, even though as individual criticisms these might seem minor, as a whole it adds up to a book that's going to need a couple of companion references for the reader to truly feel ready to start diagramming with the UML in a professional environment. However, as said before, it isn't too expensive and is pretty much alone in the world of introductory manuals to the UML, and even if you're hoping to become a full-fledged analyst you have to learn to crawl before you can learn to walk, and this book will help you do just that. Just don't expect to be running marathons by the end.
Table of Contents( exploded version here)
Introduction.
Hour 1. Introducing the UML.
Hour 2. Understanding Object-Orientation.
Hour 3. Working with Object-Orientation.
Hour 4. Working with Relationships.
Hour 5. Understanding Aggregations, Composites, Interfaces, and Realizations.
Hour 6. Introducing Use Cases.
Hour 7. Working with Use Case Diagrams.
Hour 8. Working with State Diagrams.
Hour 9. Working with Sequence Diagrams.
Hour 10. Working with Collaboration Diagrams.
Hour 11. Working with Activity Diagrams.
Hour 12. Working with Component Diagrams.
Hour 13. Working with Deployment Diagrams.
Hour 14. Understanding the Foundations of the UML.
Hour 15. Fitting the UML into a Development Process.
Hour 16. Introducing the Case Study.
Hour 17. Performing a Domain Analysis.
Hour 18. Gathering System Requirements.
Hour 19. Developing the Use Cases.
Hour 20. Getting into Interactions and State Changes.
Hour 21. Designing Look, Feel, and Deployment.
Hour 22. Understanding Design Patterns.
Hour 23. Modeling Embedded Systems.
Hour 24. Shaping the Future of the UML.
Appendix A. Quiz Answers.
Appendix B. Modeling Tools for the UML.
Appendix C. A Summary in Pictures.
Index.
Related Links SAMS
Object Management Group
OMG's UML Resource Page
Google Search for Case Tools
You can purchase Teach Yourself UML in 24 Hours at Fatbrain. Want to see your own review here? Read the review guidelines first, then use Slashdot's webform. -
Teach Yourself UML in 24 Hours
Wrinkled Shirt writes: "If you want to be able to work either as or with a systems analyst, you're going to have to speak the same language as everyone else in your team, and in the tech industry that language is increasingly becoming the UML. The Unified Modelling Language provides ways of modelling every sort of system that you can imagine, covering everything from the relationships of your different objects to the dynamics of the system in action to the way it'll look when you physically set it up." He's reviewed below the SAMS-published Teach Yourself UML in 24 Hours; read on below for his reactions to the book, both good and bad. Teach Yourself UML in 24 Hours, 2nd Edition author Joseph Schmuller pages 397 publisher SAMS rating 5.5 reviewer WrinkledShirt ISBN 0-672-32238-2 summary Useful enough as an introductory text, but likely needs companion texts for anyone who wants to design complex systems.
IntroductionThe UML was adopted by the OMG (Object Management Group) as their official method of visually representing an object-oriented design, and as such is particularly well-suited to working with CORBA (Common Object Request Broker Architecture). Now, the OMG believes in their acronyms the way the Irish believe in their whiskey, and if you're hoping they'll give you introductory material on how to use the UML without broadening the context to all the other standards the OMG is responsible for, well, good luck. Addison Wesley has an entire series dedicated to the UML and different aspects of it, and O'Reilly's got the requisite Nutshell book, but there's definitely a void for good low-cost beginner texts, and it is this void that Schmuller's book attempts to fill.
Does it succeed? Well, sort of.
The GoodTeach Yourself UML in 24 Hours is a very thorough introduction to the language. The first fifteen chapters alone cover practically every structural and behavioural element, all the important relationships, static diagrams and dynamic diagrams, and even a little object-oriented design theory. As far as computer books go, it's not very expensive at its full price, and is even available at some discount stores. It is also loaded with sample diagrams throughout, and has a large seven-chapter case study going through a sample project design process, terminating with a couple of chapters on miscellaneous applications of the UML.
Understanding the subjective element of design, this book tries to help the reader gain their own personal take on the UML by providing lots of sample exercises to perform, and the sum total is a book that gives the reader a good idea of the effectiveness of the UML as a modelling language. In fact, if I were a systems analyst and I needed to give my team a crash course in the UML before getting them to implement my specs, I could do a lot worse than making them all read this book first.
Unfortunately, here's where the accolades stop. A book that teaches people how to read another person's diagrams written in the UML is one thing, but as an effective reference on how to design using the UML, the book comes up short in a few ways.
The Not-So-GoodPart of the power of the UML is that even though the OMG really needed to it to get their CORBA spec to make sense visually, you can basically use the UML to describe any old sort of system you want. Unfortunately, Schmuller takes a little too much advantage of this, and a disproportionate amount of the examples and diagrams involve physical systems instead of software systems. It's as though software design is a bit of an afterthought, which is fine, but the book could have been richer had it focused more on this aspect of UML implementation rather than, for instance, how to use the UML to model a soda machine.
Another shortcoming is that the book tantalizes us with the odd example proving that part of the power of the UML comes from the flexibility to combine elements from multiple diagrams into a single diagram, and yet these examples are used so sparingly and with no substantive explanation to the methodology involved that you're left with a feeling that even though the UML can do a lot of things, you're not quite sure how to make it do all those things for you.
It's admirable that Schmuller devoted so much time to the case study, and made sure that the scope was broad enough that all of the topics explained to that point got an appearance. However, one of the pitfalls of trying to come up with a case study that outlines a fundamentally subjective process is that some of the design decisions are going to seem arbitrary to some people who don't have a psychic connection to the author. It's not something unique to this book, but this book falls victim to it. Schmuller would have done better to have used those seven chapters to describe two different systems to give a broader idea and more than one context to the process of UML design. He also took a little too much creative license with scripting the hypothetical interview process. A reference book on the UML isn't the best place to try out your best David Mamet impression.
And then there are the really minor problems. Some of the diagrams could use a little cleaning up, and sometimes the basic diagram is represented a little differently in the summary section as it is in the chapter dedicated to it. Some of the more complex diagrams are handled first and the simpler ones later. There's no real explanation that makes sense to a newbie about the difference between an aggregation and a composite. And finally, even though one could argue that learning about the UML itself should be kept as a separate and distinct process from learning about how to program off a UML design, I think such a chapter would have been far more beneficial to a neophyte than the chapter on modelling for embedded systems, which is likely to be the domain of people who are far beyond the level of UML familiarity that this book is going to give you anyway.
ConclusionNow, even though as individual criticisms these might seem minor, as a whole it adds up to a book that's going to need a couple of companion references for the reader to truly feel ready to start diagramming with the UML in a professional environment. However, as said before, it isn't too expensive and is pretty much alone in the world of introductory manuals to the UML, and even if you're hoping to become a full-fledged analyst you have to learn to crawl before you can learn to walk, and this book will help you do just that. Just don't expect to be running marathons by the end.
Table of Contents( exploded version here)
Introduction.
Hour 1. Introducing the UML.
Hour 2. Understanding Object-Orientation.
Hour 3. Working with Object-Orientation.
Hour 4. Working with Relationships.
Hour 5. Understanding Aggregations, Composites, Interfaces, and Realizations.
Hour 6. Introducing Use Cases.
Hour 7. Working with Use Case Diagrams.
Hour 8. Working with State Diagrams.
Hour 9. Working with Sequence Diagrams.
Hour 10. Working with Collaboration Diagrams.
Hour 11. Working with Activity Diagrams.
Hour 12. Working with Component Diagrams.
Hour 13. Working with Deployment Diagrams.
Hour 14. Understanding the Foundations of the UML.
Hour 15. Fitting the UML into a Development Process.
Hour 16. Introducing the Case Study.
Hour 17. Performing a Domain Analysis.
Hour 18. Gathering System Requirements.
Hour 19. Developing the Use Cases.
Hour 20. Getting into Interactions and State Changes.
Hour 21. Designing Look, Feel, and Deployment.
Hour 22. Understanding Design Patterns.
Hour 23. Modeling Embedded Systems.
Hour 24. Shaping the Future of the UML.
Appendix A. Quiz Answers.
Appendix B. Modeling Tools for the UML.
Appendix C. A Summary in Pictures.
Index.
Related Links SAMS
Object Management Group
OMG's UML Resource Page
Google Search for Case Tools
You can purchase Teach Yourself UML in 24 Hours at Fatbrain. Want to see your own review here? Read the review guidelines first, then use Slashdot's webform. -
Learning Linux Survey Course Gets Tougher
chromatic's wide-ranging series of instructional and reference books for the Linux administrator continues here with three more titles, this time covering two books which sound aimed at fairly experienced uers, and one more suited to Windows crossover users. (Check out Part One and Part Two of this four-part series if you missed those, especially if you're looking for some more novice-oriented books.)Don't carry all of these books at once, unless it's the only exercise you're getting. At this many total pages, you're likely to find something you don't know well enough -- unless you've written chunks of the software under discussion.
title Linux Clearly Explained publisher Morgan Kaufmann Included Stuff RedHat Linux 6.0, Corel WordPerfect 8.0 Intended Audience New users interested in Linux for the desktop. Scope Desktop usage with GNOME. Technical Correctness Good. Writing style Easy to read -- informs without intimidating new users. Other I was able to read 300 pages while waiting for a plane. It's quite easy to read while still useful.Linux Clearly Explained aims squarely at a growing population -- people fed up with Windows, ready to try out the newfangled Linux desktop environments. Author Bryan Pfaffenberger explains the concepts of Linux in the context of the GNOME system, intending to help his readers become productive users. Rather than walking people through wizards (as one might expect from a typical Windows book, for example), he demonstrates how the peculiarities and design decisions of Linux flavor GNOME.
Pfaffenberger starts out with an 80 page history discussion. First, there was Unix. Then came RMS, GNU, and Linus. The advantages and shortcomings of Linux culminate in GNOME's raison d'etre -- and the reason this book exists. The author provides plenty of links to more information, even sneaking in a few pages on Internet support for Linux. Armed with this background, readers can tackle installation.
This part covers the Linux filesystem, lists supported hardware, talks about partitioning schemes, and dual booting. It walks through the RedHat 6.0 installation, briefly describing important packages. If your hardware is supported, you'll have no trouble here.
By far the largest, Running GNOME is the critical section. Use GNOME tools to create a normal user, then start exploring. Learn about GNOME conventions, help, and the file manager. Customize your desktop appearance, behavior, available programs, sounds, and window manager. Tour GNOME, KDE, and X productivity applications, then the basics of managing disks and installing new applications.
Part four helps you set up PPP (through various means) and discusses using Netscape and ftp for common Internet tasks. Finally, part five introduces the command line. It's a quick tour of files, basic shell usage, and permissions, with little on shell scripts. The administration section discusses disk maintenance, backups (a good section), and manually working with user accounts. Finally, an exploration of Midnight Commander demonstrates the powerful utility. The only chapter missing is one on security -- there's much more to learn.
Does it work? Can a new user really learn how to use Linux via GNOME? Pfaffenberger has produced an easy to read and informative book. It's not glaringly cutesy, as some books tend to be, but genuine. Linux's heritage comes through early, helping to explain things that aren't immediately obvious. If readers are inspired to explore things on their own (and the book equips them to do so), they'll do fine. Each chapter has plenty of references -- take the time to explore. (Order "Linux Clearly Explained" from Fatbrain.)
title Red Hat Linux Bible publisher IDG Books Included Stuff RedHat Linux 6.1 CD, with additional source disc. Intended Audience New Linux types, especially those interested in configuring, using, and providing network services. Scope Introduction, installation, some desktop use, administration, and networking. Technical Correctness Too many typos and inaccuracies not to mention. Writing style Technical, but readable. Other If you have enough experience to know when this book is wrong, you might not need it. Still, there's a wealth of information, especially for new Linux networkadministrators.All books have typos. Most people read over them. When describing Unix command lines to beginners, there's little room for error. This book confuses the shell redirection/concatenation operator (>>) with a pipe, while writing the operator as '>' multiple times. (See page 87.) That's not all, either. IDG needs to provide an errata list for data-clobbering mistakes. Granted, the number of errors I caught (around a dozen) considering the amount of information presented isn't huge, but it makes me question the book's accuracy. (See page 579, which confuses printer stair-stepping with font anti-aliasing.) That's a pity, because the book has a lot going for it.
Physically, the book divides material into the same sections you'd expect. The ubiquitious history and installation sections do their jobs, and the command line introduction is good. GNOME and popular Window Managers get some treatment, as well as generic X configuration. Desktop users will learn how to install applications from RPM and source, run applications remotely with the X protocol, and use DOS, Windows, and Mac emulators. There are plenty of other applications covered, like games, publishing utilities (from groff to StarOffice), to ubiquitous Internet apps. The breadth of programs covered is good.
System administration gets a few chapters, too. Not only is RedHat's Linuxconf tool brought to center stage, there's plenty of distribution-neutral command-line advice. Everything from managing user accounts (including an early taste of NFS home directories) to monitoring system status comes up. Shell programming and init levels are explained in the context of automating repetitive tasks, as well as at and cron. Finally, the backup and security chapters are quite good (very informative!), with a good mix of theory and practicality. Presenting multiple approaches with associated benefits and tradeoffs is valuable.
For those aching to demonstrate Linux's server strengths, part five aims to make you a good intranet member. A brief networking refresher tackles TCP/IP Ethernet setup (even over PLIP), and you'll soon be on the Internet if that's your thing. There's even information on using your Linux box as a router and proxy server.
Of course, Samba and NFS get their due. Surprisingly, so does the mars_nwe NetWare Emulator. The mail server chapter makes a valiant attempt at discussing sendmail's configuration file before admitting that the m4 macros make things much easier and devotes a few pages to majordomo mailing list software. There's a great section on ftp services, detailed configuration information for Apache, and good INN news server instructions. Rounding it all out is a brief NIS chapter, followed by an Appendix giving a brief description of the RPM packages included on the CD-ROM.
With another technical reviewer poring through the manuscript before it went to press, this book would have been better. As it stands, it's good, with plenty of detail about plenty of useful programs, marred by the fact that you're never quite sure that what you've just read is correct. If you're willing to play the part of editor and put up an errata page, you'll have done your good deed for the year.
(Order the "Red Hat Linux Bible" from Fatbrain.)
title Red Hat Linux 6 Unleashed publisher SAMS Included Stuff RedHat Linux 6 CD with installation tutorial videos. Intended Audience Users and administrators already comfortable with the command line. Scope At 1100+ pages, there's plenty of space to cover everything from installation to configuration and programming. Technical Correctness Good. Writing style Varies, depending on author. Most chapters are good, some are excellent. Other This massive tome has plenty of information for configuring Linux as a server.While Linux continues to attract desktop users, it remains an excellent server platform. Administrators familiar with Unix commands and techniques who want to deploy Linux servers might find this voluminous tome handy. (It makes a hefty LART.) While covering installation and configuration, the book intentionally skips over basic usage -- if you're not already comfortable with editing configuration files or reading man pages, you'll have some catching up to do.
After your system is installed, the first things to set up are mail, ftp, web, and news services. The SMTP and FTP chapters are excellent, with easily the best discussion of sendmail so far in this series. (Steve Shaw, author of both chapters, has his own book, reviewed in the last article of this series.) Beyond simple configuration or a light skimming of the man pages, these chapters give some theory and additional options. DNS and bind receive similarly good treatment. NIS and NFS get a few pages, but more attention is devoted to Samba -- serving both Linux and Windows clients.
The system administration section is also good. Of particular note is the TCP/IP chapter, spanning theory to firewalls. Also covered is basic system administration, PPP setup, backups, and security (good, but short). There's a chapter devoted to RedHat's graphical administration tools -- more than just Linuxconf, to be sure. Of this section, standouts include the basic administration chapter. It's packed with more details than any book so far, and focuses on a networked installation. The GNU utilities chapter describes common programs that might come in handy, if you didn't already know about them.
The last big section is an introduction to the smorgasbord of Linux programming. While thirty pages apiece isn't often enough to get into the real guts of a language or toolkit, it does suffice to help a careful reader begin to understand code she may have to confront one day. Shells (bash/pdksh, tcsh) and gawk get the best treatment, being comparatively simple. A kernel configuration chapter will guide you through kernel modules, recompilation and (hopefully short) troubleshooting. The chapter on automating common tasks can help you keep your workload manageable. Perl examples illustrate network programming, in an informative introduction.
Of course, heavy hitters -- C, C++, Perl, Tcl/Tk, Python, and Java each merit attention. Compiling, makefiles, RCS and CVS are covered in the C/C++ section. It's not the K&R book, but it's a decent overview. Perl fares better, with an introduction to the CPAN, one-liners, and shell access. Motif and LessTif get a chapter, and Tcl/Tk have a nice chapter. Python and Java each have plenty of space, but the former spends more time on actual code while the latter discusses Java technologies and libraries.
This book contains a lot of information (at 1252 pages, it ought to), and most of it is useful. Be aware, though, that many different authors contributed to it, so the writing style varies between chapters. For the most part, they're good, with David Pitts and Shaw standing out. If you want a comprehensive, everything-in-one-spot overview of technologies available for Linux in one spot, and are already familiar with Linux as a user, this book is good. (Order "Red Hat Linux 6 Unleashed" from Fatbrain.)