Domain: wgz.org
Stories and comments across the archive that link to wgz.org.
Stories · 81
-
CGI Programming with Perl
In addition to all the other books he has insightfully reviewed, chromatic has written this review of CGI Programming With Perl. This books sounds like a great resource for the builder of dynamic Web sites with a Perl background. And isn't it nice to see a book with "an unapologetic Unix flavor"? CGI Programming with Perl author Scott Guelich, Shishir Gundavaram, & Gunther Birznieks pages 451 publisher O'Reilly & Associates rating 9 reviewer chromatic ISBN 1-56592-419-3 summary Your guide to the protocols and practices of CGI programming, with a look at current tools, tips, and tricks.
The Scoop Static web pages sufficed back when the web was young. Information flowed one way (like it does on most corporate sites today). Those days are long behind us -- if you want dynamic and interactive content, a whole host of technologies have appeared to fill in the gaps.Enter Perl and CGI -- the original Swiss Army chainsaw of programming met the standard for exchanging data over HTTP and it was good. Thousands and thousands of programmers discovered this combination of power and simplicity, and the web has never been the same. Now, it's your turn to descend into the mysteries of query strings and stateless transactions, hoping to emerge successfully with the knowledge of simple -- yet interactive -- web programming.
In this second edition, the authors have gone far beyond CGI circa 1996. New topics include XML, search engines, security, and high performance Perl-based alternatives to CGI. How far we've come...
What's to Like? The book begins with an explanation of HTTP. Understanding the underlying protocol gives a picture of the whole process. The same is done for CGI, examing the interface -- the environment, input, output, and headers. It's simple enough that the description never bogs down, but detailed enough to explain difficulties CGI authors must work around (session management being high on the list).From there, it's on to forms and HTML and, before spending much time trying to write a custom decoder for form data, it's off to CGI.pm. (That's important, because it's hard to get this right, even for authors of some other CGI programming books.) As befits the module, this chapter explains handling input, generating output, and handling errors.
Shift gears for a second, and think about embedding your code in your HTML. Try SSI, HTML::Template, or Embperl. (This is just a taste of the techniques available for templating -- see Template Toolkit or Mason for other nice ones.) Following that, grit your teeth and learn some of the JavaScript you've been putting off. Use it to add an additional client-side form input checker, hook it up to your Perl with WDDX, or discover the powerful Bookmarklet.
Consider security in chapter 8 -- now that you've learned some cool tricks but before you know enough to get into real trouble, discover the vulnerabilities and how you can program around them. Use Perl's Taint mode and your web server configuration to help you out. Do not skip this chapter -- read it, then read perldoc perlsec until you get it. (It's a good chapter, but security can be hard, so don't rely on just one source of information.)
The rest of the book is a tour of various tasks you might want to accomplish. They're good too, but things shine again in the last three chapters, with help for the new, curious, frazzled Perl CGI programmer. How do you get rid of that annoying 500 server error? How can you make your program worth using for the next three years instead of worth throwing away every three months? How can you write something that will handle a hundred users a day? A thousand? A front-page link on Slashdot? (The answer is more than just FastCGI or mod_perl, though they're definitely the heavy guns.)
It's definitely time for a second edition of this tome. The expanded coverage of CGI.pm and templating technologies is a welcome addition. Promoting the use of the existing well-tested, documented, and debugged tools will, hopefully, lead to more maintainable code. Unlike some other books, the example code is clean and worthy of emulation. Hit the references and recommendation section in Appendix A for more good information, including relevant RFCs. Really. (It's a good sign for a Perl book to mention both the CPAN and perldoc, as in Appendix B.)
What's to Consider? Be careful about copying code blindly from the first few chapters without reading at least chapter 8 (and perldoc perlsec in Perl's included documentation)! Simple examples are appropriate for teaching and personal testing, but could have disastrous consequences on publicly-accessible servers. To the authors' credit, even the simple example code runs with warnings, taint mode, and the strict pragma.You'll need to know some Perl -- at least enough to follow along with somewhat-idiomatic code. Platform and portability wise, there's an unapologetic Unix flavor to the examples. Nearly everything should work on Win32 and other operating systems, but be aware of certain differences. As for web server information, it's Apache-specific. (Configuration for other platforms will be similar, but is left as an exercise for the reader.)
Some topics could use more treatment. It would have been nice to have more information on HTML::Mason (though admittedly complex, it's powerful and probably deserves more than a two page introduction) and XML and Middleware. New technologies like RSS and WAP need tools and users and programmers. There's also more to say on debugging CGI applications, though a pointer to the facetiously named Idiot's Guide could be helpful.)
The Summary Newly updated, chock full of good advice and, above all, high-quality code, this book is a great place to learn how to focus your Perl skills in a popular direction. Follow the advice presented, ask around for help if you need it, and have fun. Don't bother spending 24 hours or 21 days or whatever it is now, learn CGI programming with Perl the right way.special thanks to the amazing Simone at O'Reilly for her help making these and other reviews possible!
Table of Contents- Getting Started
- The Hypertext Transfer Protocol
- The Common Gateway Interface
- Forms and CGI
- CGI.pm
- HTML Templates
- JavaScript
- Security
- Sending Email
- Data Persistence
- Maintaining State
- Searching the Web Server
- Creating Graphics on the Fly
- Middleware and XML
- Debugging CGI Applications
- Guidelines for Better CGI Applications
- Effeciency and Optimization
- Works Cited and Further Reading
- Perl Modules
-
Linux Graphics Programming with SVGAlib
A technical book with personality? Chromatic claims just that in his review of Linux Graphics Programming with SVGAlib. If you're a graphics guru, or are looking for a book that describes a lot of the low level functions that put pretty pictures on your screen, this one sounds like one you should at least consider. Linux Graphics Programming with SVGAlib author Jay Link pages 513 publisher Coriolis Open Press rating 7.5 reviewer chromatic ISBN 1-57610-524-5 summary A tour of the SVGAlib library, designed to help you create new Linux applications or port existing applications to Linux.
The Scoop XFree86 isn't the be-all end-all of Linux graphics. Consider the embedded space, or dedicated turnkey apps, or console games, or... Jay Link introduces readers to SVGAlib in a flawed, but entertaining and useful tutorial. (If you've never heard of SVGAlib, it's a Linux-specific graphics library providing fast functions for full-screen use, joystick and keyboard input, and even 3D. It's undergone development and refinement for a few years, and it's easy to use but still powerful.) What's to Like? More than a listing of SVGAlib functions and their uses, the author covers a wide scope of graphics topics. They're all explored in the context of SVGAlib, but the basic principles apply to other libraries. Monitors display information the same way, polygons and primitives have the same algorithms, and something has to save the background before you draw something over top of it. The first three chapters cover libraries, competing tools, graphics modes, hardware fundamentals, and the primitive primitives. It's a good introduction to graphics in general.Starting simply, SVGAlib functions obviously build on each other. For the most part, so do the chapters. Once you've mastered setting pixels and drawing lines, it's time to draw circles and arcs or fill in your shapes. You'll want fonts after that, and then animation. Basically, this is a book you can read straight through with little trouble. Link travels a lot of ground -- input devices, 3D development, raytracing, animation, and user interfaces. Appendices B and C list and describe the vga and vgagl functions of SVGAlib. Though usually short, the descriptions have information enough to be useful to a casual programmer, often listing caveats and gotchas.
The most enjoyable part of the book, though, is the author's enthusiasm. It's obvious he had great fun in writing the book, and that shines through his prose. It's infectious -- he's found something cool and wants to share that with the world. There's room to grow, too. The last two code chapters build a simple paint utility and discuss ways it could be improved. If you've done your homework up 'til that point, you should be able to complete it and add more whizbang features at will.
What's to Consider? The author's pretty casual. It's refreshing to read a technical book with personality. If you're a big X fan, though, or a closet Microsoft sympathizer, you might disagree with Link's rhetoric in a couple of spots. Of course, those aren't the people likely to pick up the book, leaving the rest of us free to chuckle along with the personable prose.Two things might put you off if you're considering the purchase. First, it's not precisely a tutorial. Some chapters have pages of source code with little actual commentary. If your C-reading skills are low, be prepared to do a lot of homework to figure out what's going on. Second, there's also not a lot of explanation of the math involved. In places (geometric shapes, advanced primitive drawing, ray tracing) either dig up those old trigonometry notes or a battered copy of Michael Abrash's Zen of Graphics Programming (recommended in the text). This isn't an exploration of specific graphics theory as much as an exploration of the library.
The only thing I really disliked was the book's formatting. As is usual with techie books, warnings and notes are interspersed throughout the text. In a few spots, there also are glossary-like definitions mingled with notes, text, and figures in a hard-to-read mess of words, lines, and icons. More consistency would improve the readibility. Having additional explanations would have helped, but most of the code is clear enough that the a-ha factor comes into play. (Moderately experienced programmers can read the accompanying code and description and things will click the first or second time through). The overall tone says, "Here are the tools, now go explore and play and have fun."
The Summary Somewhat experienced programmers with a decent math background will get the most out of this book. It's an entertaining look at a library I'd overlooked for quite some time. For a good introduction to SVGAlib (and a healthy dose of fun programming), check it out. Table of Contents- Getting Started
- Graphics Basics
- First Programs
- Complex Shapes, Formulas, And Functions
- Color
- Shades, Fills, And Patterns
- Fonts
- Fractals
- Graphic Files
- Basic Animation
- Polygons
- 3D Images
- Raytracing And Photorealism
- Game Basics
- Using The Mouse And Joystick
- Landscapes
- A Look At Existing SVGAlib Applications
- Simple Paint Program
- Thoughts On A GUI
- Video Card Drivers
- GNU General Public License
- Libvga Functions
- Libvgagl Functions
- ASCII Character Codes
- Chipsets Supported By SVGAlib
- A Brief History of SVGAlib
- FAQs And Troubleshooting
Purchase this book at ThinkGeek. -
Grokking The Gimp
The Gimp, frankly, rocks. But like most pieces of complex software, it's a bit of a...problem to learn how to use. Enter chromatic's review of Carey Bunk's Grokking The Gimp. If you want to know more about image manipulation, check it out. Grokking the GIMP author Carey Bunks pages 342 publisher New Riders rating 8.2 reviewer chromatic ISBN 0-7357-0924-6 summary Principles of image manipulation explained in the context of the GIMP.
The Scoop One of the standout userland programs to come from Free Software development, the GIMP offers a powerful range of features for digital imagery. Unfortunately, not everyone's had the privilege of (or inclination for) sitting through 'Principles of Color' or similar classes. Not to fear, the author has - - and he's willing to share his knowledge.Compounding the complexity challenge, the GIMP has its own way of doing things. Half of the work of editing an image seems to be making a good selection. Again, the author has theory to divulge and tips to present to improve your technique. Though only a few tools and methods are discussed, they are fundamental to all advanced operations. (Note that the book covers the as-yet unreleased 1.2 GIMP -- the 1.1.x betas have been quite usable for months.)
What's to Like? This attractive book is well-printed, with plenty of full-color images and good figures. It's also well-designed and the layout is excellent. The decision to add a few common problems and frequently asked questions at the end of most chapters is commendable. It's not designed as a reference book, but the index and table of contents are detailed enough to locate specific actions later.Banks assumes little prior knowledge of the GIMP. Chapter one is a brief tutorial of the program's features and functions. More experienced users can skip this, though I found a couple of timesaving tidbits. The same may be said of chapter two, on layers, though the material quickly moves beyond what an average user might discover in an afternoon. The selections and masks chapters form the real foundation for most GIMP work -- how do you choose parts of your image to edit? A little theory, a few tools, and some examples later, you'll have multiple answers for that question.
The next two chapters pile on the theory. First, Bunks discusses the theory of color -- running the gamut (so to speak) from additive to subtractive, RGB, HSV, CMYK, and grayscale. There's plenty of math (more than one would need), and the explanations here are quite detailed. It's fundamental knowledge, and most readers can probably pick up just enough to get by. Don't skip ahead and miss the very useful touchup discussions in chapter 6. (The author considers them worth the price of the book -- given the results on some of my images, I'm inclined to agree.)
The final three chapters each cover different tasks one might wish to accomplish. Bunks explores various techniques while creating projects. Screenshots and commentary accompany step-by-step instructions. It's in these sections that the full power of the GIMP comes into play. Rounding things out are a handy keyboard shortcut guide and a detailed index.
What's to Consider? Things do get pretty heady in the theory section. Non-programmers (and people who haven't already worked with professional imaging) will have some slow going trying to absorb the math and colorspace information. It's not essential to use the GIMP, but knowing the differences between the modes and the limitations of each is necessary for most serious work.Readers looking for a guide to the dozens of distributed plugins will be disappointed -- this book is more interested in the general techniques used in nearly every non-simple project. Finally, the book seems a little short. It's 342 pages, but the information is good enough that perhaps more subjects can be covered in a future edition. (That's a good thing.)
The Summary Nearly anyone will benefit from the deep magic behind the menu operations. Move past cheesy banners and poorly-executed lasso operations. Double the size and power of your toolbox, and get to know the GIMP. (If you're not convinced, browse the book online!)Or buy it at ThinkGeek.
Table of Contents- GIMP Basics
- Review of Layers
- Selections
- Masks
- Colorspaces and Blending Modes
- Touchup and Enhancement
- Compositing
- Rendering Techniques
- Web-Centric GIMP
- GIMP Resources
- Keyboard Shortcuts
-
Grokking The Gimp
The Gimp, frankly, rocks. But like most pieces of complex software, it's a bit of a...problem to learn how to use. Enter chromatic's review of Carey Bunk's Grokking The Gimp. If you want to know more about image manipulation, check it out. Grokking the GIMP author Carey Bunks pages 342 publisher New Riders rating 8.2 reviewer chromatic ISBN 0-7357-0924-6 summary Principles of image manipulation explained in the context of the GIMP.
The Scoop One of the standout userland programs to come from Free Software development, the GIMP offers a powerful range of features for digital imagery. Unfortunately, not everyone's had the privilege of (or inclination for) sitting through 'Principles of Color' or similar classes. Not to fear, the author has - - and he's willing to share his knowledge.Compounding the complexity challenge, the GIMP has its own way of doing things. Half of the work of editing an image seems to be making a good selection. Again, the author has theory to divulge and tips to present to improve your technique. Though only a few tools and methods are discussed, they are fundamental to all advanced operations. (Note that the book covers the as-yet unreleased 1.2 GIMP -- the 1.1.x betas have been quite usable for months.)
What's to Like? This attractive book is well-printed, with plenty of full-color images and good figures. It's also well-designed and the layout is excellent. The decision to add a few common problems and frequently asked questions at the end of most chapters is commendable. It's not designed as a reference book, but the index and table of contents are detailed enough to locate specific actions later.Banks assumes little prior knowledge of the GIMP. Chapter one is a brief tutorial of the program's features and functions. More experienced users can skip this, though I found a couple of timesaving tidbits. The same may be said of chapter two, on layers, though the material quickly moves beyond what an average user might discover in an afternoon. The selections and masks chapters form the real foundation for most GIMP work -- how do you choose parts of your image to edit? A little theory, a few tools, and some examples later, you'll have multiple answers for that question.
The next two chapters pile on the theory. First, Bunks discusses the theory of color -- running the gamut (so to speak) from additive to subtractive, RGB, HSV, CMYK, and grayscale. There's plenty of math (more than one would need), and the explanations here are quite detailed. It's fundamental knowledge, and most readers can probably pick up just enough to get by. Don't skip ahead and miss the very useful touchup discussions in chapter 6. (The author considers them worth the price of the book -- given the results on some of my images, I'm inclined to agree.)
The final three chapters each cover different tasks one might wish to accomplish. Bunks explores various techniques while creating projects. Screenshots and commentary accompany step-by-step instructions. It's in these sections that the full power of the GIMP comes into play. Rounding things out are a handy keyboard shortcut guide and a detailed index.
What's to Consider? Things do get pretty heady in the theory section. Non-programmers (and people who haven't already worked with professional imaging) will have some slow going trying to absorb the math and colorspace information. It's not essential to use the GIMP, but knowing the differences between the modes and the limitations of each is necessary for most serious work.Readers looking for a guide to the dozens of distributed plugins will be disappointed -- this book is more interested in the general techniques used in nearly every non-simple project. Finally, the book seems a little short. It's 342 pages, but the information is good enough that perhaps more subjects can be covered in a future edition. (That's a good thing.)
The Summary Nearly anyone will benefit from the deep magic behind the menu operations. Move past cheesy banners and poorly-executed lasso operations. Double the size and power of your toolbox, and get to know the GIMP. (If you're not convinced, browse the book online!)Or buy it at ThinkGeek.
Table of Contents- GIMP Basics
- Review of Layers
- Selections
- Masks
- Colorspaces and Blending Modes
- Touchup and Enhancement
- Compositing
- Rendering Techniques
- Web-Centric GIMP
- GIMP Resources
- Keyboard Shortcuts
-
Learning GNU/Linux: The Survey Course Continues
Madman Chromatic (coder, writer, thinker) sheds even more light on the books lurking on store shelves designed to lure, and then snare, new or uncertain users into trying out -- and actually enjoying! -- this wacky "Linux thing." This time around, the texts he's chosen cover the topics of installation and day-to-day operation of a Linux system in greater depth than the Dummies series dares to, but they're still aimed squarely at competent, literate users rather than only at technical gurus. Read on for his insights into Using Linux, Linux Configuration & Installation, and the Linux Essential Reference. Various Introductory and Reference Books author (Varies by title) pages n/a publisher (Varies by title) rating n/a reviewer chromatic ISBN (Varies by title) summary Three books intended to provide clear guidance and reference to the Linux sysadminThis week's edition takes a look at three very different books. We have tutorials, theory and techniques, and thick juicy slabs of opts. Step through instructions and stay on the sidewalk, get your hands dirty on your own if you're the trailblazing type, or read up on what you always thought someone should code, if you're stuck at your desk.
Title (Author) Using Linux (Jack Tackett, Jr / Steven Burnett) Publisher, ISBN QUE, 0789717468 Included Stuff none Intended Audience RedHat users. Scope Installation and basic introduction to Linux. Technical Correctness Occasional weird advice. (In one spot, the authors describe a very insecure PATH setting without explaining that it's dangerous.) Writing style Varies with chapter author. Other Two-thirds of the way through the book, there are a number of mildly annoying typesetting errors. Unfortunately, they tend to appear near literal command-lines. Hopefully this will be corrected in a second edition.Using Linux is a cross between a reference-book and a tutorial. Each chapter takes a different subject (Networking, Working with Hard Drives) and breaks it up into common tasks -- each listed in the copious table of contents and the large index. For example, if you're interested in setting up a file system, you can flip right to page 495 and choose between the RedHat tool or editing /etc/fstab yourself. Though RedHat tools receive a lot of attention, they're not presented as the only way to get things done. In a pinch, you'll find command line equivalents for common tasks given near the graphical description.
Accompanying the chapter text are occasional sidebars. These label figures, give a bit of historical perspective, and dish out useful tidbits of information that don't fit into the normal flow. This is less distracting than the usual approach of goofy icons and inset boxes often found in other books.
What's nice about this book is that it covers more subjects than most of the others. It's thick, but not unreasonably so. It's easy to read, but packed with details. Instead of covering only the handful of things every (home) user will need, the authors add information about removable drives, fax configuration, and file system cleanup, to name a few topics. Also nice is a brief chapter on building installations from source code (both make and Imake style systems) -- there's another world out there beyond RPM.
The task-oriented approach doesn't spend much time on theory, preferring a gentle overview and usage specifics. Obviously, there's more to learn than what's presented, but people more interested in results will prefer this decision. The system administration section really stands out, for an introductory book, and the appendix listing common Linux commands and glossary of terms will come in handy.
All things considered, this is a solid book. The breadth of information is good, and the flow of topics means it's readable from start to finish. Occasional flaws detract slightly, but they're not fatal.
[You can purchase this book at FatBrain.]
Title (Author) Linux Configuration & Installation (Patrick Volkerding, Kevin Reichard, Eric Foster-Johnson) Publisher, ISBN M&T Press, 0764570056 Included Stuff Slackware 3.5 CD-ROM, with extra disk full of additional programs. Intended Audience The do-it-yourself type. No prior Unix knowledge is necessary, though some experience with the command line will come in handy. Scope Installation and introduction to Slackware. Very good overview of the general Linux way to do things. Technical Correctness Quite good. Writing style Easy to read, though still technical. Other The version reviewed is the 4th edition -- somewhat dated (1998), but not out of touch. If there's a newer edition, get it! If not, you won't go astray with this one.With help from Patrick Volkerding (Slackware creator) himself, this book teaches the do-it-yourself distribution. Expect a tremendous amount of detail -- in the first chapter alone, there are dozens of links to a Web site for more information about Linux and particular hardware. Fully half the book falls under installation and initial configuration issues, though this includes tinkering with your window manager, setting up networking, and recompiling your kernel (topics usually saved for later in other books). The fourth edition added a section on Slackware and portable computing, with pages of links to information on particular laptop models and information on synchronizing your Palm Pilot.
Chapter seven introduces the command line (though people following along will have used it -- with gentle prodding). It's a whirlwind, 50-page tour that explains a bevy of tools and tricks both concisely and thoroughly enough for day to day work. Following that are applications -- text editors, text formatters, graphics viewers, and the like. A short section on system administration covers scheduling, managing accounts, checking performance, but relatively little about security. Finally, chapter ten delves in to Linux programming -- toolkits, languages, tools, and scripts. Maybe the hors d'ouvres will whet your appetite to learn more, or at least help you with the magic "./configure; make; make install;" incantations.
The appendices list additional sources of information and the contents of the CD-ROM. Don't overlook the supplemental information, either -- including 30 pages of extra package description. (If you're going to install Slackware yourself, you ought to know what you need and what additional options there are.)
The only reason to overlook this book is its age, which is a shame. Things haven't changed so much that the knowlege presented is obsolete -- considering that the hands-on Slackware approach often leads to true and deep understanding. Unless you're too intimidated to experiment, you can learn a great deal, even from a two-year-old text.
This book is eminently readable. Readers with some technical background will appreciate the slightly geeky, no nonsense approach, while users new to Unix in general will benefit from the quality explanations. When the publishers see fit to release a 5th edition of this book, it deserves very serious consideration.
[You can purchase this book at FatBrain.]
Title (Author) Linux Essential Reference (Ed Petron) Publisher, ISBN New Riders, Included Stuff none Intended Audience Users and administrators already comfortable with the command line. Scope Common and uncommon commands and switches. If you can imagine a task, it's likely listed here in glorious detail. Technical Correctness Good. Writing style Reference style -- very concise, little prose. Not something you'd read straight through. Trust me. Other The organization by topic here is nice. I've used it a few times already, just to look up something I knew had a command option somewhere.For the user already familiar with shell basics, running programs, and using 'shutdown' instead of flipping the switch, a reference of commands and options might come in handy. That's the idea behind Linux Essential Reference. If you already know what you want to do but not how to do it, flip to the appropriate section and discover all of the little timesavers and niceties you've always wanted but never knew existed.
What sets this book apart from other works, including the man and info pages, is the excellent organization. Not only are commands grouped by category, the sections are (roughly) arranged according to complexity. (Although if you're not familiar with cd, mv, cp, and at least pico before looking something up, get thee to a tutorial!) For example, the Kernel chapter subsections are, in order, 'Installing New Kernels', 'Using Modules', 'Device Files', 'The /proc Filesystem', and 'Kernel Message Logs.'
Rather than reformatting man pages, the author has gone to quite a bit of work, rewriting often terse descriptions into longer examples. This is helpful with the lesser-known options (ls -T 4). The amount of detail, more than in any other work, makes this a good reference. (If you do read it all the way through, you'll have something to put on your technical reviewing resume.)
As seems to be usual, this book is divided into a user section and an administrator section. Administration gets a stronger treatment here, with information on LAN-specific tools. It's not limited to the home user's point of view, which makes it more useful to system administrator-types. The security chapter, including tcpwrappers and ipchains configuration, stands out as informative, though brief.
This book answers the question, "Okay, now what?" If you're feeling experimentative after polishing off one of the others, but you want a little more direction than the command prompt usually provides, having this book on your desk will prove valuable.
-
Learning GNU/Linux: The Survey Course Continues
Madman Chromatic (coder, writer, thinker) sheds even more light on the books lurking on store shelves designed to lure, and then snare, new or uncertain users into trying out -- and actually enjoying! -- this wacky "Linux thing." This time around, the texts he's chosen cover the topics of installation and day-to-day operation of a Linux system in greater depth than the Dummies series dares to, but they're still aimed squarely at competent, literate users rather than only at technical gurus. Read on for his insights into Using Linux, Linux Configuration & Installation, and the Linux Essential Reference. Various Introductory and Reference Books author (Varies by title) pages n/a publisher (Varies by title) rating n/a reviewer chromatic ISBN (Varies by title) summary Three books intended to provide clear guidance and reference to the Linux sysadminThis week's edition takes a look at three very different books. We have tutorials, theory and techniques, and thick juicy slabs of opts. Step through instructions and stay on the sidewalk, get your hands dirty on your own if you're the trailblazing type, or read up on what you always thought someone should code, if you're stuck at your desk.
Title (Author) Using Linux (Jack Tackett, Jr / Steven Burnett) Publisher, ISBN QUE, 0789717468 Included Stuff none Intended Audience RedHat users. Scope Installation and basic introduction to Linux. Technical Correctness Occasional weird advice. (In one spot, the authors describe a very insecure PATH setting without explaining that it's dangerous.) Writing style Varies with chapter author. Other Two-thirds of the way through the book, there are a number of mildly annoying typesetting errors. Unfortunately, they tend to appear near literal command-lines. Hopefully this will be corrected in a second edition.Using Linux is a cross between a reference-book and a tutorial. Each chapter takes a different subject (Networking, Working with Hard Drives) and breaks it up into common tasks -- each listed in the copious table of contents and the large index. For example, if you're interested in setting up a file system, you can flip right to page 495 and choose between the RedHat tool or editing /etc/fstab yourself. Though RedHat tools receive a lot of attention, they're not presented as the only way to get things done. In a pinch, you'll find command line equivalents for common tasks given near the graphical description.
Accompanying the chapter text are occasional sidebars. These label figures, give a bit of historical perspective, and dish out useful tidbits of information that don't fit into the normal flow. This is less distracting than the usual approach of goofy icons and inset boxes often found in other books.
What's nice about this book is that it covers more subjects than most of the others. It's thick, but not unreasonably so. It's easy to read, but packed with details. Instead of covering only the handful of things every (home) user will need, the authors add information about removable drives, fax configuration, and file system cleanup, to name a few topics. Also nice is a brief chapter on building installations from source code (both make and Imake style systems) -- there's another world out there beyond RPM.
The task-oriented approach doesn't spend much time on theory, preferring a gentle overview and usage specifics. Obviously, there's more to learn than what's presented, but people more interested in results will prefer this decision. The system administration section really stands out, for an introductory book, and the appendix listing common Linux commands and glossary of terms will come in handy.
All things considered, this is a solid book. The breadth of information is good, and the flow of topics means it's readable from start to finish. Occasional flaws detract slightly, but they're not fatal.
[You can purchase this book at FatBrain.]
Title (Author) Linux Configuration & Installation (Patrick Volkerding, Kevin Reichard, Eric Foster-Johnson) Publisher, ISBN M&T Press, 0764570056 Included Stuff Slackware 3.5 CD-ROM, with extra disk full of additional programs. Intended Audience The do-it-yourself type. No prior Unix knowledge is necessary, though some experience with the command line will come in handy. Scope Installation and introduction to Slackware. Very good overview of the general Linux way to do things. Technical Correctness Quite good. Writing style Easy to read, though still technical. Other The version reviewed is the 4th edition -- somewhat dated (1998), but not out of touch. If there's a newer edition, get it! If not, you won't go astray with this one.With help from Patrick Volkerding (Slackware creator) himself, this book teaches the do-it-yourself distribution. Expect a tremendous amount of detail -- in the first chapter alone, there are dozens of links to a Web site for more information about Linux and particular hardware. Fully half the book falls under installation and initial configuration issues, though this includes tinkering with your window manager, setting up networking, and recompiling your kernel (topics usually saved for later in other books). The fourth edition added a section on Slackware and portable computing, with pages of links to information on particular laptop models and information on synchronizing your Palm Pilot.
Chapter seven introduces the command line (though people following along will have used it -- with gentle prodding). It's a whirlwind, 50-page tour that explains a bevy of tools and tricks both concisely and thoroughly enough for day to day work. Following that are applications -- text editors, text formatters, graphics viewers, and the like. A short section on system administration covers scheduling, managing accounts, checking performance, but relatively little about security. Finally, chapter ten delves in to Linux programming -- toolkits, languages, tools, and scripts. Maybe the hors d'ouvres will whet your appetite to learn more, or at least help you with the magic "./configure; make; make install;" incantations.
The appendices list additional sources of information and the contents of the CD-ROM. Don't overlook the supplemental information, either -- including 30 pages of extra package description. (If you're going to install Slackware yourself, you ought to know what you need and what additional options there are.)
The only reason to overlook this book is its age, which is a shame. Things haven't changed so much that the knowlege presented is obsolete -- considering that the hands-on Slackware approach often leads to true and deep understanding. Unless you're too intimidated to experiment, you can learn a great deal, even from a two-year-old text.
This book is eminently readable. Readers with some technical background will appreciate the slightly geeky, no nonsense approach, while users new to Unix in general will benefit from the quality explanations. When the publishers see fit to release a 5th edition of this book, it deserves very serious consideration.
[You can purchase this book at FatBrain.]
Title (Author) Linux Essential Reference (Ed Petron) Publisher, ISBN New Riders, Included Stuff none Intended Audience Users and administrators already comfortable with the command line. Scope Common and uncommon commands and switches. If you can imagine a task, it's likely listed here in glorious detail. Technical Correctness Good. Writing style Reference style -- very concise, little prose. Not something you'd read straight through. Trust me. Other The organization by topic here is nice. I've used it a few times already, just to look up something I knew had a command option somewhere.For the user already familiar with shell basics, running programs, and using 'shutdown' instead of flipping the switch, a reference of commands and options might come in handy. That's the idea behind Linux Essential Reference. If you already know what you want to do but not how to do it, flip to the appropriate section and discover all of the little timesavers and niceties you've always wanted but never knew existed.
What sets this book apart from other works, including the man and info pages, is the excellent organization. Not only are commands grouped by category, the sections are (roughly) arranged according to complexity. (Although if you're not familiar with cd, mv, cp, and at least pico before looking something up, get thee to a tutorial!) For example, the Kernel chapter subsections are, in order, 'Installing New Kernels', 'Using Modules', 'Device Files', 'The /proc Filesystem', and 'Kernel Message Logs.'
Rather than reformatting man pages, the author has gone to quite a bit of work, rewriting often terse descriptions into longer examples. This is helpful with the lesser-known options (ls -T 4). The amount of detail, more than in any other work, makes this a good reference. (If you do read it all the way through, you'll have something to put on your technical reviewing resume.)
As seems to be usual, this book is divided into a user section and an administrator section. Administration gets a stronger treatment here, with information on LAN-specific tools. It's not limited to the home user's point of view, which makes it more useful to system administrator-types. The security chapter, including tcpwrappers and ipchains configuration, stands out as informative, though brief.
This book answers the question, "Okay, now what?" If you're feeling experimentative after polishing off one of the others, but you want a little more direction than the command prompt usually provides, having this book on your desk will prove valuable.
-
GNU/Linux For Dummies: A Brief Survey
chromatic is back with a mini-compendium of introductory Linux texts -- and yes, they have the famously protected "Dummies" trademark. Don't scoff at the nature of these books, though; the skill of translating the arcana of any computer topic (and boy are they all arcane to the uninitiated!) into language that mom, kids and the guy down the street can understand is not a common one. If you don't know what a root prompt (or an editor) is, or why you might want one, it's hard to do much else with your system. [SuSE, Corel Open-, Red Hat] Linux for Dummies author Jon Hall and [Jay Migliaccio, Nicholas Wells, himself] pages 384 publisher IDG Books rating 7.5 reviewer chromatic ISBN (see each) summary A collection of distribution-specific books aimed at beginning users, and which might make a good brush-up for advanced users.You've decided to take the plunge -- there's an unused computer in the corner, you're looking for a way to fill that new 20 GB hard drive, or you've gone all out with a shiny new machine and Windows tax be darned! It's time to figure out this Linux thing. How do you start? If your local computer guru blanches at the thought of a command line, or if you have that stubborn "I'll figure it out if I have to stay up all night" streak that characterizes so many successful hackers, perhaps a book will come in handy.
Over the next few weeks, we'll be taking a look at a handful of randomly selected texts from various publishers. Their scopes and intended audiences range from nascent beginner to somewhat experienced existing user. Some walk you through installation and some expect you already know what to do right after you log in. They all purport to be your guide to the sometimes confusing, occasionally maddening, and even often rewarding world of Linux. Which one, if any, is right for you? Hopefully we'll answer that question.
Linux ... for Dummies? This week, our books come from IDG's popular "Dummies" series (but we'll skip the obvious question begging). These three books are fundamentally the same, undoubtedly due to the venerable maddog's presence as common author. Generic Linux information appears almost verbatim, and some chapters differ only in phrasing. Some information is rearranged, and the chapter on using X is different among the three (two focus on KDE, one on GNOME). A description of one book will give you a general idea of the other two. Of course, there's distribution specific information, specifically relating to installation and certain administration tasks.Why would you buy these books? They provide detailed installation instructions and supply recent CDs of the titular distributions. They also provide decent -- if basic -- introductions to simple commands and standard tasks. The installation chapters have sufficient detail to walk nearly anyone through the process, including dual-booting techniques, tips on discovering hardware information in Windows, selecting the desired packages, and creating sane partitions. (With 5 chapters devoted to navigating the shiny installers, the only thing preventing success is hardware failure or sunspots.) If you follow the directions, you'll have a decently-equipped workstation capable of accessing the Internet through a modem.
Once your new Linux system is installed, what can you do? There's a tutorial on command-line basics, discussing the Unix file system and basic file commands. You'll meet the bash shell, with pipes and job controls and even a little shell programming. The vi editor also gets a bit of explanation -- follow the instructions and you'll know enough to edit files. (Pull out the command reference card from the front of the book just in case you forget :wq.)
It's on to X, after that. Here the books diverge again. After explaning the basics of X and whichever Desktop Environment the distribution prefers, the authors describe a few common tasks and programs and leave you to explore. Some basic system administration tasks get the spotlight -- file maintenance, adding a new disk, or installing software. (Don't expect to pull down $90,000/year on an entry-level SysAdmin job after this section. The SuSE and Caldera books do discuss building a new kernel, though.)
Appendixes include hardware compatibility lists and a description of the Linux man page format.
title SuSE Linux for Dummies [ISBN: 0764506811] publisher IDG Books Included Stuff SuSE 6.2 CD-ROM Intended Audience Linux newcomers who aren't afraid to install it themselves. Little prior computing experience necessary. Scope Installation and basic introduction to Linux. Technical Correctness No glaring errors. Writing style Highly informal. May be too verbose for more technical readers. Other Focuses on KDE, where applicable. System administration tasks take place with YaST, SuSE's homebrew tool.There's not a lot of space given to common applications beyond Netscape and vi. A quick tour of KDE will probably give users enough confidence to plumb the depths of the KDE menus themselves, but the "What Now?" feature might bite after closing the back cover.
title Caldera OpenLinux for Dummies [ISBN 076450679X] publisher IDG Books Included Stuff OpenLinux 2.3 CD-ROM Intended Audience same Scope same Technical Correctness same Writing style Highly informal, even a bit chatty. Other Focuses on KDE. System administration tasks use COAS (the Caldera Open Administration System).This book has more information on exploring and customizing KDE, but also doesn't go into detail on user applications. (Even mentioning something like KOffice, AbiWord, or StarOffice would have been nice.)
title RedHat Linux for Dummies [ISBN 0764506633] publisher IDG Books Included Stuff RedHat Linux 6.1 and complete source on CD-ROMs. Intended Audience same Scope A bit more information than the other two books, mostly on Linux applications. Technical Correctness same Writing style Rather informal, though less so than the other two books. Other Focuses on GNOME. Uses Linuxconf to perform system administration.It would appear that Paul Sery rewrote large portions of his book. While maddog's anecdotes in the other two are from the first person, the corresponding sections are in the third person perspective. Whatever the explanation, there's between 20 and 30 extra pages of information in here (including RPM and ipchains basics). There's more time spent exploring the shell and command line before diving into a tour of X applications, too, like Applixware and Wine. I preferred this book over the other two due to the extra information and the better organization of topics.
Conclusion:Someone who's already used to the Dummies series, is comfortable with the idea of installing Linux for herself, and wants a hand to hold through the process would enjoy these books. The knowledge imparted by these books -- giving extremely detailed installation instructions (follow the screenshots) but leaving a user with basic shell knowledge and some idea of how to navigate KDE or GNOME menus -- probably needs a supplement. I'm not sure enough information is presented to allow nascent hackers to figure things out for themselves. Still, for the intended audience, you get an introduction and the CDs in a convenient package.
You can purchase these books at Fatbrain: Take your pick from [SuSE Linux, Caldera OpenLinux, Red Hat Linux] For Dummies.
-
Windows NT TCP/IP Network Administration
Review dynamo chromatic again regales you with enough information to tweak your ears and possibly encourage serious browsing, at least if if you are lucky enough to deal with multi-platform networks involving such obscurities as Windows NT and TCP/IP. Just like an O'Reilly book to make things easy. Windows NT TCP/IP Network Administration author Craig Hunt and Robert Bruce Thompson pages 504 publisher O'Reilly & Associates rating 8 reviewer chromatic ISBN 1-56592-377-4 summary Setting up a Windows NT Server-based network? You'll learn the basics of TCP/IP and the NT TCP/IP services with this guide.
Overview If you find yourself using or administering a network with Windows NT clients and servers, but don't understand TCP/IP and all that it entails, this book will teach you. Note that it's aimed at administrators and power users, though the first few chapters provide a good introduction to a complicated subject. Expect plenty of information about providing services with components like WINS, RRAS, and IIS.
The Details While the pragmatic approach might brush over gory details of routing protocols and protocol architecture to reach pages full of screenshots, Administration takes a more gradual approach by explaining first. (Understanding the intricacies may not be a prerequisite to follow the wizards and set up a working NT Server, but the planning and troubleshooting stages require the real knowledge you'll get here.) Thankfully, the authors have organized the book into three logical sections -- Fundamentals, Tutorials, and Reference.Fundamentals digs into the history of TCP/IP, covering its development, usage, and peculiarities. Included is information about routing, addressing, clients, and services. It covers a lot of ground, and most of the discussion is clear. (Some of the explanation of address classes and subnetting less clear -- but the subject matter can be complex the first time through.) Where there are multiple solutions to a problem, as in the case of routing protocols, the authors take time to show the benefits and drawbacks of each approach, and suggest which is most appropriate for a given situation.
The Tutorials section demonstrates setup and configuration of various services of the network. It's server-centric, so don't expect complete details on setting up clients. Topics covered range from the basic TCP/IP component installation to IIS setup and configuration. The scope of the network the authors describe ranges from a small network with a dialup Internet connection (at best) to a full-blown multi-subnet beast with a dedicated connection. The planning section is very informative and useful.
As it's dedicated to tutorials, the installation and configuration sections follow the Microsoft dialogs very closely. It's a good resource for explaining each of the options in sequence. The authors also point out the strengths and weaknesses of NT's implementation of the various services.
The final section is a Reference section. Two chapters stand out as very important -- the chapter on Troubleshooting and the chapter on Network Security. Troubleshooting describes various command-line tools such as ping, netstat, and traceroute, with regard to the information they provide and how they are useful in tracking down network problems. It even gets into the basics of SNMP and protocol analysis. It's a unique approach, and it works well.
Summary One overall weakness is that there was little information about integrating an NT server into a heterogenous network -- certainly a common task. Still, with the breadth of information covered, there's really not room to get into the specifics and peculiarities involved. Also, while there is some discussion of future developments (such as IPv6 support), be aware that the information pertains to Windows NT 4.0 (with IIS 4.0 from the Option Pack).The strengths of Windows NT TCP/IP Network Administration are plenty. Information is presented clearly and accurately and arranged logically and chronologically, as one would set up a network. The tutorials are comprehensive, relying more on thorough written explanation than strategic screenshots. The section on additional resources points straight to the authoritative sources, such as RFCs. The Appendixes go into a great deal of detail that may never apply -- but would be useful and handy in some cases. Clearly, this book will be useful even after the network is in operation.
Table of Contents- Overview of TCP/IP
- Delivering the Data
- Network Services
- Getting Started
- Installing TCP/IP
- Using Dynamic Host Configuration Protocol
- Using Windows Internet Name Service
- Configuring DNS Name System
- Microsoft Routing and Remote Access Service
- Internet Information Server (IIS)
- Troubleshooting TCP/IP
- Network Security
- Information Resources
- PPP Scripting Languages
- DNS Resource Records
- Microsoft DHCP Option Support
- Routing Protocols
-
MP3: The Definitive Guide
It may have taken a semi-obscure German professor, the profit motive of the world's CD-ROM drive producers, ingenious hackers and aesthetically gifted interface designers, but the simple fact is that MP3s are out there, and they're everywhere -- every major desktop OS comes with players for your easy listening. Chronic book review madman chromatic points you to a fount of knowledge for anyone who needs more than "click here to play." MP3: The Definitive Guide author Scott Hacker pages 388 publisher O'Reilly & Associates rating 8.5 reviewer chromatic ISBN 1-56592-661-7 summary Everything there is to know about MP3, as it stands right now and might be in the near future.
The Scoop Judging by the way even my non-technical friends are talking about MP3s, digital music is on a lot of minds. As usual, O'Reilly has published the definitive guide to all things MP3. Computer and music guru Scott Hacker takes you through the codec, the software, the controversies, the competition, and building your own equipment. Though it's aimed at end-users, the book is still accessible to the do-it-yourself weekend hardware wizard.
What's to Like? Hacker's writing is simple and not-too-technical. In places, it's even informal. Sure, there are plenty of gory details, but you won't miss anything essential if you skip over the sidebars now and then. An average computer user could probably create his own MP3s while reading chapter five, for example. Power users aren't left out, though: Audiophiles, hackers and tweakers will benefit from the extensive comparisons of players, encoders, hardware, and competing codecs.No stranger to alternative operating systems (he also wrote the BeOS Bible), Hacker takes pains to be cross-platform, covering Windows, Mac, Linux, and BeOS. This isn't limited to playback options, though that's the most extensive discussion, but includes serving files over the Internet. Of special consideration are quality issues. The author's perspective as a sound connoisseur comes in handy while discussing optimal (and affordable) recording and playback equipment.
As per the title, the Guide completely covers the subject. If you're interested in collecting MP3s, creating them, playing them back with software, with portable hardware, car hardware, building your own hardware, making music available to others, discovering alternate means of delivery and other codecs, or just want a broad overview of all things MP3, you'll find something of immediate interest. If Hacker whets your appetite for more information, follow one of his references to the source itself. (That's especially nice in his treatment of the more exotic hardware players.)
What's to Consider? Though the chapter on legal information and MP3 is excellent, and among the most extensive treatments of the issue lay readers are likely to encounter, it's U.S. Centric. Also, it should be noted that the digital music debate is undeniably fuzzy, so any interpretations are open to correction. Though he debunks the common disclaimers found on shady MP3 sites, the author wisely sidesteps copyright arguments by explaining the relevant laws, and allowing his readers to come to their own conclusions in the gray areas.People who've been tracking the scene for a while know how fast things change. Information on specific programs or hardware players could become obsolete quickly. (That's noted in the text.) For the most part, Hacker prefers to explain concepts and trends rather than the fine details of any particular implementation. For items still unresolved, such as the eventually supported ID3v2 specification, he provides caveats regarding compatibility issues.
The Summary Catch up to the digital music revolution with MP3: The Definitive Guide. It's packed with information, yet easy to read, and stuffed with links to satisfy your appetite for up-to-the-second information.
Purchase this book at ThinkGeek.
Table of Contents- The Nuts and Bolts of MP3
- How MP3 Works: Inside the Codec
- Getting and Playing MP3 Files
- Playlists, Tags, and Skins: MP3 Options
- Ripping and Encoding: Creating MP3 Files
- Hardware, Portables, Home Stereos, and Kits
- The Not-So-Fine-Print: Legal Bits and Pieces
- Webcasting and Servers: Internet Distribution
- Competing Codecs and Other File Formats
- ID3v1 Genres
-
Who's Afraid Of C++?
The reason computers -- never mind programming -- are so obscure to most people is a learning curve which appears dangerously steep stands between the ordinary user (who knows how to use a mouse, and which button turns on the monitor) and writing even "Hello, World." Prolific reviewer chromatic reviews here Who's Afraid of C++?, a book intended to flatten that curve. Who's Afraid of C++? author Steve Heller pages 486 publisher AP Professional rating 8 reviewer chromatic ISBN 0-12-339-97-4 summary In his unique approach, Steve Heller presents programming concepts and information as a conversation between teacher and student.
The Scoop Breaking with traditional lecture-on-paper format, Heller demystifies computers, programming, and C++ for absolute beginners. That's right -- he recruited a full-fledged novice user, capable of little more than e-mail and word processing, and turned her into a decent programmer while reviewing this book. (She became Mrs. Heller shortly after that.) Any computer owner with time, the ability to follow directions, and the willingness to learn could also become a programmer.The resulting text is more of a collaboration, or a commentary. Steve, the author, presents his information and then Susan, the novice, interrupts to ask questions. The big gamble is that her questions are the same that the average reader would ask. It largely pays off, only occasionally belaboring a point. (To be fair, it could also be called 'reinforcing a point.')
What's to Like? Heller's writing is informal, but precise. Some might find it chatty, but beginners will find it more comforting than raw technical prose. His flow of topics makes sense (and does not copy the "Chapter two is everything to know about types, and chapter three is all about flow control" scheme other introductory teaching books steal from K&R). Little prior knowledge is necessary. Before actually programming, the book explores raw hardware, answering such questions as "What happens when you execute a program?", "What's a register and why is cache important?", and "How does source code turn into a running program?"Chapters tend to explain only one issue in detail -- how to use functions, for example, or the basics of a class. Heller states his objectives up front, and sticks closely to them. Each chapter has two sets of exercises, one in the middle and the other at the end. Answers follow, along with more dialogue. It's not enough simply having one correct bit of code, without someone to explain why it is correct, and why some common answers aren't complete. This decision pays off.
Though discussing weighty technical matters, there's a sense of general friendliness. With well-chosen metaphors (datatypes are kinda like odometers), occasionally goofy examples (a pumpkin-weighing-contest control program), and plenty of conversations when things get heavy, C++ isn't so scary after all. Credit Susan for much of this. If you find yourself thinking along the same lines as you study, you'll make it.
What's to Consider? The book covers about half of a reasonably paced introductory Computer Science course. It also predates the ANSI standard and the STL, though a fair treatment of the latter would easily double the size. Readers who finish the book and the exercises will be fully capable of producing their own useful programs, but will need additional information on common libraries, algorithms, and more object-oriented programming. They'll also have avoided some of the traps awaiting the unwary novice, as Heller practices a fairly tight methodology.More technical readers already familiar with programming and at least one C-based language might find the pace slow and the extra explanations unnecessary. Heller's target audience is definitely the neophyte, not the experienced developer. The latter might question the subject matter covered. Why build a vector class instead of using C-style arrays? Why not C-style strings? I suspect the author is more concerned with helping his students avoid the kind of pitfalls C++ was designed to work around. It may not be the traditional approach, but it's valid and it will produce decent programmers, who can learn C++ on its own merits.
The Summary Steve Heller's pulled off quite a feat -- producing a book that assumes very little, yet produces people who understand programming. There's not as much information presented as in a "Learn the Language in X days/weeks/hours" book, but it's more accessible and better geared to a true beginner. For a gentle and effective introduction to programming and C++, give this book a try.The CD-ROM contains complete source code of all program listings, as well as the excellent DJGPP compiler (yes, it's for DOS).
Read this book online at www.steveheller.com or purchase it at Fatbrain.
Table of Contents- Prologue
- Hardware Fundamentals
- Basics of Programming
- More Basics
- Functional Literacy
- Taking Inventory
- Stringing Along
- Down the Garden Path
- Tying Up Loose Ends
-
Open Source Development with CVS
Managing software development is a job right up there with aircraft controller in the realm between fascinating and nerve-wracking. chromatic's latest review is of a book introducing one of the best known tools for managing the complexity inherent in such projects, Karl Fogel's Open Source Development with CVS. Open Source Development with CVS author Karl Fogel pages 316 publisher Coriolis Open Press rating 8.5 reviewer chromatic ISBN 1-57610-490-7 summary More than a summary of CVS commands, Open Source Development with CVS is a study of how to organize and lead free software projects.
The Scoop Free software, the theory goes, is in a constant state of release. Instead of working in secret for years to produce a Grand Unified Model of Everything, then unleashing it on an unsuspecting world to the accompaniment of television commercials and full-page ads in trade magazines, development occurs in public view. That's aided, in no small part, by the convenience of CVS. So argues Karl Fogel in his introduction to Open Source Development with CVS. In that case, why not try it yourself?Interspersed between CVS How-To chapters are Developer How-To chapters. For example, chapter 3 describes the author's theories on the entire Open Source process. That includes such common-sense advice as "Release something useful" and "Release something usable." There're plenty of examples to back up these ideas, drawn from the examples of large and popular open source projects.
What's to Like? CVS-specific chapters build on each other. Though 95% of the commands the average developer will ever use are covered in chapter two, the increasingly specific information just may come in handy someday. Though there's a price to pay for flexibility, the increased power it brings is worth it. If you've followed the examples and done some testing of your own, you'll have earned the title 'CVS Guru' by the end of chapter six.Fogel's development essays take the pragmatic approach. Rather than preaching the One True Way to Do It, he analyzes several successful projects (Apache, the Linux kernel, and CVS itself being among the most prominent) and attempts to draw general principles from their histories. His overall philosophy seems to be "manage a few things well and strictly, and let your project evolve." With a good framework in place (both in your code and for your project administration), things will work smoothly and you'll be more likely to reap the benefits of the free software model.
Chapter eight gives troubleshooting tips. Fogel walks through the most common errors he's seen, doling out explanations and solutions with abandon. Chapter nine is a good reference, neatly summarizing CVS commands and files. Having completed the rest of the book -- and understanding the concepts, this section has the exact syntax at your fingertips.
What's to Consider? Though a complete reference on its own, occasionally the author defers discussion of some subjects in favor of referring to the Cederqvist manual accompanying a CVS source distribution. To be fair, these are often highly technical minutiae, but at 316 pages there is space for an expanded explanation of topics such as the RCS roots of CVS (knowing the source of CVS can help one to understand why some things are the way they are). Thankfully, there's information provided about the official FAQ and mailing lists where such data can be found. The Summary Beyond a comprehensive guide to using and administering CVS, Karl Fogel has written an easy-to-read guide on successful Open Source development. His practical focus and laid-back approach should prove workable for everything from pet projects to large undertakings. The author and Coriolis, the publisher, have also made chapters 2, 4, 6, 8, 9, and 10 available online at http://cvsbook.red-bean.com, under the GPL. Table of Contents
Purchase this book at ThinkGeek.- Why Open Source Development and CVS Go Together
- An Overview of CVS
- The Open Source Process
- CVS Repository Administration
- Designing for Decentralized Development
- Advanced CVS
- Building, Testing, and Releasing
- Tips and Troubleshooting
- Complete CVS Reference
- Third-Party Tools That Work With CVS
- CVS Maintenance and Development Today
- GNU General Public License
-
Programming the Perl DBI
Never content to rest on his laurels, chromatic has again supplied us with a no-nonsense, informative book review. This time it's of O'Reilly's Programming the Perl DBI, for those of you unwilling to let any TLA go unconquered. If you're building a Web site or learning MySQL (or any other database) and want to combine Perl skills with data storage, he's got a few words for you. [Updated 13 June 3:20GMT by timothy:] Heck, it's a double header! PotPieMan gives a different perspective on the same book, all below. Programming the Perl DBI author Alligator Descartes and Tim Bunce pages 346 publisher O'Reilly and Associates rating 8.5 reviewer chromatic, PotPieMan ISBN 1-56592-699-4 summary Everything you need to know about the Perl database interface, straight from the source. Store, update, and retreive information -- or even write your own database driver.
Review No. 1: chromatic
The Scoop At some point in your programming life, you'll run into the idea of persistence. Whether data mining or storing customer information gathered from Web forms, data will end up shelved somewhere. Luckily for the Perl monks among us, we have the excellent DBI (DataBase Independent) module to provide a layer of abstraction and compatibility for multiple database systems. This book makes a great introduction and reference for the DBI.Newcomers will quickly come up to workable knowledge on database concepts like basic SQL and relational models as well as Perlish constructs like object storage. Experienced users can use the included DBI specification as a reference and Appendix B for particular DBD quirks and caveats.
What's to Like? The writing is exceptionally crisp and clean. A DBI novice could absorb the knowledge of masters in just three hours, simply by reading the chapters. It's hard to imagine a better explanation of most concepts. The quality is consistent, as is the data being manipulated. As soon as the relational database concept comes on stage, so does the sample database used throughout: a list of locations and descriptions of megalithic sites in the UK.The real meat starts in chapter four, with a discussion of the DBI architecture. Get used to manipulating statement handles -- you'll be doing a lot of that. Be sure to follow the recommendations for quoting and error checking, to save yourself hours of tedious debugging! Chapter five continues the tutorial, exhaustively covering database interactions. As usual for O'Reilly books, the authors take pains to point out benefits and drawbacks of different approaches. As there are multiple ways to pull rows from a completed query, and which fetch method is most efficient, or more flexible? The Advanced DBI chapter talks about database attributes and metadata -- ways to communicate with underlying DB and to massage data there. There's also good information about optimizations and transactions.
The material covered doesn't stop at the title. Chapter 7 talks about ODBC -- which may be preferable in some cases. Along the same lines, chapter 2 introduces all of the most important database concepts (Storing, Updating, Fetching, and Deleting) by looking at non-SQL means for storing data. These include Data::Dumper, Storable, flat files, and the Berkeley Database Manager. Though DBI receives its due for flexibility, portability, and power, the more tricks in your toolbag, the better you'll program. If you're new to the concept of persistent data storage, it also serves as a good introduction.
Porters and rogue programmers will appreciate Appendix B: an analysis of 13 database systems and their DBI drivers. Information on special syntax, SQL flavors, and supported DBI operations is included. Be sure to catch the gotchas and issues of your particular database. Administrators will appreciate chapter 8, which discusses the DBI shell (useful for testing SQL statements and connections) and the DBD::Proxy modules (providing compression and encryption as well as query forwarding).
What's to Consider? Perhaps due to the clarity and simplicity of the writing, the tutorial-esque DBI feature section, is rather short. Of 186 pages, 46 cover non-DBI mechanisms (chapter 2). That's not to say that there's anything missing, but that you might reach chapter six and ask, "Oh, is that all?" Adding another example database might flesh out some illustrations -- demonstrating how to solve two different problems would reinforce the important concepts. The Summary With its clear explanations and concise reference value, serious Perl programmers ought to make room on their shelves for the Cheetah. When you're knee deep in your first serious Web project, or bundling information from one database to another, you'll happily reach for Programming the Perl DBI.
Review No. 2: PotPieMan
The ScoopProgramming the Perl DBI starts with the basics: flat-file databases (like /etc/passwd) and DBM file libraries. Most of us have implemented some type of database system using tab- or comma-delimited files, and the authors use these flat-file databases as a starting point for the rest of their discussion. First, they give an overview of the various functions that a programmer might want to perform on data that is placed in a database. This leads them into an organized explanation of the DBI and the advantages and disadvantages of using the DBI.
What's Bad?My main gripe about this book is that the DBI programming examples seem very basic. Granted, the book is specifically written about DBI programming, not manipulation of data retrieved by the DBI. Depending on one's perspective, this can be bad. If you are a CGI programmer expecting to find all the answers on designing a database-driven Web site, you will be slightly disappointed.
What's Good?On the other hand, if you have any skill as a programmer, you would be able to use this book as a great starting point for database-driven Web sites. It gives a great overview of all the important functions of a relational database and the structured query language. At first, the authors give examples of SQL statements, without any actual Perl code. They move slowly through the query language so as to make sure that the reader understands, and include a few tables to structure the discussion of the SQL operators. The authors then discuss queries over multiple tables, along with primary and foreign keys. Next, the authors discuss SQL statements to modify (insert, delete, and update) data.
The actual DBI programming sections begin with an explanation of the DBI architecture, which allows them to introduce all the elements of a Perl program that would interface with a database and grab data. The authors begin with a very basic program and then expand on it to include error checking, parameter binding, atomic fetching, and so on. (The parameter binding section is particularly informative.)
For the most part, programmers looking to get into database programming would be set after the first five chapters. The sixth chapter is concerned with advanced DBI programming, and does not seem absolutely necessary to read the first time through. However, its explanation of transactions will most likely be important. There is also a chapter that discusses ODBC and the DBI, which might be important if you have to deal with Windows machines or other ODBC data sources. The chapter gives a comparison between the DBD::ODBC and Win32::ODBC modules, which is nice. Finally, the eighth chapter concerns the DBI shell (dbish) and database proxying, which might be important to some.
The appendices are quite comprehensive. The authors (using man pages as a reference) go through all the nuts and bolts of the DBI and the various DBD drivers. Overall, Programming the Perl DBI gives a substantial explanation of utilizing the DBI.
So What's In It For Me?On the one hand, if you already have Perl experience and are new to database programming, you should consider picking up this book. To be honest, I did not know much about the DBI until I read this book. Now, I am relatively confident in my ability to implement databases in my programming. If you already have experience in programming with the DBI, though, you might not need this book. The last few chapters might be helpful, but it would be good to flip through the book before buying it.
Purchase this book from ThinkGeek.
Table of Contents- Introduction
- Basic Non-DBI Databases
- SQL and Relational Databases
- Programming with the DBI
- Interacting with the Database
- Advanced DBI
- ODBC and the DBI
- DBI Shell and Database Proxying
- DBI Specification
- Driver and Database Characteristics
- ASLaN Sacred Site Charter
-
Evil Geniuses In A Nutshell
Following the success of last year's User Friendly , O'Reilly strikes back. This time, it's a collection of 1999's comics (3 January through 11 December). Slightly oversized, with three daily strips or one daily and one Sunday strip to a page, this happy little collection will spruce up your coffee table and bring a smile to your guests. (If you have a coffee table, that is.) Evil Geniuses In A Nutshell author Illiad pages 122 publisher O'Reilly & Associates rating 8 reviewer chromatic ISBN 1-56592-861-x summary See the world through slightly warped eyes with the gang at Columbia Internet in the second bound collection of Illiad's daily comic.
What's to Like? When he's on, he's really on. Some of the strips in here are laugh-out-loud funny. Even when it's merely amusing, Illiad captures elements of the real world in their twisted glories. Who can't put real names to half of the personalities running around in his little experiment?There's Mike, a network engineer, forced to choose a server OS based on mascot issues. AJ, the designer, is torn between his feelings for Miranda and his inability to relate to anything organic -- when he's not debating a caffeine-induced hallucination. Greg, head of tech support, can't believe his customers questions. Pitr, coder extraodinaire, eagerly awaits his recognition as an Evil Genius. Stef, marketing weenie, is haunted by his poor Quake performance and his inability to make any progress with Miranda. Miranda, equal parts geek and goddess, finds herself the equal of the male techs, but cannot quite understand their unique brand of communication. On the far side of reality are the Dust Puppy (an intelligent, innocent, and adorable ball of that stuff you ought to clean out of your server -- but with feet) and Erwin, an AI who's switched bodies more than Cher.
On his best days, Illiad reads like a combination of Doonesbury and Bloom County, with the requisite Open Source flavor. Linux usually comes out ahead and Microsoft way behind, though occasionally the situation's reversed. (Insert photo of Alan Cox reeling from sunlight after the MS Terminator steals his sunglasses). That's not to say that sacred penguins don't make good hamburger. (Once the boss approves migrating the servers to Linux, what do you do? Answer -- Nerf Gun duels to determine whose pet distribution is best.)
What's to Consider? As UFies know, Illiad's Sunday comics are often topical. Remember eBay's spate of availability problems? ESR at Microsoft last summer? If so, you'll catch on pretty quickly. If not, you'll just have to scratch your head and keep reading. (There's also one comic missing the last panel on the top of page 18. If you're reading this, though, you'll find the proper punchline here.) For the purists, note that some strips appear in topic-related sections, not chronological order. That serves to bring out more of the subtle humor, in my opinion.Also, Illiad's song parodies provoke mixed reactions. A lyricist, he's not, though his Gap parody hits squarely between the eyes. Illiad's better at the episodic stuff -- see his Star Wars storyline from the last book, or the strange tale of the One True Ping. Thankfully, the all-singing, all-dancing shorts are kept to a minimum.
The Summary A potent mixture of wry social commentary, high technology, cynicism that bites back, and a good dose of innocence that really does win out in the end, if you can put this book down for very long, you're either playing Quake or utterly humorless. Submit to your inner Evil Genius, and let the rest of the world wonder why you're grinning so much. (And if you're really evil, you won't loan out your copy.)Purchase this book at ThinkGeek.
Table of Contents- Preface -- Eric S. Raymond
- Introduction -- Illiad
- The Comics
-
Object Oriented Perl
chromatic has brought us yet another pithy programming-book review, this time of Damien Conway's Object Oriented Perl. This sounds like a good book for those interested in not only an overview, but a book that pushes them into at least a few practical applications -- but not one too intimidating to learn from. Object Oriented Perl author Damian Conway pages 490 publisher Manning Publications, 09/1999 rating 10 reviewer chromatic ISBN http://www.thinkgeek summary Damian Conway demonstrates the elegance of Object Oriented programming in Perl, exposing the flexibility and ingenuity of itsdesign
The Scoop A few common myths sully Perl's reputation in the Object Oriented world: Some claim the functionality is tacked on, while others insist that it is insecure, impure, and obscure. Damian Conway handily dispels these rumors in a gem of a book. Though occasionally delving into black magic, Object Oriented Perl is still accessible to novices. Paraphrasing the preface, this book might very well "[lower] cholesterol... [promote] world peace" -- for wizards and initiates alike. (Or at least raise their skills another level.) The Lowdown The starting point is an introduction to objects and the basic theory behind the OO discipline. This serves as a good overview of the first portion of the book. Following closly is an impressive thirty-page introduction to Perl. As newbies would shortly be overwhelmed, it is not intended as a first look at the language. Rather, it fills in the gaps left by an eclectic education. The chapter ends with a whirlwind tour of more advanced (read, underused) techniques, including the best typeglob discussion I've ever read.Subsequent chapters narrow the focus and intensify the explanation. Conway first introduces three simple rules of Perl objects: classes are packages; methods are subroutines; and objects are blessed referents. While some forks of the trail are quite exotic (blessing a regular expression into an object?), they're all entertaining and very informative.
Programmatic examples follow an iterative and interactive development process, as is common in technical books. The author states a problem and then writes some initial code using a newly explained feature. Refining the program, he demonstrates other ways of achieving the same goal with less code, more features, and better style. Most examples are creative and fairly easily understood (a CD tracking system, a network model), though some, built from computer-science type examples (a pretty printer, a lexer), may be too esoteric for some readers.
As befitting the Perl philosophy, Conway is not hesitent to break with OO tradition as expressed in languages such as C++, Java, Smalltalk, or Eiffel. (Appendix B discusses language features of each with regard to Perl in compact but enlightening technical fashion.) There's an overwhelming sense of Perlishness about the whole thing, and that shines through on every page. Expect to exploit the language's flexibility to achieve amazing results.
By the end of chapter seven, you'll know everything you really need to know to be an effective and productive OO Perl hacker. Luckily, the increasingly specialized information in the last few chapters is optional. You may never use it, but you'll be better for it. As the most extreme example, the Multiple Dispatch chapter explores three rather exotic approaches I've never seen in a Perl program before (dynamic dispatch tables -- armed with this, you could probably write a window manager in Perl). For the paranoid or the purist, a chapter on encapsulation turns Perl's normally lenient access mechanisms around, protecting data through scalars and secure hashes.
The Summary Superbly organized and excellently explained, this is the definitive book on Object Oriented programming with Perl. Judging from the comments of more qualified experts, we agree that this book belongs on the shelf of any serious Perl hacker. Purchase this book at ThinkGeek. Table of Contents- What you need to know first (an object-orientation primer)
- What you need to know second (a Perl refresher)
- Getting started
- Blessing arrays and scalars
- Blessing other things
- Inheritance
- Polymorphism
- Automating class creation
- Ties
- Operator overloading
- Encapsulation
- Genericity
- Multiple Dispatch
- Persistent objects
- Quick reference guide
- What you might know instead
-
Samba Administrator's Handbook
chromatic returns with a book tuned for anyone whose answer to heterogeneous networks is SAMBA, and wants 500 pages of practical advice (and answers to common problems) distilled from the fountain of SAMBA knowlege. Samba Administrator's Handbook author Ed Booksbank, George Haberberger, Lisa Doyle pages 518 publisher M&T Books rating 7.5 reviewer chromatic ISBN 0-7645-4636-8 summary Know the theory? Here's the nuts and bolts of administrating a heterogenous network with Samba.
The Scoop Imagine you're the administrator for a diverse network. A couple of engineers have Unix boxes, while some programmers work on NT machines. Managers have Windows laptops, and you've talked them into letting you install Samba domain and print servers. You've read the documentation and understand how it works. Now what?That's the scenario Samba Administrator's Handbook wants to address. Designed for the busy administrator who needs quick answers in a convenient package, it takes the pragmatic approach, and gets most things right. Need to set up a print queue on Solaris? Turn to the detailed table of contents to find a complete walkthrough. It's not the kind of book you'd sit down and read from cover to cover (Trust me on this), but at least you'll know what kinds of things pop up more than once in smb.conf.
What's to Like? Samba is designed to work with a variety of operating systems and platforms, and the authors cover quite a few: Solaris, RedHat and Caldera Linux distributions, and Free and Net BSD. These are good choices, because they represent a cross section of Unix land. Clients include the Windows family, as well as DOS and Unix (where applicable). Also included are task options (different utilities or command line switches). For example, the Samba installation section describes compilation, package selection during installation, and RPM installs. Samaba's rapid development receives due mention, with advanced users pointed to anonymous CVS and the excellent mailing lists.SWAT receives the best coverage, reinforcing the notion that this book is meant to be used by administrators who don't have the luxury of looking up many pages on the server (or those who prefer to read printed versions). Additional configuration resources are also covered. These include SMBEdit, webmin and Linuxconf.
The handbook covers client-side issues very thoroughly, including a detailed section on troubleshooting under various operating systems. (The breadth of coverage surprised me, as there were commands I did not know even existed.) Also, the Best Practices chapter takes a server-level approach, with sections on backups and security.
What's to Consider? My one large gripe may only bother a few readers: The editing really seems half-hearted. This is annoying, as the layout is inconsistent in places and numerous typos mar the text. I did not notice any factual errors resulting from this, however.Occasionally, options are mentioned but not explained. Most of the time, these are the smb.conf options included for debugging purposes, deprecated in newer versions, or options which should never be changed. Some additional information would be interesting, if not immediately useful. Likewise, the benchmarking chapter suffers from a skimpy treatment, mentioning tools but not what to do with them.
In some spots, more information than necessary is presented. For example, the generous SWAT chapter repeats some information verbatim, as certain sections of the smb.conf file take similar options. Erring on the side of caution fits the organizational goal, though reprinting tar man pages may be a bit extreme.
The SummaryShort on theory but long on facts, until you have your smb.conf memorized and can keep six different versions of the same command straight in your head, you can find quick and correct information here.Buy this book at ThinkGeek.
Table of Contents- Installation and Basic Configuration
- Server Installation
- Client Installation
- Basic Configuration Using SWAT
- Basic Operating System Configuration
- Other GUI Configuration Tools
- Advanced Configuration
- Naming Services
- Best Practices, Browsing, and Domains
- Performance Tuning
- Troubleshooting
- Basic Network Connectivity
- Testing the Samba Configuration
- Accessing Samba
- Using Net Commands to Diagnose Problems
- Appendices
- Error Codes
- GNU General Public License
- Online Resources
-
Linux Core Kernel Commentary
How would you dip your feet in the water, learning enough to start dabbling with kernel development? Scott Maxwell might end up as the guide for a fresh batch of aspiring programmers, with his Linux Core Kernel Commentary. Starting with a lesson on the history and philosophy behind free software, you can learn enough to start contributing on your own. Linux Core Kernel Commentary author Scott Maxwell pages 575 publisher Coriolis Open Press rating 9 reviewer chromatic ISBN 1576104699 summary In the spirit of Lions' Commentary on Unix, Scott Maxwell takes readers on a tour of the basic architecture and workings of the Linux kernel. The massive tome has nearly 40,000 lines of code from the x86/arch branches of the Linux kernel. That works out to two columns on each of over 400 pages. It's mostly free of annotations, except for small arrows referring to the commentary on that section. The commentary takes up the rest, at three columns per page. The architecture dependent functions target x86 code, and the core features (memory management, processes, scheduling, signals and threads, procfs) are covered.
What's to Like? Most interesting for me was the "a-ha!" factor. The normal chapter flow describes the subsection in general terms (memory management is designed to do such and such, with these issues), moves to the important data structure, and then walks through the vital functions for that section, stopping here and there to explain peculiarities and subtleties of the code. There's rough going in a few spots, but there are occasional moments of insight where the solutions come in to clear focus. (This happened most often for me in the SMP chapter, as the discussion of locks is particularly good.)Maxwell manages to avoid unexplained jargon for the most part, though he invents names for implied kernel idioms. Even while dealing with highly specific topics, readers won't need a background in OS design to understand the text. Good C skills will help, as well as assembly, though the latter is explained in greater detail than the former.
The author also takes pains to point out flaws and possible optimizations in the kernel, though he often concludes that the route taken is the best for various reasons. Another theme is the tradeoffs necessary between speed, clarity, compatibility and portability. Finally, as kernel 2.4 will be out shortly, Appendix B discusses the modifications in the 2.3 tree as it went to press.
What's to Consider? As space is limited, Maxwell sometimes skips some interesting details -- especially in latter chapters. Unfortunately, phrases like "There's not room to cover this" or "that is out of the scope of this book" pop up now and then. I definitely wanted more.Two other small nitpicks may be corrected in a future version. First, it would have been nice if the current filename was listed on each page of the source code listing, just for reference. Second, flipping back and forth between commentary and code was tricky, especially in a book of this size. Perhaps splitting things into two books would help? Serious students might find it easier to browse the code from the CD-ROM, which includes the code for kernel versions 0.01, 2.2.5, 2.2.10, 2.3.12, and the entire code of the first section, numbered as it appears.
The Summary This could serve as a textbook in an OS design class. Supplemental material will be necessary (file systems not covered for example, nor are drivers). Perhaps paired with a more theoretical text, it could form the basis of an intermediate computer science class.The utility is not limited to students, though. Anyone wondering where to start understanding the Linux kernel would do well to consider this book.
Buy this book at ThinkGeek.
Table of Contents- Linux Core Kernel Code
- Linux Core Kernel Commentary
- Introduction to Linux
- A First Look at the Code
- Kernel Architecture Overview
- System Initialization
- System Calls
- Signals, Interrupts, and Time
- Processes and Threads
- Memory
- System V IPC
- Symmetric Multiprocessing (SMP)
- Tunable Kernel Parameters
- Appendices
- Linux 2.4
- GNU General Public License
-
MySQL
chromatic, lord of many reviews, has come up with a review of MySQL, from the folks at New Riders. Author Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs, as well as the peculiarities of MySQL. MySQL author Paul DuBois pages 756 publisher New Riders rating 8.5 reviewer chromatic ISBN 07357-0921-1 summary There's something for everyone -- user, developer, administrator -- in Paul DuBois' excellent MySQL book.
The Scoop Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs as well as the peculiarities of MySQL. What's to Like? The prose is clear and readable. At the start, DuBois walks the reader through designing two very different database projects. After the first chapter, a normal user will be proficient at manipulating the client and issuing basic commands -- even designing her own tables. From there, the rest of the MySQL world opens up as more detail emerges. The sections on optimizing queries and table indexes will prove particularly valuable as the database grows from a hobby into a valuable project of its own.Almost anyone working with MySQL will find appropriate information, no matter his approach. While the standard client receives ample attention, Perl and PHP Web interfaces are developed and explained in later chapters. After explaining the general ideas of the particular interface, DuBois walks through the design and evolution of programs to fill specific tasks. These programs start with basic functionality and gradually add more features until the original goal is met.
Though the book explicitly covers stable version 3.22 and development version 3.23, features introduced in newer versions are marked and features on the roadmap are mentioned. Deprecated functions and replacements are labeled, too. As well, the section on "missing features" is useful, giving suggested workarounds, when present. (Examples include subselects and transactions.) ANSI SQL receives plenty of attention -- even where the MySQL implementation strays. It's an honest approach.
DB administrators aren't left out -- a full section is dedicated to their own issues. Security and permissions receive due treatment, as does performance tuning. The section on maintenance and database relocation was particularly interesting. There's even a treatise on the structure of the database files (notable for the differences between the ISAM and MyISAM formats).
Finally, the included appendices are well-selected. Weighing in at slightly less than a third of the pages, this tome will not have time to gather dust on my bookshelf. Most pertain to programmers, but having a physical guide to the built-in MySQL functions has a certain appeal.
What's to Consider? While filed with useful information and clear examples, the Perl chapter had a distinctive C flavor to it. As the corresponding C chapter assumes familiarity with that language and the PHP discussion starts with an introduction to PHP, the author assumedly addresses potential MySQL programmers in three categories: C programmers, Perl dabblers, and PHP initiates. While this likely reflects the makeup of his intended audience, it may also prove distracting to more experienced users. (Suggestion for these folks: read the example code and skip to the API appendix.)A minor nitpick is the binding and cover of the book. My review copy managed to attract lots of dirt on the nice cover, and it developed a serious crack in the spine, in the middle of the Perl DBI chapter. Some of the affected pages are coming loose, after moderate usage. Hopefully this is just a defect in my copy.
Be aware that much of the example prose has a touch of free-Unix to it. Nearly all options will work on the Windows platform, but users unaccustomed to extended command line forays may feel uncomfortable. (Since this also applies to the database, it's barely worth mentioning.)
The Summary MySQL is an excellent book, with a good balance of database introduction, believably practical examples, and technical information. Want to program, set up, or administer a MySQL system? You won't go wrong here.Purchase the book at ThinkGeek.
Table of Contents- General MySQL Use
- Introduction to MySQL and SQL
- Working with Data in MySQL
- MySQL SQL Syntax and Use
- Query Optimization
- Using MySQL Programming Interfaces
- Introduction to MySQL Programming
- The MySQL C API
- The Perl DBI API
- The PHP API
- MySQL Administration
- Introduction to MySQL Administration
- The MySQL Data Directory
- General MySQL Administration
- Security
- Database Maintenance and Repair
- Appendixes
- Obtaining and Installing Software
- Column Type Reference
- Operator and Function Reference
- SQL Syntax Reference
- MySQL Program Reference
- C API Reference
- Perl DBI API Reference
- PHP API Reference
- Useful Third-Party Tools
- Internet Service Providers
-
MySQL
chromatic, lord of many reviews, has come up with a review of MySQL, from the folks at New Riders. Author Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs, as well as the peculiarities of MySQL. MySQL author Paul DuBois pages 756 publisher New Riders rating 8.5 reviewer chromatic ISBN 07357-0921-1 summary There's something for everyone -- user, developer, administrator -- in Paul DuBois' excellent MySQL book.
The Scoop Paul DuBois has gone beyond the technically comprehensive MySQL documentation to produce an informative and entertaining compendium of MySQL knowledge. Requiring little prior experience ("What is a database and why should I care?"), he explains general SQL and RDBMSs as well as the peculiarities of MySQL. What's to Like? The prose is clear and readable. At the start, DuBois walks the reader through designing two very different database projects. After the first chapter, a normal user will be proficient at manipulating the client and issuing basic commands -- even designing her own tables. From there, the rest of the MySQL world opens up as more detail emerges. The sections on optimizing queries and table indexes will prove particularly valuable as the database grows from a hobby into a valuable project of its own.Almost anyone working with MySQL will find appropriate information, no matter his approach. While the standard client receives ample attention, Perl and PHP Web interfaces are developed and explained in later chapters. After explaining the general ideas of the particular interface, DuBois walks through the design and evolution of programs to fill specific tasks. These programs start with basic functionality and gradually add more features until the original goal is met.
Though the book explicitly covers stable version 3.22 and development version 3.23, features introduced in newer versions are marked and features on the roadmap are mentioned. Deprecated functions and replacements are labeled, too. As well, the section on "missing features" is useful, giving suggested workarounds, when present. (Examples include subselects and transactions.) ANSI SQL receives plenty of attention -- even where the MySQL implementation strays. It's an honest approach.
DB administrators aren't left out -- a full section is dedicated to their own issues. Security and permissions receive due treatment, as does performance tuning. The section on maintenance and database relocation was particularly interesting. There's even a treatise on the structure of the database files (notable for the differences between the ISAM and MyISAM formats).
Finally, the included appendices are well-selected. Weighing in at slightly less than a third of the pages, this tome will not have time to gather dust on my bookshelf. Most pertain to programmers, but having a physical guide to the built-in MySQL functions has a certain appeal.
What's to Consider? While filed with useful information and clear examples, the Perl chapter had a distinctive C flavor to it. As the corresponding C chapter assumes familiarity with that language and the PHP discussion starts with an introduction to PHP, the author assumedly addresses potential MySQL programmers in three categories: C programmers, Perl dabblers, and PHP initiates. While this likely reflects the makeup of his intended audience, it may also prove distracting to more experienced users. (Suggestion for these folks: read the example code and skip to the API appendix.)A minor nitpick is the binding and cover of the book. My review copy managed to attract lots of dirt on the nice cover, and it developed a serious crack in the spine, in the middle of the Perl DBI chapter. Some of the affected pages are coming loose, after moderate usage. Hopefully this is just a defect in my copy.
Be aware that much of the example prose has a touch of free-Unix to it. Nearly all options will work on the Windows platform, but users unaccustomed to extended command line forays may feel uncomfortable. (Since this also applies to the database, it's barely worth mentioning.)
The Summary MySQL is an excellent book, with a good balance of database introduction, believably practical examples, and technical information. Want to program, set up, or administer a MySQL system? You won't go wrong here.Purchase the book at ThinkGeek.
Table of Contents- General MySQL Use
- Introduction to MySQL and SQL
- Working with Data in MySQL
- MySQL SQL Syntax and Use
- Query Optimization
- Using MySQL Programming Interfaces
- Introduction to MySQL Programming
- The MySQL C API
- The Perl DBI API
- The PHP API
- MySQL Administration
- Introduction to MySQL Administration
- The MySQL Data Directory
- General MySQL Administration
- Security
- Database Maintenance and Repair
- Appendixes
- Obtaining and Installing Software
- Column Type Reference
- Operator and Function Reference
- SQL Syntax Reference
- MySQL Program Reference
- C API Reference
- Perl DBI API Reference
- PHP API Reference
- Useful Third-Party Tools
- Internet Service Providers
-
Docbook: The Definitive Guide
chromatic has reviewed O'Reilly's DocBook. Written by Norman Walsh and Leonard Muellner the book is: "A hefty reference of DocBook Elements and Entities, with an emphasis on customization and configuration -- if you know what that means, you'll find this book useful." DocBook: The Definitive Guide author Norman Walsh & Leonard Muellner pages 652 publisher O'Reilly & Associates, 10/1999 rating 8.5/10 reviewer chromatic ISBN 1565925807 summary A hefty reference of DocBook Elements and Entities, with an emphasis on customization and configuration -- if you know what that means, you'll find this book useful.DocBook, a SGML DTD for technical writing and documentation, has been widely adopted by a number of organizations and authors. Many commercial and free tools support it, and the specification is under active development. DocBook: The Definitive Guide is the official documentation.
Content The first section of the Guide discusses SGML and XML concepts, as well as the specifics of DocBook. Be warned that this is not a particularly gentle introduction -- familiarity with well-formed HTML will help, but the Guide is a reference, not a tutorial.With that in mind, the introduction walks through creating, parsing, and publishing valid DocBook documents. As the specification is cross-platform and not tied to any particular editor, the discussion focuses on the logical divisions and elements and practices of editing a document, rather than the particulars and mechanics of using a particular tool. The Parsing chapter gives solutions for some of the more common validation errors ("DTD not found", "misspelled tag", et cetera). The Publishing chapter zeroes in on stylesheets, focusing on DSSSL and the Jade utility. The authors demonstrate a stylesheet based configuration which will simplify the customization and publishing processes for different output formats.
The bulk of this book is a reference section which lists DocBook elements alphabetically. Each element has a content model lifted straight from the DTD, a list of applicable attributes, a list of parameter entities in which the element occurs, a description of what is is and where it might be used, processing expectations, and examples of its use mentioning any gotchas. Some elements are very simple, while elements higher in the hierarchy have much more complex requirements and nuances. Deprecated elements are marked with the appropriate version of the specification, with valid replacements suggested.
Each parameter entity has a synopsis and a description, listing all of the elements in which it occurs. Finally, each character entity is listed along with its Unicode number, a glyph, and the ISO decription. Characters are listed by character set, in alphabetical order.
The final section wraps up odds and ends in Appendices. This includes a section on installing the DocBook DTD, a discussion of the past and future versions of DocBook, and a useful list of additional resources (including pointers to SGML and XML tutorials). Another appendix is devoted to the differences between standard DocBook and XML. The included CD-ROM contains the complete SGML and HTML versions of the Guide itself, various DocBook DTDs, stylesheets, and applications mentioned in the book.
Pros and Cons The Creating section includes an enumeration of the categories of DocBook elements. This includes sets, lists, and components. It would be nice to have a comprehensive list arranged hierarchically, in addition to the alphabetical reference. (Occasionally an author might want to search for the correct element in a specific context. Why not?)Including a troubleshooting section, so to speak, in the Parsing chapter was an excellent idea. One might almost conclude that the best way to think of DocBook is as a code library instead of a huge tree of entities and options. (The Customization chapter bears this out.) The authors also present various ways to accomplish specific goals, always with an eye out for the best and most flexible option.
As mentioned before, however, the tutorial value of the Guide is low, unless you're already comfortable with SGML or XML. DocBook's probably not the place to start out anyway, but someone who needs a quick introduction to DocBook for whatever reason ought to look elsewhere first.
Summary You may never use all of the information found here -- but if you're developing a customization layer, building stylesheets, or just using DocBook to mark up your writings, you'll find this book invaluable. (If you're the kind of person who can read the DTD and absorb the meaning there, you might not need it.) For anything more than casual use of the DTD, this is the first and last place you'll look.
Table of Contents- Introduction
- Getting Started with SGML/XML
- Creating DocBook Documents
- Parsing DocBook Documents
- Publishing DocBook Documents
- Customizing DocBook
- Reference
- DocBook Element Reference
- DocBook Parameter Entity Reference
- DocBook Character Entity Reference
- Appendixes
- Installation
- DocBook and XML
- DocBook Versions
- Resources
- What's on the CD-ROM?
- Interchanging DocBook Documents
- DocBook V3.1 Quick Reference
-
Docbook: The Definitive Guide
chromatic has reviewed O'Reilly's DocBook. Written by Norman Walsh and Leonard Muellner the book is: "A hefty reference of DocBook Elements and Entities, with an emphasis on customization and configuration -- if you know what that means, you'll find this book useful." DocBook: The Definitive Guide author Norman Walsh & Leonard Muellner pages 652 publisher O'Reilly & Associates, 10/1999 rating 8.5/10 reviewer chromatic ISBN 1565925807 summary A hefty reference of DocBook Elements and Entities, with an emphasis on customization and configuration -- if you know what that means, you'll find this book useful.DocBook, a SGML DTD for technical writing and documentation, has been widely adopted by a number of organizations and authors. Many commercial and free tools support it, and the specification is under active development. DocBook: The Definitive Guide is the official documentation.
Content The first section of the Guide discusses SGML and XML concepts, as well as the specifics of DocBook. Be warned that this is not a particularly gentle introduction -- familiarity with well-formed HTML will help, but the Guide is a reference, not a tutorial.With that in mind, the introduction walks through creating, parsing, and publishing valid DocBook documents. As the specification is cross-platform and not tied to any particular editor, the discussion focuses on the logical divisions and elements and practices of editing a document, rather than the particulars and mechanics of using a particular tool. The Parsing chapter gives solutions for some of the more common validation errors ("DTD not found", "misspelled tag", et cetera). The Publishing chapter zeroes in on stylesheets, focusing on DSSSL and the Jade utility. The authors demonstrate a stylesheet based configuration which will simplify the customization and publishing processes for different output formats.
The bulk of this book is a reference section which lists DocBook elements alphabetically. Each element has a content model lifted straight from the DTD, a list of applicable attributes, a list of parameter entities in which the element occurs, a description of what is is and where it might be used, processing expectations, and examples of its use mentioning any gotchas. Some elements are very simple, while elements higher in the hierarchy have much more complex requirements and nuances. Deprecated elements are marked with the appropriate version of the specification, with valid replacements suggested.
Each parameter entity has a synopsis and a description, listing all of the elements in which it occurs. Finally, each character entity is listed along with its Unicode number, a glyph, and the ISO decription. Characters are listed by character set, in alphabetical order.
The final section wraps up odds and ends in Appendices. This includes a section on installing the DocBook DTD, a discussion of the past and future versions of DocBook, and a useful list of additional resources (including pointers to SGML and XML tutorials). Another appendix is devoted to the differences between standard DocBook and XML. The included CD-ROM contains the complete SGML and HTML versions of the Guide itself, various DocBook DTDs, stylesheets, and applications mentioned in the book.
Pros and Cons The Creating section includes an enumeration of the categories of DocBook elements. This includes sets, lists, and components. It would be nice to have a comprehensive list arranged hierarchically, in addition to the alphabetical reference. (Occasionally an author might want to search for the correct element in a specific context. Why not?)Including a troubleshooting section, so to speak, in the Parsing chapter was an excellent idea. One might almost conclude that the best way to think of DocBook is as a code library instead of a huge tree of entities and options. (The Customization chapter bears this out.) The authors also present various ways to accomplish specific goals, always with an eye out for the best and most flexible option.
As mentioned before, however, the tutorial value of the Guide is low, unless you're already comfortable with SGML or XML. DocBook's probably not the place to start out anyway, but someone who needs a quick introduction to DocBook for whatever reason ought to look elsewhere first.
Summary You may never use all of the information found here -- but if you're developing a customization layer, building stylesheets, or just using DocBook to mark up your writings, you'll find this book invaluable. (If you're the kind of person who can read the DTD and absorb the meaning there, you might not need it.) For anything more than casual use of the DTD, this is the first and last place you'll look.
Table of Contents- Introduction
- Getting Started with SGML/XML
- Creating DocBook Documents
- Parsing DocBook Documents
- Publishing DocBook Documents
- Customizing DocBook
- Reference
- DocBook Element Reference
- DocBook Parameter Entity Reference
- DocBook Character Entity Reference
- Appendixes
- Installation
- DocBook and XML
- DocBook Versions
- Resources
- What's on the CD-ROM?
- Interchanging DocBook Documents
- DocBook V3.1 Quick Reference
-
Otherland: River of Blue Fire
Chromatic, already a reviewing fixture and well-known AfterY2k junkie, has sent us a quick review of the latest book in Tad Williams' Otherland series. This book is Otherland: River of Blue Fire, which is the book after Otherland: City of Golden Shadow. Click below to learn more. Otherland: River of Blue Fire author Tad Williams pages 675 publisher Daw, 09/1999 rating 9/10 reviewer chromaticsummary ISBN 0886778441 summary Tad Williams explores global conspiracies surrounding a perfectly realized virtual world in the continuation of his Otherland saga.At the end of Otherland: City of Golden Shadow, Tad Williams had dumped most of his protagonists into the convincing virtual reality known as the Otherland. In this playground for the rich, the reclusive, and the powerful, the small band was shocked to learn that it was trapped. It would be only a matter of time before the shadowy Grail Brotherhood, masters of Otherland, could discover the intrusion and act to protect their secrets.
Frightened and confused, the party's only chance for survival is to follow the quasi-metaphorical river that flows through each simulation, connecting the private domains of each member of the Brotherhood. It's a quest that will take them through a land of giant insects, Venice, Ancient Egypt, a twisted Kansas under invasion from decaying Oz, and other exotic, imaginary locations.
The real world is packed with intrigue too, as the forces opposing the Brotherhood (both knowingly and unknowingly) plan and plot and move their pieces into position. Reality and Otherland start to feed off of each other as dark secrets come to light and the Grail project enters its final stages.
As fits the second book in this series of four, some mysteries are solved and many more are discovered. Plotwise, the motivations of and divisions within the Grail Brotherhood are explored, and partial explanations of sleeping sickness are given. True to Williams' plot-twisting style, these bring up new questions. On the whole, there is less action than in the previous book, but more plot.
While there's still a lot of action, it's divided between five major groups of characters and settings (the latter given a very loose interpretation) and at least five other, minor threads. Consequently, even in a book of nearly 700 pages, four chapters may separate sequential events. This can be frustrating, as the most intriguing character receives the least attention. (In the introduction, Williams promises his fans that he will try to avoid the sort of cliffhanger ending that the first book had. To his credit, a plot diagram of River of Blue Fire would fit the traditional form much more closely than one of City of Golden Shadow.)
Williams fans may notice themes also present his "Memory, Sorrow, and Thorn" series, which itself expanded on ideas present in his debut work Tailchaser's Song. You'll find ancient conspiracies, shady deals with unknown forces, enlightened groups of scholars working in the background, and the question of responsibility. It's refreshing to see him choose a less-than-superhuman antagonist (though the Heliopolis simulation and the Other may turn out to be more important -- and less "human" -- in the end).
Philosophical and literary analysis aside, is it entertaining? Quite so! The mixture of enigma and revelation, imagination and technical whiz-bang makes a very satisfying texture. For a thoughtful, less-dystopian-than-cyberpunk but still epic take on virtual reality, identity, and conspiracy, check out the Otherland.
Purchase this book at fatbrain.
-
Otherland: River of Blue Fire
Chromatic, already a reviewing fixture and well-known AfterY2k junkie, has sent us a quick review of the latest book in Tad Williams' Otherland series. This book is Otherland: River of Blue Fire, which is the book after Otherland: City of Golden Shadow. Click below to learn more. Otherland: River of Blue Fire author Tad Williams pages 675 publisher Daw, 09/1999 rating 9/10 reviewer chromaticsummary ISBN 0886778441 summary Tad Williams explores global conspiracies surrounding a perfectly realized virtual world in the continuation of his Otherland saga.At the end of Otherland: City of Golden Shadow, Tad Williams had dumped most of his protagonists into the convincing virtual reality known as the Otherland. In this playground for the rich, the reclusive, and the powerful, the small band was shocked to learn that it was trapped. It would be only a matter of time before the shadowy Grail Brotherhood, masters of Otherland, could discover the intrusion and act to protect their secrets.
Frightened and confused, the party's only chance for survival is to follow the quasi-metaphorical river that flows through each simulation, connecting the private domains of each member of the Brotherhood. It's a quest that will take them through a land of giant insects, Venice, Ancient Egypt, a twisted Kansas under invasion from decaying Oz, and other exotic, imaginary locations.
The real world is packed with intrigue too, as the forces opposing the Brotherhood (both knowingly and unknowingly) plan and plot and move their pieces into position. Reality and Otherland start to feed off of each other as dark secrets come to light and the Grail project enters its final stages.
As fits the second book in this series of four, some mysteries are solved and many more are discovered. Plotwise, the motivations of and divisions within the Grail Brotherhood are explored, and partial explanations of sleeping sickness are given. True to Williams' plot-twisting style, these bring up new questions. On the whole, there is less action than in the previous book, but more plot.
While there's still a lot of action, it's divided between five major groups of characters and settings (the latter given a very loose interpretation) and at least five other, minor threads. Consequently, even in a book of nearly 700 pages, four chapters may separate sequential events. This can be frustrating, as the most intriguing character receives the least attention. (In the introduction, Williams promises his fans that he will try to avoid the sort of cliffhanger ending that the first book had. To his credit, a plot diagram of River of Blue Fire would fit the traditional form much more closely than one of City of Golden Shadow.)
Williams fans may notice themes also present his "Memory, Sorrow, and Thorn" series, which itself expanded on ideas present in his debut work Tailchaser's Song. You'll find ancient conspiracies, shady deals with unknown forces, enlightened groups of scholars working in the background, and the question of responsibility. It's refreshing to see him choose a less-than-superhuman antagonist (though the Heliopolis simulation and the Other may turn out to be more important -- and less "human" -- in the end).
Philosophical and literary analysis aside, is it entertaining? Quite so! The mixture of enigma and revelation, imagination and technical whiz-bang makes a very satisfying texture. For a thoughtful, less-dystopian-than-cyberpunk but still epic take on virtual reality, identity, and conspiracy, check out the Otherland.
Purchase this book at fatbrain.
-
Elements of Programming with Perl
Bringing a little competition to O'Reilly, this Manning Publications book Elements of Programming with Perl seems to be have struck a nerve with reviewer chromatic. Click below to find out how - and possibly add a new book to your library. Elements of Programming with Perl author Andrew L. Johnson pages 352 publisher Manning Publications, 09/1999 rating 8/10 reviewer chromatic ISBN 1884777805 summary New to programming, and think Perl may be up your alley? Andrew Johnson's excellent Elements of Programming with Perl will teach you both disciplines. What's the Purpose? Hundreds of books teach programming. Dozens of good books teach Perl. Where's a book for someone who wants to learn Perl and programming, at the same time? Thankfully, that's just what Elements of Programming with Perl does. What's Good? From the start, Johnson's explanations are clean and clear. It's obvious that he's polished his didactic style through years of real world teaching. Also from the start, good programming practices receive due emphasis. Though it's not specifically mentioned until chapter 9, Johnson advocates and demonstrates good program design through a mixture of Donald Knuth's Literate Programming and his own code tangling style (mingling documentation, design notes, and code in a single source file, similar to POD on steroids).The teaching flow is logical and consistent, with chapters dividing the material into logical divisions. By the end of chapter flow, students should be capable of writing moderately complex programs. Subsequent chapters build on that foundation, and most provide a specific example program to tie things together. These programs all have a practical concentration.
On the Perl-specific side, Johnson does not shy away from recommending the copious Perl documentation, CPAN, other books like the Camel, and many other excellent resources. Much of the value of an education is learning where to go for further information.
What's not Great? Some of Johnson's focus is on mathematical applications, which may distract some readers. Also, this book may not serve as a future reference after you've become more comfortable with the language. Look to the Camel or Perl in a Nutshell for that -- Johnson concentrates on teaching the basics rather than documenting the iotas and tittles of internal Perl functions.Finally, the example program in Chapter 19 may be hairy for novice programmers. Sit down in a very quiet room with a pad of note-paper and your beverage of choice. Consider it a final exam after you're familiar with everything preceding it.
Summary This is a good introduction to Perl, and a very good introduction to programming in general. Johnson promotes good habits and discipline. Elements may not sit on your shelf as a reference, but it will help you to become an effective programmer. It's a rare book that teaches as well as it informs, so take the plunge and teach yourself Perl and programming.Pick this book up at ThinkGeek.
Table of Contents- preface
- acknowledgments
- Introductory elements
- Introduction
- Writing code
- Writing programs
- Essential elements
- Data: types and variables
- Control structures
- Simple I/O and text processing
- Functions
- References and aggregate datastructures
- Documentation
- Practical elements
- Regular expressions
- Working with text
- Working with lists
- More I/O
- Using modules
- Debugging
- Advanced elements
- Modular programming
- Algorithms and data structuring
- Object-oriented programming and abstract data structures
- More OOP examples
- What's left?
- appendix A Command line switches
- appendix B Special variables
- appendix C Additional resources
- appendix D Numeric formats
- glossary
- index
-
Elements of Programming with Perl
Bringing a little competition to O'Reilly, this Manning Publications book Elements of Programming with Perl seems to be have struck a nerve with reviewer chromatic. Click below to find out how - and possibly add a new book to your library. Elements of Programming with Perl author Andrew L. Johnson pages 352 publisher Manning Publications, 09/1999 rating 8/10 reviewer chromatic ISBN 1884777805 summary New to programming, and think Perl may be up your alley? Andrew Johnson's excellent Elements of Programming with Perl will teach you both disciplines. What's the Purpose? Hundreds of books teach programming. Dozens of good books teach Perl. Where's a book for someone who wants to learn Perl and programming, at the same time? Thankfully, that's just what Elements of Programming with Perl does. What's Good? From the start, Johnson's explanations are clean and clear. It's obvious that he's polished his didactic style through years of real world teaching. Also from the start, good programming practices receive due emphasis. Though it's not specifically mentioned until chapter 9, Johnson advocates and demonstrates good program design through a mixture of Donald Knuth's Literate Programming and his own code tangling style (mingling documentation, design notes, and code in a single source file, similar to POD on steroids).The teaching flow is logical and consistent, with chapters dividing the material into logical divisions. By the end of chapter flow, students should be capable of writing moderately complex programs. Subsequent chapters build on that foundation, and most provide a specific example program to tie things together. These programs all have a practical concentration.
On the Perl-specific side, Johnson does not shy away from recommending the copious Perl documentation, CPAN, other books like the Camel, and many other excellent resources. Much of the value of an education is learning where to go for further information.
What's not Great? Some of Johnson's focus is on mathematical applications, which may distract some readers. Also, this book may not serve as a future reference after you've become more comfortable with the language. Look to the Camel or Perl in a Nutshell for that -- Johnson concentrates on teaching the basics rather than documenting the iotas and tittles of internal Perl functions.Finally, the example program in Chapter 19 may be hairy for novice programmers. Sit down in a very quiet room with a pad of note-paper and your beverage of choice. Consider it a final exam after you're familiar with everything preceding it.
Summary This is a good introduction to Perl, and a very good introduction to programming in general. Johnson promotes good habits and discipline. Elements may not sit on your shelf as a reference, but it will help you to become an effective programmer. It's a rare book that teaches as well as it informs, so take the plunge and teach yourself Perl and programming.Pick this book up at ThinkGeek.
Table of Contents- preface
- acknowledgments
- Introductory elements
- Introduction
- Writing code
- Writing programs
- Essential elements
- Data: types and variables
- Control structures
- Simple I/O and text processing
- Functions
- References and aggregate datastructures
- Documentation
- Practical elements
- Regular expressions
- Working with text
- Working with lists
- More I/O
- Using modules
- Debugging
- Advanced elements
- Modular programming
- Algorithms and data structuring
- Object-oriented programming and abstract data structures
- More OOP examples
- What's left?
- appendix A Command line switches
- appendix B Special variables
- appendix C Additional resources
- appendix D Numeric formats
- glossary
- index
-
Extreme Programming Explained
While I've been sitting on this for a little while, chromatic has been patient. Yes, it's his review of Kent Beck's Extreme Programming Explained. The publisher is Addison-Wesley, and the book is for all those people out there who need to do programming but don't have time to do the engineering phase. Interesting book - click thru to read more. Extreme Programming Explained author Kent Beck pages 179 publisher Addison Wesley, 09/1999 rating 7/10 reviewer chromatic ISBN 0201616416 summary Extreme Programming Explained explains the virtues of the Extreme Programmer and shows you how to develop them.
The HookWant to write better code? How about working less overtime, getting along with your team better, meeting customer demands more quickly and accurately, spending less money, and having more fun?
Extreme Programming may be for you.
Be prepared to make some adjustments and sacrifices. Individual code ownership? Gone. Programming for the future? Slow down, cowboy. Working on your own? Grab a partner and dance.
What's the Scoop?Extreme Programming is a way to improve software development by focusing on what really matters. If it will cost you $50,000 to implement a feature now that may not be used for two years, and it will cost you $55,000 to implement it in two years, hold off. If running test suites is good, write tests for every significant piece of the system. If multiple pairs of eyes make bugs shallower, program in pairs. If you enjoy meeting deadlines (and not working your fingers to the bone every night for weeks to do so), make shorter deadlines.
It sounds simple, even deceptively so. It may also set your teeth on edge at first.
Imagine that your customer has the time and the manpower to send a representative to sit with your programming team. He is actively involved in the design, writing 'stories' about how the system works for the end users. Every morning and afternoon, your programmers meet to decide which tasks to tackle, and they pair off, sharing one computer between them. One person codes and the other watches, and they switch off as necessary.
With every change to the system, the previous tests are rerun until they work perfectly, and new tests are added to test new functionality. Changes are not commited until all tests run successfully.
Releases are started early (six months, for a big programming project) and continue quickly after that (every couple of months). With a customer sitting in with the programmers, feedback can be instantaneous. The initial investment pays off quickly, while expenses are spread out over a greater period of time.
With no one owning a particular section of code, and with everyone working with different partners from day to day, everyone should have a good overview of the system as a whole. This can lead to better programming, from less bugs to very quick refactoring. New programmers can also be brought in and up to speed much more quickly.
What's to Like?The book is clear and readable -- even funny. Chapters are short and to the point. Beck uses the metaphor of driving to bring his point across. (Driving is not about pointing in the right direction and maintaining that course, it's about making slight corrections all of the time.)
The bibliography is a great place to find some classic works (including books by Brooks and Knuth and even the movie 'The Princess Bride' -- no, really!).
Extreme Programming itself has a lot of promise. Some of the principles (programming for today, releasing early and often, peer review, community code ownership) fit in pretty well with open source/free software. Some of the other ones would be nice to see....
What Might Annoy You?It's not clear where Extreme Programming fails. To the author's credit, he mentions this and gives some guidelines, but the choice and the implementation ultimately rest with the managers and bean counters. There will be some resistance at first, but Beck's enthusiasm is infectious and his clarity of explanation might be enough to overcome it.
The WrapupIf you're a member of or a manager of a moderate programming team, you ought to read this book. It will go nicely on the shelf next to "The Mythical-Man Month". If you're curious about new ways to look at programming (especially in a group), you'll want to pick it up.
Purchase this book at fatbrain.
Table of Contents- The Problem
- Risk: The Basic Problem
- A Development Episode
- Economics of Software Development
- Four Variables
- Cost of Change
- Learning to Drive
- Four Values
- Basic Principles
- Back to Basics
- The Solution
- Quick Overview
- How Could This Work?
- Management Strategy
- Facilities Strategy
- Splitting Business and Technical Responsibility
- Planning Strategy
- Development Strategy
- Design Strategy
- Testing Strategy
- Implementing XP
- Adopting XP
- Retrofitting XP
- Lifecycle of an Ideal XP Project
- Roles for People
- 20-80 Rule
- What Makes XP Hard
- When You Shouldn't Try XP
- XP at Work
- Conclusion
- The Problem
-
Extreme Programming Explained
While I've been sitting on this for a little while, chromatic has been patient. Yes, it's his review of Kent Beck's Extreme Programming Explained. The publisher is Addison-Wesley, and the book is for all those people out there who need to do programming but don't have time to do the engineering phase. Interesting book - click thru to read more. Extreme Programming Explained author Kent Beck pages 179 publisher Addison Wesley, 09/1999 rating 7/10 reviewer chromatic ISBN 0201616416 summary Extreme Programming Explained explains the virtues of the Extreme Programmer and shows you how to develop them.
The HookWant to write better code? How about working less overtime, getting along with your team better, meeting customer demands more quickly and accurately, spending less money, and having more fun?
Extreme Programming may be for you.
Be prepared to make some adjustments and sacrifices. Individual code ownership? Gone. Programming for the future? Slow down, cowboy. Working on your own? Grab a partner and dance.
What's the Scoop?Extreme Programming is a way to improve software development by focusing on what really matters. If it will cost you $50,000 to implement a feature now that may not be used for two years, and it will cost you $55,000 to implement it in two years, hold off. If running test suites is good, write tests for every significant piece of the system. If multiple pairs of eyes make bugs shallower, program in pairs. If you enjoy meeting deadlines (and not working your fingers to the bone every night for weeks to do so), make shorter deadlines.
It sounds simple, even deceptively so. It may also set your teeth on edge at first.
Imagine that your customer has the time and the manpower to send a representative to sit with your programming team. He is actively involved in the design, writing 'stories' about how the system works for the end users. Every morning and afternoon, your programmers meet to decide which tasks to tackle, and they pair off, sharing one computer between them. One person codes and the other watches, and they switch off as necessary.
With every change to the system, the previous tests are rerun until they work perfectly, and new tests are added to test new functionality. Changes are not commited until all tests run successfully.
Releases are started early (six months, for a big programming project) and continue quickly after that (every couple of months). With a customer sitting in with the programmers, feedback can be instantaneous. The initial investment pays off quickly, while expenses are spread out over a greater period of time.
With no one owning a particular section of code, and with everyone working with different partners from day to day, everyone should have a good overview of the system as a whole. This can lead to better programming, from less bugs to very quick refactoring. New programmers can also be brought in and up to speed much more quickly.
What's to Like?The book is clear and readable -- even funny. Chapters are short and to the point. Beck uses the metaphor of driving to bring his point across. (Driving is not about pointing in the right direction and maintaining that course, it's about making slight corrections all of the time.)
The bibliography is a great place to find some classic works (including books by Brooks and Knuth and even the movie 'The Princess Bride' -- no, really!).
Extreme Programming itself has a lot of promise. Some of the principles (programming for today, releasing early and often, peer review, community code ownership) fit in pretty well with open source/free software. Some of the other ones would be nice to see....
What Might Annoy You?It's not clear where Extreme Programming fails. To the author's credit, he mentions this and gives some guidelines, but the choice and the implementation ultimately rest with the managers and bean counters. There will be some resistance at first, but Beck's enthusiasm is infectious and his clarity of explanation might be enough to overcome it.
The WrapupIf you're a member of or a manager of a moderate programming team, you ought to read this book. It will go nicely on the shelf next to "The Mythical-Man Month". If you're curious about new ways to look at programming (especially in a group), you'll want to pick it up.
Purchase this book at fatbrain.
Table of Contents- The Problem
- Risk: The Basic Problem
- A Development Episode
- Economics of Software Development
- Four Variables
- Cost of Change
- Learning to Drive
- Four Values
- Basic Principles
- Back to Basics
- The Solution
- Quick Overview
- How Could This Work?
- Management Strategy
- Facilities Strategy
- Splitting Business and Technical Responsibility
- Planning Strategy
- Development Strategy
- Design Strategy
- Testing Strategy
- Implementing XP
- Adopting XP
- Retrofitting XP
- Lifecycle of an Ideal XP Project
- Roles for People
- 20-80 Rule
- What Makes XP Hard
- When You Shouldn't Try XP
- XP at Work
- Conclusion
- The Problem
-
Practical Internet Groupware
chromatic has returned with yet another review. For this time around, he's taken a look at O'Reilly's Practical Internet Groupware. As you would imagine, the book focuses on using software to better enable groups to work together. Jon Udell, the author, does a great job of exploring how to use technology to better work together. Practical Internet Groupware author Jon Udell pages 497 publisher O'Reilly, 10/1999 rating 8/10 reviewer chromatic ISBN 1565925378 summary A detailed discussion of how and why to connect your users and customers to information and to each other using common Internet protocols and applications. Problem Space Successfully managing the flow of information depends answering a few questions. How do people communicate? How do they find information? How can businesses provide information links between their employees and customers?Even if you do provide them with tools to collaborate and to manage data more efficiently, how can you ensure that they will use them? What will the future of business and personal computing look like?
The Solution Practical Internet Groupware argues that we already have the blocks we need to build rich communication tools -- open Internet protocols, ubiquitous web browsers, e-mail clients, and newsgroup readers, and quick and dirty scripting languages. By understanding and applying the various technologies appropriately, you can not only reduce the burden of creating, aggregating, and retrieving data, but also enhance its availability and utility. What's Good? Take the word 'Practical' very seriously. While the bulk of the programming examples are Perl, there's JavaScript, VB, Java, and XML thrown in the mix. Udell also stresses working within your existing environment -- whether that means activating the NNTP server included with IIS 4.0 on an NT server or installing INN on the Linux box in the corner. He's also very pragmatic. While XML is poised to be a much cleaner tool, its still-limited availability means that the book spends time presenting solutions which work in the here-and-now heterogenous quick and dirty landscape. Of course, there's also information about shiny new (and mature-but-not-yet-widespread) standards such as LDAP.Also, Udell's experience in the field of collaboration includes years developing and polishing groupware solutions at Byte magazine. Clearly, he has a passion for the subject as well as a deep understanding of the issues involved. Both shine through in his writing.
Through the pages, Udell develops a handful of interesting and useful applications. One is a Docbase system, which blends together a newsgroup, a database, and a web site with indexed searching, various levels of access, and data entry capabilities. Another grabs content from various web sites and merges it into a consistent whole.
The most interesting project in the whole book is something called Distributed HTTP. It's a Perl-based web server that actually runs on client machines. It's easily extensible (with Perl), supporting authentication, modular database access, and replication with other servers. It's really a clever piece of work. (Just imagine remote data entry from field technicians equipped with laptops, or browsing reports from other locations, and that's the tip of the iceberg.)
What's Not So Good? Like most trailblazing works, the biggest frustration is realizing that there are great ideas here that few people have realized yet. As such, expect to be one part cheerleader, one part trainer, one part pariah, and one part referee if you're implementing things. Also, if you're not somewhat familiar with common Internet protocols such as HTTP, NNTP, and SMTP, or with the concepts and execution of HTML and XML, or with general Perl, you'll have to play catchup through the later chapters. Summary It's hard not to believe that Practical Internet Groupware is a year ahead of the curve -- Udell's approach to technology and the seamless integration of various information stores is a tempting vision. If you're directing rivulets data, get this book, let your boss read the first section, and then set about transforming the way you do business. If you're interested in where the Internet and business are headed, get this book.The cover animals are seals and sea lions.
Table of ContentsPurchase this book at fatbrain.
- Using Internet Groupware
- The Conferencing Dimension
- Public Online Communities
- Intranet Collaboration with NNTP and HTML
- Information Management Strategies for Groupware Users
- Groupware Docbases
- Docbases as Groupware Applications
- Docbase Input Techniques
- Docbase Navigation
- Organizing Search Results
- Groupware Applications and Services
- Conferencing Applications
- Groupware Servlets
- Membership Services
- Authentication and Authorization Techniques
- Deploying NNTP Discussion Servers
- Advanced Internet Groupware
- Automating Internet Components
- Distributed HTTP
- Epilogue
- Appendixes
- Software Developed for this Book
- Internet RFCs: A Groupware Perspective
-
Practical Internet Groupware
chromatic has returned with yet another review. For this time around, he's taken a look at O'Reilly's Practical Internet Groupware. As you would imagine, the book focuses on using software to better enable groups to work together. Jon Udell, the author, does a great job of exploring how to use technology to better work together. Practical Internet Groupware author Jon Udell pages 497 publisher O'Reilly, 10/1999 rating 8/10 reviewer chromatic ISBN 1565925378 summary A detailed discussion of how and why to connect your users and customers to information and to each other using common Internet protocols and applications. Problem Space Successfully managing the flow of information depends answering a few questions. How do people communicate? How do they find information? How can businesses provide information links between their employees and customers?Even if you do provide them with tools to collaborate and to manage data more efficiently, how can you ensure that they will use them? What will the future of business and personal computing look like?
The Solution Practical Internet Groupware argues that we already have the blocks we need to build rich communication tools -- open Internet protocols, ubiquitous web browsers, e-mail clients, and newsgroup readers, and quick and dirty scripting languages. By understanding and applying the various technologies appropriately, you can not only reduce the burden of creating, aggregating, and retrieving data, but also enhance its availability and utility. What's Good? Take the word 'Practical' very seriously. While the bulk of the programming examples are Perl, there's JavaScript, VB, Java, and XML thrown in the mix. Udell also stresses working within your existing environment -- whether that means activating the NNTP server included with IIS 4.0 on an NT server or installing INN on the Linux box in the corner. He's also very pragmatic. While XML is poised to be a much cleaner tool, its still-limited availability means that the book spends time presenting solutions which work in the here-and-now heterogenous quick and dirty landscape. Of course, there's also information about shiny new (and mature-but-not-yet-widespread) standards such as LDAP.Also, Udell's experience in the field of collaboration includes years developing and polishing groupware solutions at Byte magazine. Clearly, he has a passion for the subject as well as a deep understanding of the issues involved. Both shine through in his writing.
Through the pages, Udell develops a handful of interesting and useful applications. One is a Docbase system, which blends together a newsgroup, a database, and a web site with indexed searching, various levels of access, and data entry capabilities. Another grabs content from various web sites and merges it into a consistent whole.
The most interesting project in the whole book is something called Distributed HTTP. It's a Perl-based web server that actually runs on client machines. It's easily extensible (with Perl), supporting authentication, modular database access, and replication with other servers. It's really a clever piece of work. (Just imagine remote data entry from field technicians equipped with laptops, or browsing reports from other locations, and that's the tip of the iceberg.)
What's Not So Good? Like most trailblazing works, the biggest frustration is realizing that there are great ideas here that few people have realized yet. As such, expect to be one part cheerleader, one part trainer, one part pariah, and one part referee if you're implementing things. Also, if you're not somewhat familiar with common Internet protocols such as HTTP, NNTP, and SMTP, or with the concepts and execution of HTML and XML, or with general Perl, you'll have to play catchup through the later chapters. Summary It's hard not to believe that Practical Internet Groupware is a year ahead of the curve -- Udell's approach to technology and the seamless integration of various information stores is a tempting vision. If you're directing rivulets data, get this book, let your boss read the first section, and then set about transforming the way you do business. If you're interested in where the Internet and business are headed, get this book.The cover animals are seals and sea lions.
Table of ContentsPurchase this book at fatbrain.
- Using Internet Groupware
- The Conferencing Dimension
- Public Online Communities
- Intranet Collaboration with NNTP and HTML
- Information Management Strategies for Groupware Users
- Groupware Docbases
- Docbases as Groupware Applications
- Docbase Input Techniques
- Docbase Navigation
- Organizing Search Results
- Groupware Applications and Services
- Conferencing Applications
- Groupware Servlets
- Membership Services
- Authentication and Authorization Techniques
- Deploying NNTP Discussion Servers
- Advanced Internet Groupware
- Automating Internet Components
- Distributed HTTP
- Epilogue
- Appendixes
- Software Developed for this Book
- Internet RFCs: A Groupware Perspective
-
Practical Internet Groupware
chromatic has returned with yet another review. For this time around, he's taken a look at O'Reilly's Practical Internet Groupware. As you would imagine, the book focuses on using software to better enable groups to work together. Jon Udell, the author, does a great job of exploring how to use technology to better work together. Practical Internet Groupware author Jon Udell pages 497 publisher O'Reilly, 10/1999 rating 8/10 reviewer chromatic ISBN 1565925378 summary A detailed discussion of how and why to connect your users and customers to information and to each other using common Internet protocols and applications. Problem Space Successfully managing the flow of information depends answering a few questions. How do people communicate? How do they find information? How can businesses provide information links between their employees and customers?Even if you do provide them with tools to collaborate and to manage data more efficiently, how can you ensure that they will use them? What will the future of business and personal computing look like?
The Solution Practical Internet Groupware argues that we already have the blocks we need to build rich communication tools -- open Internet protocols, ubiquitous web browsers, e-mail clients, and newsgroup readers, and quick and dirty scripting languages. By understanding and applying the various technologies appropriately, you can not only reduce the burden of creating, aggregating, and retrieving data, but also enhance its availability and utility. What's Good? Take the word 'Practical' very seriously. While the bulk of the programming examples are Perl, there's JavaScript, VB, Java, and XML thrown in the mix. Udell also stresses working within your existing environment -- whether that means activating the NNTP server included with IIS 4.0 on an NT server or installing INN on the Linux box in the corner. He's also very pragmatic. While XML is poised to be a much cleaner tool, its still-limited availability means that the book spends time presenting solutions which work in the here-and-now heterogenous quick and dirty landscape. Of course, there's also information about shiny new (and mature-but-not-yet-widespread) standards such as LDAP.Also, Udell's experience in the field of collaboration includes years developing and polishing groupware solutions at Byte magazine. Clearly, he has a passion for the subject as well as a deep understanding of the issues involved. Both shine through in his writing.
Through the pages, Udell develops a handful of interesting and useful applications. One is a Docbase system, which blends together a newsgroup, a database, and a web site with indexed searching, various levels of access, and data entry capabilities. Another grabs content from various web sites and merges it into a consistent whole.
The most interesting project in the whole book is something called Distributed HTTP. It's a Perl-based web server that actually runs on client machines. It's easily extensible (with Perl), supporting authentication, modular database access, and replication with other servers. It's really a clever piece of work. (Just imagine remote data entry from field technicians equipped with laptops, or browsing reports from other locations, and that's the tip of the iceberg.)
What's Not So Good? Like most trailblazing works, the biggest frustration is realizing that there are great ideas here that few people have realized yet. As such, expect to be one part cheerleader, one part trainer, one part pariah, and one part referee if you're implementing things. Also, if you're not somewhat familiar with common Internet protocols such as HTTP, NNTP, and SMTP, or with the concepts and execution of HTML and XML, or with general Perl, you'll have to play catchup through the later chapters. Summary It's hard not to believe that Practical Internet Groupware is a year ahead of the curve -- Udell's approach to technology and the seamless integration of various information stores is a tempting vision. If you're directing rivulets data, get this book, let your boss read the first section, and then set about transforming the way you do business. If you're interested in where the Internet and business are headed, get this book.The cover animals are seals and sea lions.
Table of ContentsPurchase this book at fatbrain.
- Using Internet Groupware
- The Conferencing Dimension
- Public Online Communities
- Intranet Collaboration with NNTP and HTML
- Information Management Strategies for Groupware Users
- Groupware Docbases
- Docbases as Groupware Applications
- Docbase Input Techniques
- Docbase Navigation
- Organizing Search Results
- Groupware Applications and Services
- Conferencing Applications
- Groupware Servlets
- Membership Services
- Authentication and Authorization Techniques
- Deploying NNTP Discussion Servers
- Advanced Internet Groupware
- Automating Internet Components
- Distributed HTTP
- Epilogue
- Appendixes
- Software Developed for this Book
- Internet RFCs: A Groupware Perspective
-
Using Samba
chromatic, another of our fine group of book reviewers, took some time with a draft copy of the new O'Reilly and Associates book Using Samba. Written by Robert Eckstein, David Collier-Brown & Peter Kelly, this book helps you learn how to setup Samba, as well as information on the protocol itself. Click below to learn more. Using Samba author Kelly, Peter / Collier-Brown, David / Eckstein, Robert pages 416 publisher O'Reilly & Associates, 11/1999 rating 8/10 reviewer chromatic ISBN 1565924495 summary Using Samba takes you from heterogenous network purgatory into manageable bliss by helping you install, configure, and maintain Samba installations.
OverviewSamba is a suite of software tools implementing the SMB protocol. With Samba, you can share files and printers from a Unix-based server to Windows-based clients. You can even control a Windows NT based domain with a Unix server, potentially saving thousands of dollars in software licensing fees and administration costs.
Using Samba takes you from your initial need for Samba in a heterogenous network to installation, through configuration, and ending up with performance tweaking. Most of the focus is on the server side, but there's information about the SMB protocol itself and client setup.
Note: This review is based upon a draft copy of the book. The final copy has been reorganized and some parts have been rewritten. Most of the information still applies.
What's Good?As is Samba, Using Samba is Unix-variant agnostic, with installation tips for multiple OS's. This covers download sites, compilation, and even SWAT, the web-based configuration interface in Samba 2.0.x. The authors have a clear, clean style (as you'd expect from O'Reilly) and take a common-sense, practical approach to various issues such as security and configuration. The authors also focus on additional Samba utilties like smbclient and smbmount, which are useful for troubleshooting.
The chapter on tweaking for performance is excellent. More books deserve chapters like this. The authors go through the various bottlenecks and demonstrate how modifying one parameter affects the others. (I suspect the general principles are applicable elsewhere.)
The real gem of this book is chapter nine, the troubleshooting tree. If you're stuck with weird behavior and you have a deadline to meet, this chapter alone may be well worth the cover price. It starts by discussing Samba logs, moves into trace and tcpdump, spends pages and pages on an extremely detailed Fault Tree, and ends up with pointers to other resources.
What's not so good?(These are really minor points. My recommendation is that if you're looking at Samba, you should read the sample chapter and then buy this book.)
The chapter on configuring Windows clients seemed a little out of place, given that this book promotes Samba as a replacement or alternative to a Windows server. That's pretty straightforward, and probably not why you'd buy a book about Samba. The NT Domain model discusison is valuable, though, given that a Samba server may have to act as a Domain Controller or a Master Browser, and that can have big implications.
Using Samba covers both versions 1.9.x and 2.0.x. It would have made more sense to me to stick with the latest stable version and cover it in detail. However, most of the options are the same between the two, and the differences are clearly marked. There are only a handful of places where this comes up. As I said, it's only a minor issue.
The Bottom LineIf you know you need Samba and want some help setting it up and configuring it, this is your book. If you're curious about what Samba can do for your network, flip through the first chapter and rest assured that this book will help you get things under control.
Purchase this book at fatbrain
Table of ContentsPreface
1. Learning the Samba
What is Samba?
What Can Samba Do For Me?
Getting Familiar with a SMB/CIFS Network
Microsoft Implementations
An Overview of the Samba Distribution
How Can I Get Samba?
What's New in Samba 2.0?
And That's Not All...2. Installing Samba on a Unix System
Downloading the Samba Distribution
Configuring Samba
Compiling and Installing Samba
A Basic Samba Configuration File
Starting the Samba Daemons
Testing the Samba Daemons3. Configuring Windows Clients
Setting Up Windows 95/98 Computers
Setting Up Windows NT 4.0 Computers
An Introduction to SMB/CIFS4. Disk Shares
Learning the Samba Configuration File
Special Sections
Configuration File Options
Server Configuration
Disk Share Configuration
Networking Options with Samba
Virtual Servers
Logging Configuration Options5. Browsing and Advanced Disk Shares
Browsing
Filesystem Differences
File Permissions and Attributes on MS-DOS and Unix
Name Mangling and Case
Locks and Oplocks6. Users, Security, and Domains
Users and Groups
Controlling Access to Shares
Authentication Security
Passwords
Windows Domains
Logon Scripts7. Printing and Name Resolution
Sending Print Jobs to Samba
Printing to Windows Client Printers
Name Resolution with Samba8. Additional Samba Information
Supporting Programmers
Magic Scripts
Internationalization
WinPopup Messages
Recently Added Options
Miscellaneous Options
Backups with smbtar9. Troubleshooting Samba
The Tool Bag
The Fault Tree
Extra ResourcesA. Configuring Samba with SSL
B. Samba Performance Tuning
C. Samba Configuration Option Quick Reference
D. Summary of Samba Daemons and Commands
E. Downloading Samba with CVS
F. Sample Configuration File
-
Using Samba
chromatic, another of our fine group of book reviewers, took some time with a draft copy of the new O'Reilly and Associates book Using Samba. Written by Robert Eckstein, David Collier-Brown & Peter Kelly, this book helps you learn how to setup Samba, as well as information on the protocol itself. Click below to learn more. Using Samba author Kelly, Peter / Collier-Brown, David / Eckstein, Robert pages 416 publisher O'Reilly & Associates, 11/1999 rating 8/10 reviewer chromatic ISBN 1565924495 summary Using Samba takes you from heterogenous network purgatory into manageable bliss by helping you install, configure, and maintain Samba installations.
OverviewSamba is a suite of software tools implementing the SMB protocol. With Samba, you can share files and printers from a Unix-based server to Windows-based clients. You can even control a Windows NT based domain with a Unix server, potentially saving thousands of dollars in software licensing fees and administration costs.
Using Samba takes you from your initial need for Samba in a heterogenous network to installation, through configuration, and ending up with performance tweaking. Most of the focus is on the server side, but there's information about the SMB protocol itself and client setup.
Note: This review is based upon a draft copy of the book. The final copy has been reorganized and some parts have been rewritten. Most of the information still applies.
What's Good?As is Samba, Using Samba is Unix-variant agnostic, with installation tips for multiple OS's. This covers download sites, compilation, and even SWAT, the web-based configuration interface in Samba 2.0.x. The authors have a clear, clean style (as you'd expect from O'Reilly) and take a common-sense, practical approach to various issues such as security and configuration. The authors also focus on additional Samba utilties like smbclient and smbmount, which are useful for troubleshooting.
The chapter on tweaking for performance is excellent. More books deserve chapters like this. The authors go through the various bottlenecks and demonstrate how modifying one parameter affects the others. (I suspect the general principles are applicable elsewhere.)
The real gem of this book is chapter nine, the troubleshooting tree. If you're stuck with weird behavior and you have a deadline to meet, this chapter alone may be well worth the cover price. It starts by discussing Samba logs, moves into trace and tcpdump, spends pages and pages on an extremely detailed Fault Tree, and ends up with pointers to other resources.
What's not so good?(These are really minor points. My recommendation is that if you're looking at Samba, you should read the sample chapter and then buy this book.)
The chapter on configuring Windows clients seemed a little out of place, given that this book promotes Samba as a replacement or alternative to a Windows server. That's pretty straightforward, and probably not why you'd buy a book about Samba. The NT Domain model discusison is valuable, though, given that a Samba server may have to act as a Domain Controller or a Master Browser, and that can have big implications.
Using Samba covers both versions 1.9.x and 2.0.x. It would have made more sense to me to stick with the latest stable version and cover it in detail. However, most of the options are the same between the two, and the differences are clearly marked. There are only a handful of places where this comes up. As I said, it's only a minor issue.
The Bottom LineIf you know you need Samba and want some help setting it up and configuring it, this is your book. If you're curious about what Samba can do for your network, flip through the first chapter and rest assured that this book will help you get things under control.
Purchase this book at fatbrain
Table of ContentsPreface
1. Learning the Samba
What is Samba?
What Can Samba Do For Me?
Getting Familiar with a SMB/CIFS Network
Microsoft Implementations
An Overview of the Samba Distribution
How Can I Get Samba?
What's New in Samba 2.0?
And That's Not All...2. Installing Samba on a Unix System
Downloading the Samba Distribution
Configuring Samba
Compiling and Installing Samba
A Basic Samba Configuration File
Starting the Samba Daemons
Testing the Samba Daemons3. Configuring Windows Clients
Setting Up Windows 95/98 Computers
Setting Up Windows NT 4.0 Computers
An Introduction to SMB/CIFS4. Disk Shares
Learning the Samba Configuration File
Special Sections
Configuration File Options
Server Configuration
Disk Share Configuration
Networking Options with Samba
Virtual Servers
Logging Configuration Options5. Browsing and Advanced Disk Shares
Browsing
Filesystem Differences
File Permissions and Attributes on MS-DOS and Unix
Name Mangling and Case
Locks and Oplocks6. Users, Security, and Domains
Users and Groups
Controlling Access to Shares
Authentication Security
Passwords
Windows Domains
Logon Scripts7. Printing and Name Resolution
Sending Print Jobs to Samba
Printing to Windows Client Printers
Name Resolution with Samba8. Additional Samba Information
Supporting Programmers
Magic Scripts
Internationalization
WinPopup Messages
Recently Added Options
Miscellaneous Options
Backups with smbtar9. Troubleshooting Samba
The Tool Bag
The Fault Tree
Extra ResourcesA. Configuring Samba with SSL
B. Samba Performance Tuning
C. Samba Configuration Option Quick Reference
D. Summary of Samba Daemons and Commands
E. Downloading Samba with CVS
F. Sample Configuration File