Learning the bash Shell, 2nd Edition Cameron Newham, Bill Rosenblatt  
* * * * -
More Details

The first thing users of the Linux operating system come face to face with is the shell. "Shell" is the UNIX term for a user interface to the system — something that lets you communicate with the computer via the keyboard and display. Bash, the Free Software Foundation's "Bourne Again Shell," is the default shell for Linux, the popular free UNIX-like operating system. It's also a replacement for the standard UNIX Bourne shell, which serves both as a user interface and as a programming language. Like the FSF's other tools, bash is more than a mere replacement: it extends the Bourne shell in many ways. Features include command line editing, key bindings, integrated programming features, command completion, control structures (especially the select construct, which enables you to create menus easily), and new ways to customize your environment.

Whether you want to use bash for its user interface or its programming features you will find Learning the bash Shell a valuable guide. The book covers all of bash's features, both for interactive use and programming. If you are new to shell programming, Learning the bash Shell provides an excellent introduction, covering everything from the most basic to the most advanced features, like signal handling and command line processing. If you've been writing shell scripts for years, it offers a great way to find out what the new shell offers. The book is full of examples of shell commands and programs that are designed to be useful in your everyday life as a user, not just to illustrate the feature being explained. All of these examples are freely available to you online on the Internet.

This second edition covers all of the features of bash Version 2.0, while still applying to bash Version 1.x. New features include the addition of one-dimensional arrays, parameter expansion, and more pattern-matching operations. bash 2.0 provides even more conformity with POSIX.2 standards, and in POSIX.2 mode is completely POSIX.2 conformant. This second edition covers several new commands, security improvements, additions to ReadLine, improved configuration and installation, and an additional programming aid, the bash shell debugger.

With this book you'll learn:

How to install bash as your login shellThe basics of interactive shell use, including UNIX file and directory structures, standard I/O, and background jobsCommand line editing, history substitution, and key bindingsHow to customize your shell environment without programmingThe nuts and bolts of basic shell programming, flow control structures, command-line options and typed variablesProcess handling, from job control to processes, coroutines and subshellsDebugging techniques, such as trace and verbose modesTechniques for implementing system-wide shell customization and features related to system security

Everyday Linux Kathy Miles Ethan Metsger  
* * * - -
More Details

Everyday Linux suffers a bit because it doesn't seem to have identified a clear target audience. The book itself does a great job of explaining how to install Red Hat Linux—and how to do other key initial configuration tasks such as setting up a modem and connecting to a local area network (LAN)—clearly and in terms understandable to pretty much anyone. It even deftly introduces Linux novices to the command line, where cryptic key sequences can confuse even the most avid power user.

After that, though, it falls into a protracted (nearly half the book) discussion of how to use productivity applications (specifically, the components of StarOffice, WordPerfect, and some miscellaneous programs). This applications coverage is too basic, and probably will seem silly to people brave enough to experiment with Linux. The screen shots that back up that coverage are also simply too big.

That said, this book may earn some fans through its installation and set-up coverage alone. The writing style is easy to follow and often bright with humor, and the authors make it clear that using Linux is fun. They also nudge readers toward Web sites and other aspects of the remarkably active community of Linux users. —David Wall

Topics covered: The fundamentals of setting up Red Hat Linux 6.2 and using it for general home and office productivity purposes.

Learning Python Mark Lutz, David Ascher  
* * * ~ -
More Details

The authors of Learning Python show you enough essentials of the Python scripting language to enable you to begin solving problems right away, then reveal more powerful aspects of the language one at a time. This approach is sure to appeal to programmers and system administrators who have urgent problems and a preference for learning by semi-guided experimentation.

First off, Learning Python shows the relationships among Python scripts and their interpreter (in a mostly platform-neutral way). Then, the authors address the mechanics of the language itself, providing illustrations of how Python conceives of numbers, strings and other objects as well as the operators you use to work with them. Dictionaries, lists, tuples and other data structures specific to Python receive plenty of attention including complete examples.

Authors Mark Lutz and David Ascher build on that fundamental information in their discussions of functions and modules, which evolve into coverage of namespaces, classes and the object-oriented aspects of Python programming. There's also information on creating graphical user interfaces (GUIs) for Python applications with Tkinter.

In addition to its careful expository prose, Learning Python includes exercises that both test your Python skills and help reveal more elusive truths about the language.

