eggyknap writes: "To much of the world, a "document" is just some text. These authors limit themselves strictly to black and white, and only rarely employ such extravagances as italic typefaces and varying font sizes. I fall squarely in this category, so reading "Scribus 1.3.5 Beginner's Guide" was an interesting introduction to an otherwise completely unfamiliar world.
Scribus is a desktop publishing application similar to QuarkXpress or Adobe InDesign, but open source and free to download and use, targeted at those who want to create visually interesting documents such as flyers, promotional literature, brochures, and reports. It allows for creative and flexible formatting of text and images, to handle large and demanding publishing projects. Author Cedric Gemy is a long-time user of and contributer to both the Scribus and Inkscape projects (Inkscape is an open source vector graphics application), and his new book provides a fairly straightforward and understandable tutorial for the beginner.
Gemy is French, writing in English, and though the book is generally very easy to understand, the writing often reflects the unconventional word choice of a non-native speaker. Once the reader gets used to the style, however, the instructions and descriptions are simple and useful, flowing logically from subject to subject, as seen in the sample chapter available from PacktPub.com. While unapologetic about Scribus' occasional failings and shortcomings in comparison to its more established commercial competitors, Gemy presents Scribus as a capable and useful tool for publishers from amateur to professional, and does so with useful step-by-step instructions for each of the topics it treats.
I have no background whatsoever in desktop publishing, so I found the book's occasional rules of thumb particularly interesting. For instance, it instructs the designer never to use images of less than 144 points per inch for works destined for hardcopy. Also intriguing were the introductions to bits of publishing practices I'd never imagined, such as its section on "ink coverage", which describes Scribus' technique for reducing the number of colors and amount of ink a print task will require, or its section on creating PDF files for printing (large and detailed) vs. for the web (small and lightweight).
This is not a book about graphic design, and its readers should not expect insights into decisions of layout for maximum effect, color matching, and the like. It is instead a practical and technical manual, describing the functions of menus, the operation of various tools, and the application of Scribus' Python API for user-defined scripting. The book gives advice on choosing the best image file format for importing into a document, but remains silent on the subject of choosing the best color to complement the image in the rest of the document.
Gemy claims this is a guide for beginners, and his content doesn't disappoint. No publishing experience is necessary to navigate the instructions, and the examples were sufficient to enliven even my long dormant creative spark. Although I don't expect I'll be responsible for publishing a magazine or sales brochure anytime soon, it's not unlikely Scribus will help build the invitations for my kid's next birthday party."
eggyknap writes: Thanks in large part to the oft-hyped "NoSQL" movement, database performance has received a great deal of press in the past few years. Organizations large and small have replaced their traditional relational database applications with new technologies like key-value stores, document databases, and other systems, with great fanfare and often great success. But replacing a database system with something radically different is a difficult undertaking, and these new database systems achieve their impressive results principally because they abandon some of the guarantees traditional database systems have always provided.
For those of us who need improved performance but don't have the luxury of redesigning our systems, and even more for those of us who still need traditional transactions, data integrity, and SQL, there is an option. Greg Smith's book, "PostgreSQL 9.0 High Performance" takes the reader step-by-step through the process of building an efficient and responsive database using "the world's most advanced open source database".
Greg Smith has been a major contributor to PostgreSQL for many years, with work focusing particularly on performance. In "PostgreSQL 9.0 High Performance", Smith starts at the lowest level and works through a complete system, sharing his experience with systematic benchmarking and detailed performance improvement at each step. Despite the title, the material applies not only to PostgreSQL's still fairly new 9.0 release, but to previous releases as well. After introducing PostgreSQL, briefly discussing its history, strengths and weaknesses, and basic management, the book dives into a detailed discussion of hardware and benchmarking, and doesn't come out for 400 pages.
Databases vary, of course, but in general they depend on three main hardware factors: CPU, memory, and disks. Smith discusses each in turn, and in substantial detail, as demonstrated in a sample chapter available from the publisher, Packt Publishing. After describing the various features and important considerations of each aspect of a database server's hardware, the book introduces and demonstrates powerful and widely available tools for testing and benchmarking. This section in particular should apply easily not only to administrators of PostgreSQL databases, but users of other databases, or indeed other applications as well, where CPU, memory, or disk performance is a critical factor. Did you know, for instance, the difference between "write-through" and "write-back" caching in disk, and why it matters to a database? Or did you know that disks perform better depending on which part of the physical platter they're reading? How does memory performance compare between various common CPUs through the evolution of their different architectures?
At every step, Smith encourages small changes and strict testing, to ensure optimum results from your performance efforts. His discussion includes methods for reducing and correcting variability, and sticks to easily obtained and interpreted tools, whose output is widely understood and for which support is readily available. The underlying philosophy has correctly been described as "measure, don't guess," a welcome relief in a world where system administrators often make changes based on a hunch or institutional mythology.
Database administrators often limit their tools to little more than building new indexes and rewriting queries, so it's surprising to note that those topics don't make their appearance until chapters 9 and 10 respectively, halfway through the book. That said, they receive the same detailed attention given earlier to database hardware, and later on to monitoring tools and replication. Smith thoroughly explains each of the operations that may appear in PostgreSQL's often overwhelming query plans, describes each index type and its variations, and goes deeply into how the query planner decides on the best way to execute a query.
Other chapters cover such topics as file systems, configuration options suitable for various scenarios, partitioning, and common pitfalls, each in depth. In fact, the whole book is extremely detailed. Although the tools introduced for benchmarking, monitoring, and the like are well described and their use nicely demonstrated, this is not a book a PostgreSQL beginner would use to get started. Smith's writing style is clear and blessedly free of errors and confusion, as is easily seen by his many posts on PostgreSQL mailing lists throughout the years, but it is deeply detailed, and the uninitiated could quickly get lost.
This is also a very long book, and although not built strictly as a reference manual, it's probably best treated as one, after an initial thorough reading. It covers each topic in such detail that each must be absorbed before further reading can be beneficial. Figures and other non-textual interruptions are, unfortunately, almost nowhere to be found, so despite the author's clear and easy style, it can be a tiring read.
It is, however, one of the clearest, most thorough, and best presented descriptions of the full depth of PostgreSQL currently available, and doubtless has something to teach any frequent user of a PostgreSQL database. Those planning a new database will welcome the straightforward and comprehensive presentation of hardware-level details that are difficult or impossible to change after a system goes into production; administrators will benefit from its discussion of configuration options and applicable tools; and users and developers will embrace its comprehensive description of query planning and optimization. "PostgreSQL 9.0 High Performance" will be a valuable tool for all PostgreSQL users interested in getting the most from their database.