The Pragmatic Programmer: From Journeyman to Master Andrew Hunt, David Thomas  
* * * * ~
More Details

If I'm putting together a project, it's the authors of this book that I want. . . . And failing that I'd settle for people who've read their book." — Ward Cunningham

Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process—taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to

Fight software rot;Avoid the trap of duplicating knowledge;Write flexible, dynamic, and adaptable code;Avoid programming by coincidence;Bullet-proof your code with contracts, assertions, and exceptions;Capture real requirements;Test ruthlessly and effectively;Delight your users;Build teams of pragmatic programmers; andMake your developments more precise with automation.

Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Coder to Developer: Tools and Strategies for Delivering Your Software Mike Gunderloy Sybex  
* * * * -
More Details

"Two thumbs up"

—Gregory V. Wilson, Dr. Dobbs Journal(October 2004)

No one can disparage the ability to write good code. At its highest levels, it is an art.

But no one can confuse writing good code with developing good software. The difference—in terms of challenges, skills, and compensation—is immense.

Coder to Developerhelps you excel at the many non-coding tasks entailed, from start to finish, in just about any successful development project. What's more, it equips you with the mindset and self-assurance required to pull it all together, so that you see every piece of your work as part of a coherent process. Inside, you'll find plenty of technical guidance on such topics as: Choosing and using a source code control systemCode generation tools—when and whyPreventing bugs with unit testingTracking, fixing, and learning from bugsApplication activity loggingStreamlining and systematizing the build processTraditional installations and alternative approaches

To pull all of this together, the author has provided the source code for Download Tracker, a tool for organizing your collection of downloaded code, that's used for examples throughout this book. The code is provided in various states of completion, reflecting every stage of development, so that you can dig deep into the actual process of building software. But you'll also develop "softer" skills, in areas such as team management, open source collaboration, user and developer documentation, and intellectual property protection. If you want to become someone who can deliver not just good code but also a good product, this book is the place to start. If you must build successful software projects, it's essential reading.

Rapid Development: Taming Wild Software Schedules Steve McConnell  
* * * * ~
More Details

Get your development schedules under control and on track! Corporate and commercial software-development teams all want solutions for one important problem-how to get their high-pressure development schedules under control. Rapid Development describes ov

Manage It!: Your Guide to Modern, Pragmatic Project Management Johanna Rothman  
* * * * *
More Details

This book is a reality-based guide for modern projects. You'll learn how to recognize your project's potholes and ruts, and determine the best way to fix problems - without causing more problems.

Your project can't fail. That's a lot of pressure on you, and yet you don't want to buy into any one specific process, methodology, or lifecycle.

Your project is different. It doesn't fit into those neat descriptions.

Manage It! will show you how to beg, borrow, and steal from the best methodologies to fit your particular project. It will help you find what works best for you and not for some mythological project that doesn't even exist.

Before you know it, your project will be on track and headed to a successful conclusion.

Interface Oriented Design: With Patterns Ken Pugh  
* * * * -
More Details

Interface Oriented Design focuses on an important, but often neglected, aspect of object-oriented design. You'll learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services. You'll see techniques for breaking down solutions into interfaces and then determining appropriate implementation of those interfaces to create a well structured, robust, working program.

Interface Oriented Design explores how to develop robust, reliable software as a collection of interfaces that interact with each other.

You'll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations.

Learn about the most useful patterns, including Proxy, Facade, Adapter, and Factory, as well categories of interfaces including service providers, information holders, and external world interfaces.

If you want to be a more effective programmer and create better software, you need Interface Oriented Design.

Learning the vi Editor Arnold Robbins Linda Lamb  
* * * * ~
More Details

For many users, working in the Unix environment means using vi, a full-screen text editor available on most Unix systems. Even those who know vi often make use of only a small number of its features. Learning the vi Editor is a complete guide to text editing with vi. Topics new to the sixth edition include multiscreen editing and coverage of four viclones: vim, elvis, nvi, and vile and their enhancements to vi, such as multi-window editing, GUI interfaces, extended regular expressions, and enhancements for programmers. A new appendix describes vi's place in the Unix and Internet cultures. Quickly learn the basics of editing, cursor movement, and global search and replacement. Then take advantage of the more subtle power of vi. Extend your editing skills by learning to use ex, a powerful line editor, from within vi. For easy reference, the sixth edition also includes a command summary at the end of each appropriate chapter. Topics covered include:Basic editingMoving around in a hurryBeyond the basicsGreater power with exGlobal search and replacementCustomizing vi and exCommand shortcutsIntroduction to the vi clones' extensionsThe nvi, elvis, vim, and vile editorsQuick reference to vi and ex commandsvi and the Internet

40 Digital Photography Techniques John Kim Youngjin.com  
* * * * ~
More Details

"This friendly, full-color book will help you have fun with your digital camera right away."

—Fred Showker, Editor/Publisher of DT&G Magazine

Are you a new digital camera owner who wants to boost your picture taking skills and explore your creative side? This friendly, full-color book will help you have fun with your digital camera right away. You'll learn to compose good shots, play with light, shoot close-ups, capture objects in motion, experiment with filters, and much more. Discover forty valuable techniques and hundreds of creativity-inspiring images, and then test out the free software on the companion CD. You can get all this value at a remarkably affordable price with 40 Digital Photography Techniques for Beginners.

Brought to you by Sybex and YoungJin.com, a leading South Korean book publisher founded in 1987. Youngjin.com is known for brilliant graphics and digital photography books, featuring exceptionally stylish designs and high-quality images.

40 Digital Photography Techniqueswill show you how to:

* Choose, use, and accessorize digital cameras

* Take sharp, high-quality photos

* Understand and use various sources of light

* Capture great portraits of people and children

* Take interesting photos on vacation, on snowy or rainy days, at sunrise and sunset, and at night

* Shoot everything from panoramas and architecture to products, food, cars, and pets

* Transfer, edit, and print you images, or put them on the web

* And more!

The Practice of Programming (Addison-Wesley Professional Computing Series) Brian W. Kernighan Rob Pike  
* * * * -
More Details

Coauthored by Brian Kernighan, one of the pioneers of the C programming language, The Practice of Programmingis a manual of good programming style that will help any C/C++ or Java developer create faster, more maintainable code.

Early sections look at some of the pitfalls of C/C++, with numerous real-world excerpts of confusing or incorrect code. The authors offer many tips and solutions, including a guide for variable names and commenting styles. Next, they cover algorithms, such as binary and quick sorting. Here, the authors show how to take advantage of the built-in functions in standard C/C++. When it comes to data structures, such as arrays, linked lists, and trees, the authors compare the options available to C, C++, Java, and even Perl developers with a random-text-generation program (using a sophisticated Markov chain algorithm) written for each language.

Subsequent sections cover debugging tips (including how to isolate errors with debugging statements) and testing strategies (both white-box and black-box testing) for verifying the correctness of code. Final sections offer tips on creating more portable C/C++ code, with the last chapter suggesting that programmers can take advantage of interpreters (and regular expressions) to gain better control over their code. A handy appendix summarizes the dozens of tips offered throughout the book.

With its commonsense expertise and range of examples drawn from C, C++, and Java, The Practice of Programmingis an excellent resource for improving the style and performance of your code base. —Richard Dragan

sed & awk Dale Dougherty, Arnold Robbins  
* * * * ~
More Details

sed & awk describes two text processing programs that are mainstays of the UNIX programmer's toolbox. sed is a "stream editor" for editing streams of text that might be too large to edit as a single file, or that might be generated on the fly as part of a larger data processing step. The most common operation done with sed is substitution, replacing one block of text with another. awk is a complete programming language. Unlike many conventional languages, awk is "data driven" — you specify what kind of data you are interested in and the operations to be performed when that data is found. awk does many things for you, including automatically opening and closing data files, reading records, breaking the records up into fields, and counting the records. While awk provides the features of most conventional programming languages, it also includes some unconventional features, such as extended regular expression matching and associative arrays. sed & awk describes both programs in detail and includes a chapter of example sed and awk scripts. This edition covers features of sed and awk that are mandated by the POSIX standard. This most notably affects awk, where POSIX standardized a new variable, CONVFMT, and new functions, toupper() and tolower(). The CONVFMT variable specifies the conversion format to use when converting numbers to strings (awk used to use OFMT for this purpose). The toupper() and tolower() functions each take a (presumably mixed case) string argument and return a new version of the string with all letters translated to the corresponding case. In addition, this edition covers GNU sed, newly available since the first edition. It also updates the first edition coverage of Bell Labs nawk and GNU awk (gawk), covers mawk, an additional freely available implementation of awk, and briefly discusses three commercial versions of awk, MKS awk, Thompson Automation awk (tawk), and Videosoft (VSAwk).