Domain: amazon.com
Stories and comments across the archive that link to amazon.com.
Stories · 1,405
-
The Twitter Book
stoolpigeon writes "Microblogging service Twitter has undeniably been a hit, with growth rates that were at times in excess of 1400%. The growth was rapid enough that the site became well known for its periodic, and, at times, extensive downtime. Even with these issues, the service continued to grow rapidly, and with celebrities getting into the mix Twitter was quickly on the radar of mainstream media. The ubiquity of Twitter and ever-increasing coverage of 'tweets' has also brought the inevitable backlash. As with anything that gains high-profile popularity, there are plenty of Twitter haters out there, though the role Twitter has played in the recent Iranian elections seems to have brought more legitimacy to Twitter in the eyes of many. With popularity come books, and quite a few are already out there about and for Twitter, but my favorite so far is The Twitter Book by Tim O'Reilly and Sarah Milstein." Read below for the rest of JR's review. The Twitter Book author Tim O'Reilly and Sarah Milstein pages 234 publisher O'Reilly Media, Inc. rating 9/10 reviewer JR Peck ISBN 978-0-598-80281-3 summary If you want to learn how to use Twitter like a pro, The Twitter Book will quickly get you up to speed. What makes The Twitter Book work so well is that it functions in a manner very similar to the service it describes. The book itself is small, 8x5.9x0.7 inches, and the font is a bit larger than most tech books. This means the most text dense pages probably contain the same content as one third of a page in a traditional O'Reilly book. Most pages aren't text though, there is a liberal use of color, bold text and graphics. When a page is relatively heavy on text, the facing page will be equally focused on graphics with pictures, graphs or large colored bubbles around text.
All this combines to make The Twitter Book contain many of the same elements that create such a passionate response, positive or negative, to Twitter itself. This means if someone absolutely hates twitter, can't think of a single reason it should exist and wishes it would go away; they are probably not going to like this book. On the other hand anyone that loves Twitter and wants to learn all the ins and outs of the service, there is a high likelihood they are really going to take to this guide. It's format is one of those genius moves that seems incredibly obvious in hind sight. When I've shown it to other fans of Twitter, the usual initial response has been, "A twitter book, really?" and they are not all that enthusiastic. But once I start flipping through it and letting them see the way it is formatted, the reception becomes much warmer and quite a few have quickly flipped from skepticism to a desire to take my copy.
O'Reilly and Milstein both have been using the Twitter platform extensively and speak from experience and data that backs up their assertions. The format may make the whole thing look rather simple, but there is a lot going on here and one can very easily find a lot of bad advice out there on how to get the most out of Twitter. The Twitter Book leaves the reader in good hands that have already tread the paths they lead one down.
Of course this does raise and important question, is a guide to microblogging really necessary? All one does with twitter after all, is post 140 word updates. If kids can text vociferously, who needs how to do the equivalent to a web site? Well, there are two things in play that I think make this worth having. The first, and I think possibly the more important, is that Twitter is a social service. Beyond the simple technical aspects of the various clients, and technologies supported for the sending and receiving of tweets, there are the mores and customs of what has already become an established community. O'Reilly and Milstein aren't just guiding the reader through a simple how to, they are giving an introduction to a massive community that can save the reader from making more than a few mistakes that could really make getting going with microblogging a rough start.
The second reason is that while basic twitter functionality is drop dead easy, some of the more powerful or useful features are not built into twitter itself. They are methods and tools that have come up from the user base itself. Some of them require a little thinking outside the box as it were and are not immediately obvious. Others do seem incredibly simple once they've been implemented but their simplicity belies their usefulness. The book gives solid information on third party clients and tools. Tips on use are backed up with statistics on existing use within twitter.
As this is The Twitter Book, I have been talking about Twitter quite a bit. I'm sure the name is going to help the book sell but much of the information is just as valuable in the context of microblogging in general as opposed to just Twitter. The only real exception may be the clients and tools mentioned previously. Some of them have been slow to support other platforms. I think this book is just as useful still, to anyone microblogging with another service such as idenit.ca. Identi.ca is built on the free and open Laconica software. I personally base all my microblogging from identi.ca and forward things over to twitter. I still interact on twitter because at this point is where the majority of the players are at. But the social guidelines and strategies laid out in The Twitter Book carry over directly to identi.ca.
I don't really have any issues with the book. The scope is purposefully narrow and within the defined limits the authors have covered everything very well. I'd have loved to see something on identi.ca or Laconica but that would have widened the scope quite a bit and I think we can all relate to hating scope creep in a project. SlideShare has a nice preview of the book. Of course this format is not suited to every purpose. Any in depth study of just what makes twitter so popular and the impact it is or is not having on society will need to take place in a manner more suited to such topics. This is simply a case of using the right tool for the job. But dismissing this format as useless would be a mistake it is uniquely appropriate to the job at hand. I think this book is a lot like a screw driver. When used in the manner intended, no tool is better at the job. The only way to break a screw driver is to use it in an unintended way. In that case it isn't the tool's fault. Looking for a meaty discourse on the pros and cons of twitter? Do not look here. But if getting the most out of the service is the goal this may just be the best tool available.
You can purchase The Twitter Book from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Unlocking Android
Michael J. Ross writes "Of all the potential challengers to Apple's phenomenally popular iPhone, perhaps the one with the best prospects is Google's Android, which is not a mobile phone per se, but rather an open-source platform that the company encourages phone manufacturers to deploy in their own products. Similarly, Google encourages computer programmers to develop applications for the Android environment. But learning how to create such applications is daunting to the uninitiated, particularly for developers who have never before worked with the user interface controls, Web services, and other resources involved. A recently published book, Unlocking Android, is designed to help such developers." Read below for the rest of Michael's review. Unlocking Android author W. Frank Ableson, Charlie Collins, Robi Sen pages 416 pages publisher Manning Publications rating 8/10 reviewer Michael J. Ross ISBN 978-1933988672 summary A guide to developing applications for Google's Android. Unlocking Android was put out by Manning Publications on 28 May 2009, under the ISBN 978-1933988672. It was authored by W. Frank Ableson, Charlie Collins, and Robi Sen — all of whom have extensive experience in developing mobile software applications. The publisher's Web page makes available author biographies, descriptions of the book, all its ancillary parts (the foreword, preface, acknowledgments, table of contents, and index), a white paper on Android (oddly termed a "green paper"), and two sample chapters ("Targeting Android" and "Intents and services"). There is a link to download the source code from the Google Code site, organized by chapter. The Manning site also hosts a forum, where readers and the authors can discuss the book. As of this writing, there are 42 threads, comprising 120 messages. Lastly, the site has links to order both the print and electronic versions of the book. Note that purchasing the former automatically entitles one to a copy of the latter. Manning appears to be pioneering this approach to making e-books more readily available to customers, since every print copy now contains an insert with a list of codes that can be used to download a PDF copy of the book.
The book is ostensibly intended for Android beginners, even though it does contain enough detailed information to serve as a partial reference for more experienced developers. It is organized in a logical fashion, in three parts, starting with an overview of Android itself, both the technology and the organization behind it. Then the reader is introduced to the Android programming environment, along with its many components and capabilities. The book concludes with tutorial chapters that step the reader through creating a sample Android application and more. The material covers Android SDK 1.x. Since Android programs are written in Java, any reader fluent in that language will have a much easier time absorbing the ideas. However, the authors state that even non-Java programmers should be able to follow the examples, as long as they have knowledge of similar languages, such as C, C++, or C#. However, even a cursory glance at the code, by such a reader, would prove that Java knowledge is essential.
The first chapter — oddly named "Targeting Android" — introduces the platform, the organizations behind it, the mobile market as a whole, Android's features, how it differs from featured phones and smartphones, its open-source licenses, platform components, libraries, service managers, programming environment, and virtual terminal. Be warned that Figure 1.1 could be confusing to some readers, because it shows the layers of technology that compose the Android platform, but pictures them on the front of a mobile phone, showing a keypad, which makes the layers appear to be part of the actual user interface; the phone should be removed from the illustration, in a future edition. The chapter goes on to discuss booting and activating Android, as well as how to map applications to processes. Some readers anxious to get to the technical nitty-gritty, may become impatient when reading the first portion of this chapter, because it largely consists of introductory material. Yet this context can be helpful and interesting to people unfamiliar with the mobile phone market. (Articles and tutorials aimed at new mobile application developers, oftentimes assume that said developers are already extremely familiar with the rapidly changing mobile market.) In the later portion of the chapter, readers are shown a handful of code snippets, with some explanation as to what they are doing and how. In reading this material, the reader could be easily overwhelmed with all of the new terminology. One can only hope that the authors were not thinking that the typical reader would understand all of what is discussed, or be able to do anything with it. A canonical "Hello, world" program or something similar — with an explanation as to how to execute it — would have been a far more gentle introduction. By the way, the first few code snippets are poorly indented, and some of the method names are italicized, while others are not — with no mention as to what this might signify, either in the chapter or in the earlier "Code Conventions" section.
In Chapter 2, the reader is introduced to the key tools for basic Android development, including the SDK, Eclipse, and the Android Emulator. An example application — a tip calculator — is developed, step by step, to illustrate those tools. Clearly, this tutorial information should have been presented before the second section of the previous chapter. It nonetheless serves as a valuable introduction to programming Android. Incidentally, Figure 2.1 labels the development environment as being located on a laptop, incorrectly suggesting that desktop computers are not equally usable platforms. Later, when the authors suggest that readers add the Android SDK tools directory to their system search path, they specify only the release-independent directory (containing adb, for instance), and not the release-specific paths (containing aapt, which is the first tool discussed); readers presumably should add both. Also, the authors should specify which release to use, 1.1 or 1.5. The reader eventually is told how to run a sample application — and not a moment too soon, because at that point the reader is already 15 percent of the way into the book. To reach that point, she must wade through more introductory material than was needed, in addition to discussions of network speed and latency, command line tools, DDMS, Java packages, and other information. All of this could and should be covered later, when it would be much more meaningful, and the reader would have greater motivation to learn it, having seen an Android application running (if only in the emulator).
Part 2 forms the bulk of the book, consisting of nine chapters devoted to the essential aspects of Android application development: user interfaces, including the Activity class, views, resource types, and manifest files; Intent classes, broadcast receivers, task services, and inter-process communications; data storage and retrieval, including user preferences, files stored on the local system and on SD cards, databases, and the ContentProvider class; networking, including client/server interaction, HTTP, and Web services such as SOAP; telephony, including how to receive and initiate calls and SMS messages; notifications and alarms; generating graphics and animation; multimedia, including audio and video, utilizing the OpenCORE technology; location-based applications, using a variety of tools, including Google Earth's KML. All of these chapters make use of example applications, with annotated source code and screenshots of the applications running in the Android emulator.
The third and final part of the book comprises two chapters, each of which extends the core concepts of Android development. Chapter 12 steps the reader through the creation of a substantial application, named "Field Service Application," designed for mobile technicians who provide support services for customers of contracted clients. The application is designed to be used by both the technician and his home office to assign and manage job orders, capture customer signatures of completed jobs, order replacement parts, and receive navigation assistance. The final chapter, "Hacking Android," explores Android's utilization of Linux, the C programming language, and the SQLite database — as well as how the Android developer can access these capabilities under the hood.
Appendix A explains how to install the Eclipse integrated development environment (IDE), the Android software development kit (SDK), and the ADT plug-in for Eclipse. Readers who do not already have those components installed on their computers, may want to first read the appendix and follow the procedures. Note, however, that the procedures given in section A.4, for installing the ADT plug-in, are already out of date — namely, for Eclipse version 3.3. In addition, the URL given by the authors ("https://dl-sll.google.com/android/eclipse") is invalid, because it is missing the trailing directory slash, which is necessary for it to work within Eclipse. (This points up the importance of including root directories in URLs, despite their common absence, because even though Web browsers will automatically correct this upon receiving an error message from the server, Eclipse evidently does not.) The online Android installation instructions are much more useful, because they also include the latest version of Eclipse, 3.4.
As is to be expected with the first edition of any detailed computer programming book, this one contains some errata — for instance, in the first portion of the book alone: "Android[']s" (page xxii, twice), "Webkit" (page 7, in the caption), "SQLite[,] an" (page 11), and "byte code[s]" (page 13). Also, terms such as "Internet" and "Web" are in all-lowercase, throughout the book, even though they are proper names. (In our world of instant messaging and Twitter, grammatical degeneration continues apace.) For any reader who wishes to follow along and implement the sample projects, possibly the most disappointing decision by the authors was that of offering the sample code not as a single archive file, or even individual archive files for each of the 13 chapters. Instead, the reader must tediously click through multiple layers of directories, just to get the code displayed in a browser, one file at a time. Readers are advised to employee a Web copying utility, which, given a starting URL, will try to download all of the linked pages, recursively, and store those Web pages and other Web elements on their own computer (even localizing links, to retain working navigation in the saved pages).
Yet by far the biggest problem with this book, is that while it claims to be an introductory text, suitable for someone completely unfamiliar with Android, it does not bring the newcomer up to speed at a reasonable pace for learning. Instead, it presents a large number of code snippets and tools to the reader, without adequate explanation for the beginner to truly understand what is happening. This pattern begins even in the first chapter, which is sorely lacking a tutorial on how to execute the sample code — to better understand it and perhaps modify it (a practice that most programmers find quite valuable for assimilating a new technology). On page 23 is a frustratingly brief sidebar on testing the receipt of an SMS message, that is far from adequate for the reader anxious to begin testing out this new material. The second chapter continues this unfortunate tendency of describing tools prior to giving the reader enough information to run those tools themselves in the same manner, and see the same results. For instance, on page 41, the authors show how to use the adb tool to connect to a running emulator session, but at that point the reader has no such sessions running. (Sometimes the authors of programming books understand the material quite well, but neglect to view it from the perspective of someone who does not yet have that understanding.)
While more appropriate for intermediate Android developers than claimed, Unlocking Android contains a wealth of information to help Java programmers begin developing mobile applications for Google's new platform, with numerous code snippets and screenshots.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Unlocking Android from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
A Practical Guide to Ubuntu Linux 2nd ed.
stoolpigeon writes "One thing I love about Linux is the rapid development and frequent updates that allow me to run the latest versions of all my favorite software packages. My favorite distributions make it simple to always have the latest and greatest. In fact, the distros themselves roll out new versions regularly, and I am always excited to see what new packages and features will be included. For book publishers this must be a little less exciting. Anything tied to a specific product that is under active development is going to quickly be behind the times. Mark Sobell's A Practical Guide to Ubuntu Linux managed to avoid the worst of this by providing a lot of information that is useful for any Linux user running any distro. But still things move forward and almost exactly a year later we have A Practical Guide to Ubuntu Linux 2nd ed. I was very pleased with the first edition and I think they've managed to really improve what was already a solid resource." Read below for the rest of JR's review. A Practical Guide to Ubuntu Linux 2nd ed. author Mark G. Sobell pages 1244 publisher Prentice Hall rating 9/10 reviewer JR Peck ISBN 978-0-13-700388-4 summary an improvement on what was already a solid resource Let's kick things off with a rough diff on the two editions. There have been improvements made in content and some added tools to rapidly get at what one needs. With the size of the book and the amount covered, these rapid access improvements are significant. The inside of the cover on the second edition has a utility index, so that a reader searching for help with any specific utility can find it quickly. This is followed up with two tables of contents, one a brief summary and the second much more detailed and taking up twenty-two pages. The new edition is about sixty pages longer than the first, but is slightly thinner and shorter. It is still a beefy book, but this is a nice direction to move.
After the tables of contents there is a list of JumpStarts. These are new to the second edition. They are short guides to getting started with key clients and servers. They come at the beginning of sections that will deal with the topic in more detail, but up front the focus is just on getting things up and running. The JumpStarts cover APT, CUPS, OpenSSH, FTP, exim4, NFS, Samba, DNS, firestarter and Apache. These are nice, as often just getting things going is the biggest hurdle and fine tuning is rather easy once that is past.
Like the first edition a DVD is included. As I mentioned Linux is a quick moving target and the dvd contains Ubuntu 8.1. It can be used as a live dvd or to do an install. Last time I checked the Canonical store, this was still the most recent version available on DVD. Ubuntu and Kubuntu 9.04 are available online and on CD. I did an install from the book's dvd and the upgrade to 9.04 was completely painless. I don't really see the DVD as a necessary addition but it could be a nice plus for anyone that wants to get Ubuntu up and running but can't get the bandwidth to download it.
The section Programming the Bourne Again Shell has been removed from the Digging Into Ubuntu Linux section and placed in its own section, Programming Tools which also includes a new chapter on Perl. The chapters on Linux utilities and the Linux file system have also been extended. Coverage of ufw was added to the firewall chapter. The appendices remain the same but three new indices have been added to cover JumpStarts, the file tree and utilities. The main index is huge, offering excellent access to everything in the book. This book shows excellent forethought from start to finish aimed at making it a natural choice to grab from the shelf whenever an Ubuntu user has a question.
This did leave me wondering though, why no database server is included in the coverage. It seemed odd to cover Apache but not the rest of the LAMP stack. Installing MySQL and PHP are simple with Ubuntus package manager, but knowing the basics of caring for them is just as important as it is with Apache, which is also easy to install. I realize that the book is already large, but I'd have liked to see this included. That said, configuring services is covered and indexed in multiple places. This means if one did install MySQL, PostgreSQL or some other database and were looking for how to go about starting, stopping, etc. the information is there.
As before, this is still a nice guide to Linux in general. While it is most applicable to Ubuntu, much of the information is accurate regardless of the distro in question. The style is understandable and there are many examples with code or illustrations as appropriate. This entire book is a real boon to any neophyte that does not have a solid handle on getting their own answers. That group is the one that I think will benefit the most from A Practical Guide to Ubuntu Linux. Random access is easy, but reading cover to cover would also give one a nice foundational understanding of getting the most out of their machine and even enough guidance to get their feet wet in the sysadmin world. Anyone thrown into owning an Ubuntu server may find this to be a handy lifeline. More experienced users, even if they are moving from another distro may find that there is just too much material that they don't need and already know. This really is a basic Linux guide first and an Ubuntu book second.
I thought the first edition was a solid value and the second edition offers welcome improvements with no real missteps. That they managed to put more in, not take a lot out and get it into a smaller package is quite a plus. I don't think anyone will be throwing this in a bag and carrying it with them any time soon, but it's a great office shelf resource for a quick refresher or getting launched. This is the kind of guide that can make the difference between frustrated failure and passion for anyone just starting out with Linux.
You can purchase A Practical Guide to Ubuntu Linux 2nd ed. from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Game Design: A Practical Approach
Aeonite writes "As the title suggests, Game Design: A Practical Approach presents a practical approach to game design — one that is almost too practical in places. The book does a good job of covering many of the foundational elements of game design (called "atoms" by the author), but in places the level of practical detail — and the heavy focus on Lua code examples — is a bit hard to work through. Readers allergic to code may find themselves skipping over swaths of text instead of actually reading it." Read below for the rest of Michael's review. Game Design: A Practical Approach author Paul Schuytema pages 416 publisher Charles River Media rating 6 reviewer Michael Fiegel ISBN 978-1-58450-471-9 summary A practical, often code-heavy guide to game design Schuytema is a game industry veteran, perhaps best known for having worked on the original incarnation of Prey back in 1998 or thereabouts. These days it seems he's employed by the University of Illinois as an Extension Specialist, and it certainly seems to have rubbed off on him, as the book is written in a very scholarly, textbook-like fashion. The preface speaks of "foundational information," and while the exciting parts of working in the game industry are mentioned as well, generally the book's subtitle ("A Practical Approach") is precisely what you get.
The book is broken into three parts. The first, the aptly (and practically) named "Introduction to Game Design," consists of six chapters, covering the basic foundational elements of game design, game design documents, coding tools and the like. The advice in the first four chapters, in particular, comes across as a bit too practical, if not downright pedantic, as the author discusses things like listening, taking notes, and reading. In chapter 4 the author even covers the merits of breathing properly, getting enough sleep and not eating junk food (good luck encouraging that at a game company; we lived on Reese's Peanut Butter Cups at Perpetual Entertainment). One wonders if the current generation of whippersnappers, just entering the industry, really needs to be told to get a good night's sleep; if so, we're in for some interesting games over the next few decades.
Some of the advice here is genuinely useful and interesting, such as methods for helping inspire creative thought, brainstorming and developing memory. Chapters 5 and 6 are also more relevant to game design; the former covers game design documents, pitch docs, functional specifications, and the like, and is one of the tightest and most useful chapters in the book. Chapter 6 then dives headlong into the Lua scripting language, which is where the book's focus on game design sort of drifts sideways into the realm of game development. From this point on, the book is sporadically riddled with code examples, references to the example game on the included CD, and detailed explanations of variables, operators, functions and control structures. This is useful, if dry, but it seems to be directed more at the indie "casual game" industry where game designer, game programmer, game artist, game writer, and game publisher are all the same person.
The second part of the book, "Game Design Theory," covers high level design concepts broken down into what the author calls "game atoms". Examples include things like: having a clear goal for the player; providing subvictories to the player; allowing the player to affect the game world; making the context of the game understandable to the player; and so on. These are insightful, and easy to understand and digest, and were the entire book filled with nothing but these I would find it all the more valuable. Sadly, this section is also the shortest in the book (spanning just over 50 pages), and although later chapters in this section do manage to dive into things like player perceptions and challenges, I find myself wanting more. In covering the concept of game "flow" and losing oneself in the moment, the section does earn geek points for citing Mihaly Csikszentmihalyi, whose name looks like catlike typing should have been detected. But I digress.
Part 3, approximately half of the book, is devoted to "Real-World Game Design," which moves away from "theatrical underpinnings" and into more (you guessed it) "practical" issues. Here, specific "atoms" such as UI, inventory, power-ups, puzzles, conflicts, and the like are covered in some depth, each presented with code to show how the relevant "atom" might be programmed (examples taken from the sandbox game named Eye Opener, included on the accompanying CD). In places the density of code calls to mind the BASIC game programming books I owned in the late '80s, where if I had 6 hours to type I could make a rocket blast off the top of my Apple IIe monitor. In fact, one of the most interesting comments is on page 336 where the author discusses early games on the Apple II, where "(r)eplay of the game meant going for higher scores, since a single pass through the game was maybe 20 minutes tops." Schuytema speaks as if these are games from a bygone era, but it seems to me he's basically describing the modern casual game, of which there are many, many thousands in the wild. Much of the latter material, alas, seems to drift back into the realm of the "overly practical," with the author covering storytelling atoms such as outlining, writing, revising, and working with a writer. The final chapter, "Next Steps," then presents the ever popular "how to break into the industry" section, which covers very practical, but again somewhat obvious topics such as going to school, networking, and following game websites.
Each chapter ends with a summary and a series of "Chapter Exercises" that hammer home the feeling that this book is really more of a textbook, complete with homework assignments, rather than a casual read. Even the index is almost TOO complete and practical, with entries for brief, passing mentions of Barnes & Noble and Yahoo!; I was surprised not to find an entry for Mountain Dew, since it's mentioned a few times more often in the text and seems somewhat more relevant to the game industry. The book also offers a number of "from the trenches" sidebars throughout, each featuring veterans espousing on various elements of the game industry. These are interesting and often insightful, but their overall impact is somewhat reduced considering that fully half of them (11 of 22) feature the author himself. It seems that a broader selection of insights and examples from other designers in the industry would have served to balance the book a bit more.
Also worth at least a passing mention is the issue of the postage-stamp-sized images and screenshots that pepper game books these days. Many of the pictures in this book are difficult to make out due to their clarity and size (Figure 1.1 looks like some guys from Home Depot are about to encounter the Blair Witch), but most can be puzzled through. Even then, although they generally have relevance to the subject being discussed they often don't really reinforce the concept at hand in a useful fashion: Figure 3.1 is a picture of a marble notebook and some pencils, as if the book were written in a future time when knowledge of writing materials was lost; Figure 3.4 is captioned "Use your finger as an eye guide..." and contains a picture of a book with a finger on it; Figure 10.3's caption mentions "the samurai sword" weapon in Shadow Warrior, yet the screenshot apparently depicts a grenade launcher. The capper is probably page 194, which is supposed to illustrate multiplayer gaming, but instead (as far as I can tell) depicts two mid-'90s Inside Sales reps playing Solitaire instead of phoning clients. Possibly they are car salesmen; it's not clear.
Warts aside, as a whole Game Design: A Practical Approach covers quite a lot of terrain in quite a useful fashion, and hits all the major foundational points about game design. Though it does contain quite a lot of Lua code, this is admittedly not as irrelevant as it could have been, since Lua is used in a wide assortment of games, from Far Cry to Natural Selection 2, Warhammer Online to The Witcher. The book is a few years old at this point, but it seems that it will remain relevant as long as Lua remains a viable programming language in the game industry. Left-brainers in search of a fairly crunchy and quite practical book about game design AND development (and in particular those who want to design and develop their own games, rather than work for someone else) will be quite happy with the material here. Those right-brainers more comfortable amidst the fluffier bits of the game industry, however, may find themselves checking their watches halfway through the second act.
You can purchase Game Design: A Practical Approach from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Kindle Pricing, Business Models and Source Code
narramissic writes "A trifecta of Kindle-related news surfaced this week, with Jeff Bezos speaking at Wired's 'Disruptive by Design' conference on topics including Kindle pricing and business models. And yesterday, reports blogger Peter Smith, 'there was a flurry of blogging activity yesterday stating that Amazon had released the Kindle source code. Once everyone caught their breath, it became apparent that the files in question were just some open source libraries that Amazon had modified (they're being good open source citizens and releasing mods they've made to open source code — good for them!), not the complete source code.' Now, back to the Kindle pricing: According to a post at Wired, Bezos said Amazon opted to sell the Kindle for 'something akin to the actual cost for hardware,' rather than subsidizing the hardware costs and requiring a monthly subscription or requiring the buyer to purchase a certain number of books per month because 'fees and minimum purchase requirements create friction.' Smith has a different take: 'If I'm buying a Kindle from Amazon that enables me to buy books from Amazon, I'm broadcasting a desire to buy Kindle books. I would welcome some subsidization of the hardware since I'm going to be buying content anyway. No, I really think Amazon priced the Kindle the way they did because they thought they could get away with doing so (and they were right, it would seem).' Meanwhile, over at the New York Times, Bezos said 'that he sees Kindle-the-device and Kindle-the-book-format as two separate business models, and that the Kindle iPhone App won't be the last software reader to appear.'" -
Wired for War
stoolpigeon writes "The US Army's Future Combat Systems program calls for one third of their fighting strength to be robots by 2015. The American pilots seeing the most combat in Iraq and Afghanistan right now do so from flight consoles in the United States, and they are controlling Predator unmanned vehicles. Every branch of the US military has aggressive robotics programs in place. This is not anything unusual. Other nations are also developing and purchasing robotic systems designed to be used in combat. Advances in communications, software and hardware make it inevitable that robotics will have a profound effect on conflict in the future. The development of these systems has been rapid, and while technology hurtles forward, culture and understanding seem to lag behind. Similar to the way our legal codes are playing catch-up with new technologies, combat-enabled robots raise questions and issues that did not even exist a short time ago. Wired for War by Dr. P. W. Singer is an excellent opportunity for anyone interested to dive into just what is going on all over the world with regards to robotics and their use by the military." Read below for the rest of JR's review. Wired for War: The Robotics Revolution and Conflict in the 21st Century author P. W. Singer pages 499 publisher The Penguin Press rating 10/10 reviewer JR Peck ISBN 978-1-59420-198-1 summary The robotics revolution and conflict in the 21st century. Singer is Senior Fellow and Director of the 21st Century Defense Initiative at the Brookings Institution. His focus and study on changes in modern warfare have made him one of the world's top experts on the nature of modern day combat as well as what developments are likely to come. Singer is an academic, but Wired for War is not a strictly academic approach to the issue of robots in war. He has made an intentional effort to make the book approachable, delivering a large amount of information wrapped in the context of popular culture and current events. The average geek is going to feel right at home in the sea of references made throughout the book as they often turn on sci-fi. This is not to say that the book dwells in a possible future of far-flung vaporware. Wired for War is divided into two large sections. The first is "The Change We are Creating" and deals with the definition, history and current technology of robotics. Some of this is talking about robotics in general but primarily with a view to military applications. Singer makes it clear that he believes that robotics is going to have a huge impact on many more areas of society and culture, but war is the focus of this work.
The last chapter of the first section, "The Refuseniks: The Roboticists Who Just Say No" is an interesting look at those who are not comfortable with the direction they see technology being deployed. It makes for a very natural segue into the second section, "What Change is Creating for Us". It also serves as an excellent illustration of just what Singer does in this book. There is not a lot of highly technical detail or information. The discussion of various technologies in play deals primarily with capabilities available as opposed to how those capabilities are achieved. This is in keeping with Singer's stated desire to keep the book open to a wide audience. It also serves to reinforce what I believe is the real purpose of the book, though it is more subtly stated. That purpose is to educate the members of democracies on what is going on in the militaries of their nations, so that they can be more informed in how they participate in the political process. This is as much a sociology book as it is a technology book and as much as it gives insight into how the military uses technology it also gives insight into military trends and subcultures. Primarily the examples given and information shared deal with the U.S. military. The Chinese military gets some time as well but it is quite small in comparison.
This would probably be my only disappointment with the book. (Well there are two but the second is very specific and small. John Scalzi is called Joe Scalzi on page 369 and in the index.) It is understandable that most of the information is U.S. centric. Singer has been involved with America's Department of Defense and the American military is one of the few that is spending the amounts of money they spend on such a wide array of robotic systems. Singer does discuss how others are getting into the game, and even how less likely players, like insurgents can make use of robotic tech, but there is never the same depth of analysis and information for any other nation as the U.S. It's not that large an issue, the book is still excellent but I would love to see a work of the same depth and breadth that dealt solely with abilities and programs that are not American.
As I mentioned the second section deals much more with how all of this change is apt to change us. Singer deals with questions about not only what robots do to war but what they do to warriors, military leaders, governments and civilians. There is a lot here to chew on and to be honest I found the book to be more than a little frightening at times. Singer doesn't just point out new machines and revel in the engineering challenges that have been overcome. He digs in to see what the ramifications are for all of us and some of it could be very bad. At the same time Singer is not against technology and can see the good side of many developments. I think that what he fears most is that many will remain ignorant of just what is taking place and by the time they are all playing catch up it will be too late. I try to stay current on unmanned systems and military changes but there were quite a few revelations to me in the pages of Wired for War. Singer does not shy away from tough questions and I think his previous experience studying warfare, especially in the third world, comes to bear.
This isn't just a book for gun nuts that love to see stuff explode. This is a book for anyone who wants to be up to date on the technological changes that have come and are coming to warfare. As I mentioned, Singer emphasizes the importance of being informed about these things for the members of any democratically governed society. The people of such a nation are culpable in the actions of their leaders and how force is is deployed against others. How can they rightly use the power they have if they are ignorant of the capabilities and the very nature of the systems their military uses? And even more importantly what happens if they do not question the changes in perspective that robots in warfare bring not only to those who deploy such systems but to those who are the targets of automated violence and finally those who look on from the sidelines?
The book covers a lot of ground but does so in an eminently readable way. Part of this is that the notes do not occur at the bottom of the page but at the back of the book. In the back they are numbered but those numbers are not placed in the text. This can make it very difficult to find just how the information fits together. I can see the up side of not interrupting the flow but at the same time it could be frustrating working my way through to be sure I had found the matching note. This also reflects the book having part of one foot in the academic world while the rest of it stands closer to popular literature. The index is decent. This book will in all likelihood be quoted quite a bit and stand as the standard on military robotics for a while. There is a center section of black and white photographs featuring current robotic systems, military and civilian.
Singer addresses the debate over the rate of change in technology and the views of some that we are approaching the singularity where all bets will be off. Whether or not change is gaining momentum at an exponential rate, it is taking place quickly and at some point the technology that Singer covers will be old news. That said, the majority of the attention is given to questions and issues revolving around ethics and morality that will not go away any time soon. This book is going to be a fascinating read for many while educating and expanding their horizons at the same time. I recommend it without reservation.
You can purchase Wired for War: The Robotics Revolution and Conflict in the 21st Century from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Futurological Congress
eldavojohn writes "Stanislaw Lem was arguably the greatest non-English science fiction writer before his death three years ago and left behind many science fiction novels with messages of satire and intrigue. The Futurological Congress is no different. The book has several motifs throughout it but I found the most prominent to be that we are living in an increasingly medicated society whereby the future may be wonderfully dystopian — in that the horrors of our existence are simply hidden by drugs on top of drugs on top of drugs. With a movie due out shortly by director Ari Folman, it seems like a good time to revisit this often overlooked short classic sci-fi work." Read on for the rest of eldavojohn's review The Futurological Congress author Stanislay Lem, Translation by Michael Kandel pages 156 publisher American Publisher: Harcourt Brace & Company rating 9/10 reviewer eldavojohn ISBN 0156340402 summary A dark sci-fi comedy lampooning a future of an overmedicated society detached from reality. Our hero and narrator, Ijon Tichy, should be a familiar name to Lem fans or anyone familiar with Lem's Space Diaries in either English or Polish. Tichy acts as a mechanism of sanity in many of Lem's novels just trying to figure out what the devil is up with a messed up planet he lands on or a particular device/person. By this manner, Lem allows himself much discovery on the reader's behalf and by these means can relay the current state of events to the reader without jarringly interrupting the natural flow of things too much. Through this novel's course of Tichy's discoveries, I was suspended from being disturbed by spoon-fed explanations most of the time, but the word play that occurred in this particular story got to be a bit much and tedious for a sub-150-page paperback hence a missing point in its score.
Tichy is now a member of the Futurological Association and is invited to attend the Eighth Futurological Congress in Nounas, Costa Rica. From the get go, Lem is full of satire with the immediate lampooning of such self-appointed associations (and maybe even academia) by pointing out that there are two kinds of individuals in these associations: the ones that attend every single meeting/conference and those that don't leave their offices, period.
One of the themes throughout the book is a borderline anti-American sentiment about the development of munitions and bombs. I'm familiar with Lem's ability to criticize both sides of the Cold War in a single paragraph although The Futurological Congress seems to focus more heavily on American military and pharmaceutical faults. Lem must have been well aware of kidnappings in Latin America when he wrote this book because that's one aspect he got right about the future of that area. Due to heavy activist presence in Costa Rica trying to capture and ransom Americans, a military attache is accompanying the U.S. Ambassador to Costa Rica to speak at the congress but in the middle of his speech an unfortunate delegate from India reaches into his breast pocket to grab a handkerchief to wipe his nose. This delegate standing next to Tichy is immediately dispensed with by the bodyguards of the ambassador and, thanks to 'humanitarian ballistics,' Tichy only gets a spattering of blood on him instead of the bullet passing through the target and injuring more people.
Some background on Lem may help you understand this satire. He was born a Catholic Pole with Jewish ancestry and seemed to run the gauntlet of oppression. He survived World War II with fake papers as a mechanic/welder and due to his "bourgeois origin" could not study at the Polytechnic during Soviet occupation of Eastern Poland after the end of the war. He became an Atheist stating, "for moral reasons ... the world appears to me to be put together in such a painful way that I prefer to believe that it was not created ... intentionally." Knowing this, his satire and bitter critique of all things may not surprise you. On his way to the conference--aside from meeting an orgy of liberated publishers--he encounters an 'anti-papist' who is a Catholic on his way to kill the Pope with a gun of a massive caliber. The anti-papist's surprising motive is none other than The Holy Bible where Abraham is ordered to kill his son Isaac by God. Except that the anti-papist would be killing a father, the most holiest father. And this would be a great personal sacrifice and the "utmost of martyrdom" as the anti-papist "would suffer terrible torment and his soul eternal damnation." Again, Lem predicts today's world, we have no limit of people eager to misinterpret scriptures of any religion.
Back to the conference--since there's 168 attendees from 64 different countries, each person gets four minutes to present their paper. And everyone is only really interested in their own work and telling everyone else about it in a bit of a narcissistic way. This leads the first member to spend his four minutes thusly: "Stan Hazelton from the U.S. Delegation immediately threw the hall into a frenzy by emphatically repeating: 4, 6, 11, and therefore 22; 5, 9 hence 22; 3, 7, 2, 11, from which it followed that 22 and only 22!! Someone jumped up, saying yes but 5, and what about 6, 18, or 4 for that matter; Hazelton countered this objection with the crushing retort that, either way, 22. I turned to the number key in his paper and discovered that 22 meant the end of the world." The Futurologists in this novel are probably best described as each one being a less optimistic Ray Kurzweil in that they all seem to be spouting their own version of obstacles humanity is soon to face and consequently their ideas to remedy it. For instance the second delegate from Japan unveils a 10,000:1 model of a housing complex some 800 stories tall with self sustaining everything and mobile in the ocean! It's the future! In fact, everything is recycled! Even the food is recycled waste and excrement from the people. The sausage left out in the hall is actually reconstituted human waste (at which point everyone in the audience stops eating and shuffles the food underneath their seats). This sets the tone for a few of the minor themes of the novel and gives you an idea of how Lem takes subtle jabs at everyone. For example another United States delegate takes the floor to talk about population problems that are rapidly developing. He outlines seven solutions: "mass media and mass arrests, compulsory celibacy, full-sale deeroticization, onanization, sodomization, and for repeated offenders--castration." The book makes other references to population control and one character notes that continuing trends of population would eventually result in human beings exploding outward at the speed of light. Nature is addressed in an equally hilarious means as later in the book all animals have been extinct and replaced with what appear to be better controlled robots.
While in his room, Tichy makes the mistake of drinking the water and discovers that the water is spiked with a powerful hallucinogenic drug. He assumes it's the work of the revolutionaries and decides not to tell anyone but as the violence outside escalates and he mentions it to a fellow futurologist, he discovers that it is the rise of chryptochemocracy! With the hotel's staff, he quickly equips a gas mask as it becomes clear that chemical warfare is afoot ... of a psychedelic nature. Planes are called in equipped with LTN bombs. LTN stands for "Love Thy Neighbor" which is pretty indicative of today's munitions and their goals with surgical strikes. Hilariously enough, the very hotel in which the congress is convening is immediately bombed by mistake.
After pages of chemical warfare that affect the crowd's temperament and counter chemicals that affect the crowd's temperament, Tichy and a friend find oxygen tanks and masks and descend to the sewers where the hotel staff is relaxing comfortably with their own oxygen tanks and masks.
Unfortunately, Tichy and his companion do not have enough oxygen to last the night and therefore must take shifts suffering hallucinations. What follows from this point is a series of hallucinations that Tichy has ending in him coming to in the sewer. Tichy has several of these bizarre hallucinations ending in him being shot by revolutionaries in the sewer. He comes to certain that he is still hallucinating and refuses to believe anyone he is not. As a result, they freeze him until they can find a cure for his mental illness and he is unthawed many years later in a reality where 'psychemicals' keep everyone happy. This overmedicated society disgusts and frightens Tichy at times. It has gotten so bad that a company now exists where you can order a psychem that allows you the satisfaction of doing evil upon another person. Murder's no longer a problem, you just get reanimated. The worst possible offense is using psychems on an individual without their consent.
Tichy attempts to adapt and I couldn't help but be reminded of Fry in Futurama with similar humor employed nearly thirty years before it. As Tichy reconnects with his futurologist friend (people stopped dying as technology caught up a la Kurzweil), he discovers something unsettling about the drugs everyone is taking. He discovers that there's mascons that act as blockers to your senses and replace it with a superficial reality. And we start to understand why everything is so mysteriously idyllic while at the same times animals have been extinct for many years and the planet is at an overburdening 26 billion people. Tichy's friend hands him two vials that will unblock the layers of mascons. You see, the 'architects' of this current psychem reality have patched and repatched side effects of psychems and mascons with more psychems and mascons in the air and water supply! I'll leave The Matrix-like vials and harsh transition from utopia to dystopia for people interested in reading the book.
This book was a joy to read and although the very end is a bit dissatisfying to me, the satire and pessimism inherent to Lem's writings have influenced me and continue to influence me heavily. I like to think that Lem borrowed from sci-fi writers like Philip K. Dick and that other science fiction authors like Douglas Adams have borrowed from Lem despite the language barrier and difference in culture. While Lem may not be the icon that Lovecraft, Clarke and Asimov have become, I certainly hope that people recognize his large corpus of works for more than just Solaris as I've enjoyed many novels by him. Lem offers a rare dark comedy in science fiction with The Futurological Congress.
You can pick up the English version of The Futurological Congress at Amazon . And catch the Ari Folman movie where the present day will be live action while the unfathomable future will be animated to adapt to the stark impossibilities the book portrays.
Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Vintage Games
Aeonite writes "Featuring a subtitle that is almost longer than the preface, Vintage Games: An Inside Look at the History of Grand Theft Auto, Super Mario, and the Most Influential Games of All Time offers a retrospective look at those games which authors Bill Loguidice and Matt Barton feel were, in their words, 'paradigm shifters; the games that made a difference.' As the preface points out, these are not necessarily best-selling games, innovative games, or novel games, but rather titles that, 'in their own special way changed videogames forever.'" Keep reading for the rest of Michael's review. Vintage Games author Bill Loguidice and Matt Barton pages 408 publisher Focal Press rating 8 reviewer Michael Fiegel ISBN 978-0-240-81146-8 summary A look at the most influential games of the past four decades The book itself features 25 chapters, each devoted to the study of a particular title that best stands out as "vintage" in its particular genre. Those games chosen as particularly "vintage" are (in order): Alone in the Dark, Castle Wolfenstein, Dance Dance Revolution, Diablo, Doom, Dune II, Final Fantasy VII, Flight Simulator, Grand Theft Auto III, John Madden Football, King's Quest, Myst, Pac-Man, Pole Position, SimCity, Space Invaders, Street Fighter II, Super Mario 64 (covered in tandem with Tomb Raider), Super Mario Bros.,Tetris, The Legend of Zelda, The Sims, Ultima, Ultima Online, and Zork. In addition, nine additional "Bonus Chapters" are available online at the book's website, covering Defender, Elite, Pinball Construction Set, Pong, Robotron: 2084, Rogue, Spacewar!, Star Raiders, and Tony Hawk's Pro Skater.
Though listing the titles here seems a bit tedious, it does serve two purposes. First, it demonstrates the broad range of game genres and titles covered in the book, with selections made from across four decades of gaming history. Worth noting in this regard is that each chapter is not solely dedicated only to the titular game; related games that both preceded and followed the selected title are also discussed, and although I didn't keep count many hundreds of titles are at least mentioned, if not covered in some depth. Indeed, this broad range leads to one of the minor issues I have with the book, which is a slight feeling of imbalance and inconsistency between chapters.
By way of example, the first chapter on 1992's Alone in the Dark begins with a two page look at the title itself, followed by a brief peek back at other "horror" games such as 1981's Haunted House, 1982's Dracula and 1988's Splatterhouse. The chapter then dives back into a detailed overview of the introductory scene of Alone in the Dark (along with illustrative screenshots), followed by four pages covering the game's sequels and some brief mentions of Resident Evil and Silent Hill. Chapter 2, covering Castle Wolfenstein, follows more or less the same formula of focusing on the titular game, as do Chapter 7, covering Final Fantasy VII, Chapter 9, covering GTA III, and Chapter 15, on SimCity.
However, this "formula" is not followed in many of the other chapters, which makes reading the book from cover-to-cover a somewhat uneven experience. Chapter 3, covering Dance Dance Revolution only really devotes about four of the chapter's 11 pages to DDR itself, instead choosing to spend more collective time (and screenshots) on related subjects like Dragon's Lair, Video Jogger, the Nintendo Power Pad, Sega's Activator, and Karaoke Revolution (among others). Chapter 10, covering John Madden Football goes for over a dozen pages before it truly covers the title in question on five entertaining and screenshot-packed pages. Chapter 14, covering Pole Position and Chapter 17, on Street Fighter II are other notable examples where the focus is not as tightly aimed at the vintage title in question.
This is not to say that the writing is flawed; on the contrary, it is always entertaining and interesting, and frequently illuminating. Loguidice and Barton cover a lot of terrain, and they are not afraid to point out the warts as well as the beauty marks in their selections. For those who grew up with video games in their house starting with the Atari 2600 (or before), the book is like a trip through time, giving the reader a chance to reminisce about days gone by while also learning about the many titles he or she didn't even known existed. All of this material is written in an informative yet casual style that never feels stilted or pretentious, nor too fanboyish. Indeed, the only awkwardness is the inconsistency in coverage from chapter to chapter, which sort of feels like the authors — rather than co-write each chapter — sort of divided the book in half. I have no idea if this is the case, and there are certainly no glaring stylistic differences from chapter to chapter; all are equally entertaining.
The above chapter list also demonstrates that the titles are arranged in alphabetical order, as opposed to release date or genre. While this certainly makes a sort of structural sense, it does feel a bit awkward while reading the book cover-to-cover, as the reader is constantly dancing back and forth through time, from 1992 to 1981, followed by five titles released in the '90s, a title from 1980, and then 2001's GTA III. In addition, the decision to alphabetize The Legend of Zelda and The Sims in the T's, rather than the L's and S's respectively, does feel a bit odd (especially since the titles are listed under L and S in the index). Whereas Ultima and Ultima Online, and Super Mario 64 and Super Mario Bros. are in adjacent chapters, The Sims and SimCity are separated by six chapters. This is an admittedly minor quibble, however.
If there is a more-than-minor flaw with the book, it is the same flaw that seems to beset all books covering the video game industry: the screenshots, and their inconsistent placement throughout the text. Occasionally, a screenshot will actually fall on the same page where the game it depicts is being mentioned, but in many cases screenshots appear a page or two away (a mention of Second Life comes to mind in this regard. In several cases, screenshots actually overwhelm the text (most notably on pages 312-313), and fewer would have served better. There are also a number of "back of box" shots, which hardly seem as interesting to the reader as an in-game screenshot would be; in one case, almost an entire page is given over to a blown-up back-of-box shot of Maxwell Manor, which otherwise barely gets a mention in the main text.
Also worth mentioning is that screenshots do not always guarantee title mentions, and vice versa. In some cases, the vintage title being covered in a chapter is given many screenshots, whereas in other cases there are only one or two devoted to that game title. Some other mentioned titles are given a lot of text but no screenshot, such as Resident Evil, Metal Gear, and Half-Life. Other screenshots depict titles that are not even mentioned in the text (though they are still relevant to the subject at hand, as the captions generally make clear); examples include Silent Service, Blades of Steel and Mario Kart: Super Circuit. In places it often feels as if the authors are "making do" with the art resources available to them, rather than placing the images that would best suit the topic.
Whatever the reason for these sorts of issues, they present only the occasional bump in what is otherwise a very smooth and entertaining ride. The somewhat inconsistent coverage of titles means that readers looking to read about their particular favorite game may be in for a treat, or may be disappointed, depending on which particular game they're looking to read about. However, this is not that book. What Vintage Games is, is a four-decade retrospective on 25 games that have truly made a difference, and readers who expect just that (as you now do) will come away wholly entertained.
You can purchase Vintage Games from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Beginning Python Visualization
aceydacey writes "Sometimes a picture is worth a thousand words. Beginning Python Visualization: Creating Visual Transformation Scripts, published in February 2009 by Apress, shows how Python and its related tools can be used to easily and effectively turn raw data into visual representations that communicate effectively. The author is Shai Vaingast, a professional engineer and engineering manager who needed to train scientists and engineers to do this kind of programming work. He was looking for a tutorial and reference work, and unable to find a suitable text, wound up writing his first book. He writes in the easy and clear style of someone comfortable and engaged with the subject matter." Keep reading for the rest of aceydacey's review. Beginning Python Visualization: Crafting Visual Transformation Scripts author Shai Vaingast pages 363 publisher Apress rating 9/10 reviewer aceydacey ISBN 1430218436 summary learn how to process, organize, and visualize data from various sources using the Python language The book uses several very specific examples that illustrate general principles.
The first example is using GPS data. By using Python one can extract data from GPS receivers and enter it into the computer and manipulate it to do what one wants including creating graphs and charts. In this section he shows how to use CSV, comma separated values, as a most useful file format. He shows show to extract data from real world GPS devices and import it via serial ports and the PySerial module. It would be easy for the reader to duplicate and extend this project.
The heart of the book is coverage of useful examples utilizing MatPlotLib, NumPy and SciPy. These related tools are easy to use and fully integrated with Python. MatPlotLib is for plotting data and graphs, including interactive graphs and image files. NumPy is a powerful math library comparable to commercial tools like MatLab, and SciPy extends NumPy to for the sciences. Examples are numerous and include signal analysis using Fourier transforms.
There is also a section on Image Processing using PIL, the Python Imaging Library. This is used for relatively simple image cropping and sizing and also for bit by bit image processing. Interpolation and curve fitting are also well covered. For anyone wanting an introduction to graphical analysis of statistical data, this would be an excellent resource.
The author is obviously a professional in this field. He has a knack for good organizational style and a pragmatic approach to the work. In the book he says "Most of the time, research is organized chaos. The emphasis, however, should be on organized, not chaos." A real value I got from the book is a better understanding of data files, format, and organization as well as methods and guidelines for selecting file formats and storing and organizing data to enable fast and efficient data processing. It is obvious that this book was written by a practicing engineer.
The theme of the book is that Python can be an all purpose environment for data manipulation and visualization, using nothing but free and open source tools that are easily integrated and scriptable without using multiple programming languages. The book should be an invaluable tool for scientists and engineers but it is also easily accessible to anyone interested in math and data analysis. There is no need for an advanced math background. While, as a matter of full disclosure, I have undergraduate degrees in Math and Physics, I feel the book should be easily accessible to anyone with a solid high school math background who is seriously interested in the subject. The book contains a short introductory tutorial on the basics of Python so anyone familiar with programming in any language should be fine.
The book is an easy read from front to back, and I am sure it will also be a good reference resource for the future. The writing style is very clear and unforced and I found surprisingly few errors. While the Python world has a surplus of introductory and general books, books covering this kind of specific domain are especially welcome, and we could use more on other topics by competent authors.
At 363 pages the book is a surprisingly fast read. Its methodology is to use specific, short code examples to make all the key points. Most of the code samples are well selected, short and written in clear, concise Python. This is not the kind of book that overwhelms you with massive amounts of code. Either the book was well edited or else it was written by an exceptionally lucid thinker, or both.
So, if you want to learn how to process, organize, and visualize data from various sources using the Python language, I recommend this book to you. I have also posted a podcast of an interview with the author at Python411
You can purchase Beginning Python Visualization: Crafting Visual Transformation Scripts from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Case For Working With Your Hands
theodp writes "At a time when the question of what a good job looks like is wide open, a book excerpt in the NY Times magazine says it's time to take a fresh look at the trades. High-school shop-class programs were dismantled in the '90s as educators prepared students to become 'knowledge workers' in a pure information economy. Was this a huge mistake? A gifted young person who chooses to become a mechanic instead of accumulating academic credentials is now viewed as eccentric, if not self-destructive, complains Matthew Crawford, who took his University of Chicago PhD and opened a motorcycle repair shop. Princeton economist Alan Blinder argues that the crucial distinction in the emerging labor market is not between those with more or less education, but between those whose services can be delivered over a wire and those who must do their work in person or on site. The latter will find their livelihoods more secure against outsourcing to distant countries. As Blinder puts it, 'You can't hammer a nail over the Internet' (never say never). Guess we all should have paid more attention to Nicholas Negroponte's landmark-in-retrospect Being Digital (ironically, no Kindle version)." -
The Case For Working With Your Hands
theodp writes "At a time when the question of what a good job looks like is wide open, a book excerpt in the NY Times magazine says it's time to take a fresh look at the trades. High-school shop-class programs were dismantled in the '90s as educators prepared students to become 'knowledge workers' in a pure information economy. Was this a huge mistake? A gifted young person who chooses to become a mechanic instead of accumulating academic credentials is now viewed as eccentric, if not self-destructive, complains Matthew Crawford, who took his University of Chicago PhD and opened a motorcycle repair shop. Princeton economist Alan Blinder argues that the crucial distinction in the emerging labor market is not between those with more or less education, but between those whose services can be delivered over a wire and those who must do their work in person or on site. The latter will find their livelihoods more secure against outsourcing to distant countries. As Blinder puts it, 'You can't hammer a nail over the Internet' (never say never). Guess we all should have paid more attention to Nicholas Negroponte's landmark-in-retrospect Being Digital (ironically, no Kindle version)." -
On iPhone, Searching For Kama Sutra = Porn
heychris writes "Eucalyptus, an ebook app for iPhone, has been rejected from the App Store for 'objectionable content.' What's so objectionable? The Kama Sutra, available from Project Gutenberg, which is available on other ebook readers as well. Not only that, but the screenshot shows that you would have to search for Kama Sutra to get it; it's not built in to Eucalyptus. The author is reasonable but frustrated, while Herr Gruber is more succinct." I wonder how good the now-cheap Nokia 810 is as an e-book reader. -
Space Vulture
stoolpigeon writes "In 1953 John Myers brought his friend Gary Wolf a book he had just read, Space Hawk by Anthony Gilmore. The two were already avid readers but this would be their introduction to an entire genre, Science Fiction. They both say that it was Space Hawk that sparked a life long love of all things Sci-Fi. According to both of them, they had an opportunity to re-read it as adults and found that it had not weathered the years well. They decided they would write their own science fiction adventure in the same style, but do a better job. The result is their book Space Vulture." Keep reading for the rest of JR's review. Space Vulture author Gary K. Wolf and Archbishop John J. Myers pages 333 publisher Tor rating 3/10 reviewer JR Peck ISBN 978-0-7653-1852-0 summary Sizable plot holes and inconsistencies As is evident in the title alone, Space Vulture leans much more in the direction of paying direct homage to the work that inspired it, rather than offering something in the same vein but different. There are many more similarities between the books than their are differences. This seems to be at odds with the author's stated goal of doing a better job. What we get instead of improvement is nostalgia and a throw back to the style and content of the author's childhood. Seen in that light, for those who wish to go back to those days, this is probably a great ride. They can get a new story, in the old format. The issue for newer readers is that they don't have the nostalgia to gloss over the stories issues.
I started reading science fiction in elementary school in the late seventies. I moved out of the kids section of the library in the early eighties and tore through anything I could get my hands on. This means that I read a lot of science fiction that was written in the fifties and even further back in some cases. Many books that are still favorites today come from that era. That is what drew me to Space Vulture. As I read it though, I found myself caught off guard. I could not recall reading anything like this, even as a kid. Then it hit me. The books I've read from the fifties are the cream of the crop. They are the classics that I am sure will continue to be read for years to come. Space Hawk and others like it do not fall into this category and now I know why.
The characters of Space Vulture are flat and unbelievable. I would say they are cartoonish but many of today's cartoons provide a much richer experience than is found in this book. The villain is Space Vulture. An evil, beautiful, genius. He enjoys rape, murder and slavery. He operates throughout the galaxy capturing innocents to sell as slaves or food. Everyone who would stand up to Space Vulture is either unwilling or incapable of doing so. He is the scourge of the galaxy, with his private army of aliens and humans carrying out his will without any choice.
There is one exception to those who tremble in fear of Space Vulture. It is Galactic Marshal Captain Victor Corsaire. In every way that Vulture is bad, Corsaire is good. Criminals everywhere tremble at Corsaire's name. He has an unbending code of moral conduct and even in the face of a corrupt and ineffective justice system, Corsaire single handedly brings what peace and safety there is in the universe. The entire book turns on Vulture and Corsaire, though we have a single mom, a couple precocious kids, a shifty con-man and a handful of aliens and such to round things out.
The book reads like the cereal style stories it imitates. In the short time frame it covers, the hero is captured, escapes, gets recaptured, escapes, etc. multiple times. The side plots are filled with narrow escapes and cliff hangers. And it all feels rather like a carnival ride. Characters do what they do because that is the function they fill in the story. There is little ambiguity and very rarely do the actions of characters feel like something that comes as a result of their being a person. They are all set pieces going through the motions that create the ride. So it seems to really boil down to the question, "Do you like this kind of ride?" It seems to me that the only people who are going to really enjoy it are those who have fond memories of going on the same ride as children.
With one of the co-authors being an archbishop, it seems only fair to consider how religion fits into the book. The previously mentioned single mother prays a lot. There is not much over the head religious reference otherwise. Myers and Wolf seemed to have steered clear of any heavy handed dealing with religious issues. At times this is a bit of a weakness. Once again, the hero does what is right because it is. The villain will do evil and there is no effort to dig into what might separate the two. There are opportunities that would be perfect to dig a little deeper but no effort was made to do so. This is probably in keeping with the style and format they are emulating. It's also probably a part of the reason that you don't find people still reading the older works.
While the religious angle isn't pushed there are some anachronisms that do come out that I think would have been better dropped. The most noticeable was the heroin's apparent inability to do much for herself. She's not completely useless all the time, and she does make small efforts here and there, but other times she just sits on the side lines and watches events unfold. How a frontier living leader could be so ineffective at times just breaks one out of the story. I guess she can't show up Corsair or interfere with his heroic scenes. I'm sure in the fifties this would have been an outright progressive portrayal of a woman but today it still comes across as sexist and demeaning.
There are sizable plot holes and inconsistencies. The ending is not going to surprise anyone. I'm not all that bright and I had everything nailed down by half way through the book. Really the bright spot for younger readers is that it may be bad enough to come across as campy, but to be honest I doubt it. For anyone who was reading Space Hawk as a kid, there is that nostalgia factor. I almost rated this a four because of those folks, but I just couldn't do it. There are just too many good books still around from that time that will provide all the fun but with better writing and plot.
You can purchase Space Vulture from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Front End Drupal
Michael J. Ross writes "Content management systems (CMSs) are created largely by Web developers using back-end programming languages (such as PHP, by far the most common choice). The free CMSs are built as open source projects, by volunteers who have many demands on their time. As a result of both of these competing factors, far less time is devoted to the front-end aspects of these CMSs. In turn, the "themes" that define the appearance of a CMS-based website are typically substandard, in the eyes of many Web designers and, most likely, countless users of those sites. This criticism has been leveled even against Drupal, although the situation is improving. A new book, Front End Drupal: Designing, Theming, Scripting, is intended to help Drupal designers everywhere speed up that process of improvement." Read on for the rest of Michael's review. Front End Drupal: Designing, Theming, Scripting author Emma Jane Hogbin and Konstantin Kafer pages 456 publisher Prentice Hall rating 8/10 reviewer Michael J. Ross ISBN 978-0137136698 summary A comprehensive guide to creating Drupal themes. The book was written by Emma Jane Hogbin and Konstantin Käfer, and published by Prentice Hall on 15 April 2009, under the ISBN 978-0137136698. As suggested by its title, Front End Drupal "is designed to help both experienced designers and rank novices get an understanding of how Drupal theming works," to quote from the book's foreword, written by Dries Buytaert, Drupal's founder and project lead. He notes that creating a Drupal theme requires knowledge of "XHTML, CSS, JavaScript, and PHP, all within the context of Drupal." These are some of the key technologies addressed in the book's eleven chapters, and it assumes that the reader is at least familiar with all four of them. The first of the two appendices explains: how to install Drupal and contributed modules on the three different platforms supported (Windows, Linux, and Mac OS X); basic configuration and administration; and installation troubleshooting tips. The second appendix comprises some of the more important example code used in the book, and brief overviews thereof. At the end of the book's 456 pages, there is a coupon code for a 45-day free subscription to read the online edition in the Safari Books Online library
All of the sample source code and themes can be downloaded from the authors' book website. The site also has the author biographies, as well as reported errata, of which there are two, as of this writing. What is most striking about the site is its styling — or lack thereof. One would think that the authors of a book on Drupal theming would have put a commensurate amount of effort into crafting an attractive custom theme for their own website — one that demonstrates their own theming skills and, more importantly to the reader, what is possible using the principles taught in the book. Remarkably, the authors appear to have done nothing more than take the Drupal 6 default theme, Garland, and change the color scheme from shades of blue to shades of brown (matching the book cover); only the blue Drupal icon is unchanged, and its color clashes with the rest of the site.
Prentice Hall makes available their own Web page for the book, where visitors will find a description, two Amazon.com reviews, the table of contents, and a sample chapter ("The Drupal Page") as a PDF file. The entire book is also available in electronic form.
In the book's preface, the authors briefly summarize the chapters and appendices, and define the target audience and technologies with which the reader should be knowledgeable (noted above). Readers should also be familiar with how Drupal works, have some experience administering a Drupal site, and ideally possess some knowledge of website design and development; but that last one is not a hard requirement, since the authors promise to explain the basic concepts as needed.
Any reader who begins the book by skimming the table of contents or the preface's summary of Chapter 1, may be tempted to skip that chapter, especially since it discusses team workflow — something freelancers generally ignore, and employees leave to management. Yet the earlier material is worth reading, if only that it begins to establish a baseline of terminology used throughout the rest of the book. It also provides some basic information on content structure, layout, and naming on a Drupal page. For illustrating the ideas under discussion, the authors use a number of existing websites. In fact, too many different sites: Readers probably would have found it more useful for each idea to be presented in the context of a single neutral subject area, and without distractions such as toilet birthdays (no kidding). Even better, the ideas could have been illustrated through example pages — each page illustrating one or several ideas — built from the ground up. By focusing on pages that a reader could quickly create on his own, the authors could have eliminated the screenshots of those various websites. One example is Figure 1.1, which combines two images, with the topmost one largely obscuring the one below. Most of the topics are covered at a very high level — possibly higher in some cases than readers will find valuable. Nonetheless, there is much solid advice, including some recommended theme resources later in the chapter. In the earlier section on "Topical Organization," there is a brief but excellent discussion on the relative merits of limited versus unlimited tag vocabularies.
The second chapter continues to lay the groundwork, by introducing basic Drupal theme strategies and terminology, three major modules that veteran Drupal developers use frequently (CCK, Views, and Devel), and some valuable browser-based development tools. The definitions of Drupal terms are useful — especially for newbies confused by the Drupal handbooks. One exception is the authors' alternative metaphor for "weight," which proves more confusing than the original. Readers then begin learning how to use the aforesaid modules and tools. However, several of the authors' statements are misleading: On page 43, they are instructed to install the CCK module, and then given a list of additional modules needed; the first one on the list is... CCK. On the next page, the authors state that the FileField module requires the Token module, but it apparently does not. On the page after that, the "manage fields" link is given as the "add field" link. Those last two discrepancies suggest that the book is based on outdated versions of Drupal and/or the contributed modules under discussion, even though its publication date is just a few weeks prior to this writing. Any version differences are likely impossible to confirm, since the authors fail to mention which versions they are using, or provide any guidance to the reader as to which versions to use — unusual for a programming book. At the beginning of the chapter, the reader is told he "will learn step-by-step how to create a mini portfolio Web site," but the process peters out not long after a new content type is created, and the reader finishes the chapter with no such portfolio site.
Chapters 3 and 4 move the reader one step closer toward the ultimate goal of being able to create a new theme with confidence. The first one explains how to find, install, and configure prebuilt themes — also, how to create a very basic theme from scratch, and a subtheme using the Zen starter theme. This material comprises a generally thorough introduction to the topics, compared to most documentation, with plenty of step-by-step explanation. An exception is the Zen section, in which the reader is instructed to place the directory into the themes folder; but it is not made clear whether this is the primary Drupal themes folder, or sites/all/themes (as advised several pages earlier). Secondly, in step 3, readers can only guess as to what is meant by "the main CSS file," as there are several. On the next page, the authors mention "configure" links next to the Zen and Zen Classic themes, but no such links exist for those starter themes. The fourth chapter discusses page template files, site-wide variables, menus and navigation, regions and blocks, search results, templating different sections of a site, aliased URLs, taxonomy templates, and styling for output to printers, PDF files, and mobile devices.
The fifth chapter explores the details of how to modify existing node templates, or create new ones, for all content types. This is what makes it possible to develop highly customized page content, including summaries, embedded images, image galleries, and content based upon output from the Views module. The subsequent chapter focuses on one of the most problematic types of content — forms — and how they can be created using the CCK. The authors recommend TinyMCE as one's WYSIWYG editor module, but that has apparently been replaced by the Wysiwyg API. User editing of content is a key element in building an online community using a Drupal-based site, and it is the topic of Chapter 7, which discusses user profiles, permissions, access, comments, blogs, forums, wikis, spam, CAPTCHAs, and how to make content private for members only. The next chapter addresses the theming of the administrative interface, which the typical site user will never see, but can have a significant impact upon the productivity of the developers and maintainers of a site. Readers learn about RootCandy (a refreshingly different admin theme), and how to theme error pages.
The final three chapters focus on JavaScript and jQuery. Consequently, they compose a stand-alone resource of their own, and could even have been used as the basis for a separate book. Chapter 9 provides an overview of the language, while the other two chapters cover jQuery and how it can be used as part of a Drupal-based site.
Scattered throughout the manuscript are tips, each indicated with a pencil tip icon. These help to break up the text visually, and provide valuable guidance. The contrast between the black text and the dark gray background could certainly be improved; but most of the tips are fairly short, so this does not pose a major problem.
Every chapter ends with a summary, and not a single one of them is useful or needed. Any unique information conveyed in them should have been merged with the introductory paragraphs for the respective chapters, which is where readers would be looking anyway to see what each chapter addresses.
The book has numerous minor problems, including grammatical and stylistic errors, such as dashes incorrectly performing the duty of semicolons, some URLs missing the root directory slash, and excessive use of exclamation marks (more than a dozen before even reaching the second chapter). When stating the sequence of menu items to choose in order to reach a particular admin page, the authors should use ">" or ">>" to separate the menu choices, as is done in most computer books. Instead, the authors opted to use commas, which of course turns every sequential menu path into a list of menu items, which is nonstandard and disconcerting. As is typical in a first edition, the book contains several errata: "Partnership" in Figure 1.7 (page 10), "the GiMP" (page 14; should simply read "GIMP"; after all, this isn't Pulp Fiction), "only focus only" (page 26), "Modification / Date" in Figure 2.1 (page 37; should read "Modification date"), "Content Creation Kit" (throughout the book; should read "Content Construction Kit"), "of [the] view" (page 56), "http:jigsaw" (page 66), "INSTALL [is] present" (page 79), "of [a] page" (page 100), and "to to" (page 125) — in the first quarter of the book alone.
A lingering disappointment is that some of the promised examples are not finished in the narrative, such as the portfolio site mentioned earlier. Secondly, the downloadable source code is incomplete, apparently missing the example code in the first few chapters, such as the Bolg theme files. Furthermore, the downloadable code is not organized by chapter, making it difficult to even determine what example code is missing.
On the other hand, the book has much to offer. For the most part, the explanations and step-by-step instructions are clear, and the diagrams and screenshots are all neatly presented and helpful — though some sections of the book could have benefited from more such figures. With its extensive coverage of all the key technologies, and its wealth of valuable tips, Front End Drupal is an essential resource for learning how to create Drupal themes, and fills a long-standing gap in the Drupal literature, better than any other book currently available.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Front End Drupal: Designing, Theming, Scripting from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Artificial Ethics
basiles writes "Jacques Pitrat's new book Artificial Ethics: Moral Conscience, Awareness and Consciencousness will be of interest to anyone who likes robotics, software, artificial intelligence, cognitive science and science-fiction. The book talks about artificial consciousness in a way that can be enjoyed by experts in the field or your average science fiction geek. I believe that people who enjoyed reading Dennet's or Hofstadter's books (like the famous Godel Escher Bach) will like reading Artificial Ethics." Keep reading for the rest of Basile's review. Artificial Ethics: Moral Conscience, Awareness and Consciencousness author Jacques Pitrat pages 275 publisher Wileys rating 9/10 reviewer Basile Starynkevitch ISBN 97818482211018 summary Provides original ideas which are not shared by most of the artificial intelligence or software research communities The author J.Pitrat (one of France's oldest AI researcher, also AAAI and ECCAI fellow) talks about the usefulness of a conscious artificial being, currently specialized in solving very general constraint satisfaction or arithmetic problems. He describes in some details his implemented artificial researcher system CAIA, on which he has worked for about 20 years.
J.Pitrat claims that strong AI is an incredibly difficult, but still possible goal and task. He advocates the use of some bootstrapping techniques common for software developers. He contends that without a conscious, reflective, meta-knowledge based system AI would be virtually impossible to create. Only an AI systems could build a true Star Trek style AI.
The meanings of Conscience and Consciousness is discussed in chapter 2. The author explains why it is useful for human and for artificial beings. Pitrat explains what 'Itself' means for an artificial being and discusses some aspects and some limitations of consciousness. Later chapters address why auto-observation is useful, and how to observer oneself. Conscience for humans, artificial beings or robots, including Asimov's laws, is then discussed, how to implement it, and enhance or change it. The final chapter discuss the future of CAIA (J.PItrat's system) and two appendixes give more scientific or technical details, both from a mathematical point of view, and from the software implementation point of view.
J.Pitrat is not a native english speaker (and neither am I), so the language of the book might be unnatural to native English speakers but the ideas are clear enough.
For software developers, this book give some interesting and original insights about how a big software system might attain consciousness, and continuously improve itself by experimentation and introspection. J.Pitrat's CAIA system actually had several long life's (months of CPU time) during which it explored new ideas, experimented new strategies, evaluated and improved its own performance, all this autonomously. This is done by a large amount of declarative knowledge and meta-knowledge. The declarative word is used by J.Pitrat in a much broader way than it is usually used in programming. A knowledge is declarative if it can be used in many different ways, and has to be transformed to many procedural chunks to be used. Meta-knowledge is knowledge about knowledge, and the transformation from declarative knowledge to procedural chunks is given declaratively by some meta-knowledge (a bit similar to the expertise of a software developer), and translated by itself into code chunks.
For people interested in robotics, ethics or science fiction, J.Pitrat's book give interesting food for thought by explaining how indeed artificial systems can be conscious, and why they should be, and what that would mean in the future.
This book gives very provocative and original ideas which are not shared by most of the artificial intelligence or software research communities. What makes this book stand out is that it explains an actual software system, the implementation meaning of consciousness, and the bootstrapping approach used to build such a system.
Disclaimer: I know Jacques Pitrat, and I actually proofread-ed the draft of this book. I even had access, some years ago, to some of J.Pitrat's not yet published software.
You can purchase Artificial Ethics: Moral Conscience, Awareness and Consciencousness from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Road to Big Brother
brothke writes "In The Road to Big Brother: One Man's Struggle Against the Surveillance Society, Ross Clark journals his struggles to avoid the myriad CCTV cameras in his native England. That's difficult given the millions of cameras in public locations there. Before going forward, the use of the term 'Big Brother' in both the title and throughout the book is erroneous. Big Brother has its roots in George Orwell's novel 1984 and refers to an omnipresent, seemingly benevolent figure representing the oppressive control over individual lives exerted by an authoritarian government. The term has been misappropriated to describe everything from legitimate crime-fighting, to surveillance cameras, to corporate e-mail and network usage monitoring. Localities that deploy CCTV cameras in public thoroughfares in the hope of combating crime are in no way indicative of the oppressive control of Orwell's Big Brother. Should we be concerned that such a scenario play itself out in Ross Clark's UK or in the US? Likely no, as US government agencies are widely decentralized and isolated. Just getting the networks within a single federal agency unified is a daunting task; getting all of the agencies to have a single unified data sharing mechanism is a pipe-dream. Look at it this way: the US Department of Defense has more networks than some countries have computers." Read below for the rest of Ben's review. The Road to Big Brother: One Man's Struggle Against the Surveillance Society author Ross Clark pages 200 publisher Encounter Books rating Powerful topic, but poor delivery and answers. reviewer Ben Rothke ISBN 978-1594032486 summary One man's account of how to dodge Britain's million of CCTV cameras and other forms of surveillance The Road to Big Brother details Clark's attempt to be invisible to the millions of CCTV cameras in Britain, and details other types of national & agency databases and how they can be misused. Clark notes astutely that while much data is being gathered, often the most important clues are missed, and a lack of proportion often is the result.
Some of the books observations are flawed. In chapter two, Clark writes that VeriChip markets its RFID chips with the aim of speeding the passage of authorized people through security checks. But its Verimed chip is made for patient identification and emergency patient management in hospitals. In Chapter 11, Clark comments that Facebook is essentially a forum for drunken college students who cannot conceive that any harm could come from disporting themselves in semi-naked poses for everyone to see. There is no indication that the comment was meant to be humorous, and there are many legitimate sober uses for Facebook.
Perhaps the worst distortion of the Big Brother hysteria, of which the book provides no source, is the claim that the CIA and FBI appears to know what airline meals a person chooses when they cross the Atlantic. Terrorists do their best to be stealthy, and will likely opt to bring their own special meal, rather than stand out and request a special one. It is not clear what the CIA and FBI hope to gain with such data.
The book documents numerous CCTV failures, from Brighton, England to Baltimore, Maryland. Chapter 3 has a 2005 quote from the Maryland Attorney General stating that CCTV's had yet to solve a single crime. The book also repeats the problem of fuzzy CCTV images and highlights other technology failures as far back as 1998. Surveillance technology has significantly advanced in the last 3 years, let alone decade. Focusing on failures from a decade ago is in no way indicative of the state of the art, nor does it do anything to solve the problem Clark addresses.
In the last 60 days alone, CCTV has been used to identify the alleged Craigslist Killer and shooter at Wesleyan University. While Clark may not realize it, CCTV and other related technologies has indeed revolutionized law enforcement. The underlying problem is that Britain's millions of cameras were deployed in the hope that they could magically solve crime. Cameras alone achieve nothing; but CCTV combined with trained humans and other crime prevention and detection methods are a powerful set of tools that many police departments are embracing.
The book notes that two CCTV schemes were sold to UK police in 2001 with the premise that they would eliminate crime and increase the number of visitors by 225,000 a year. Any police department that would believe such a marketing claim, without pilot testing and proof of concept should themselves be arrested for ineptitude.
The book would be better off quoting this year's CCTV successes, rather than those of obsolete equipment. As to the fuzzy image problem; newer, more powerful and often inexpensive cameras easily and quickly solves that predicament.
All is not lost on the book. Chapter 8 — Me and My ID, in which Clark documents how ineffective national identification cards are. National ID cards are all the rage and are being deployed in the hope that they will reduce terrorism, illegal immigration and other of society's ills. Clark notes that even if national ID cards were able to identify everyone correctly, and that is a huge assumption, it is still not clear what they would achieve. National ID's have been touted to reduce insurance fraud, but medical insurance fraud is often executed not by false identification, rather by patients lying about their circumstances.
The book touches upon, but does not really answer, nor go into enough details on why people allow such pervasive use of electronic surveillance technologies to seamlessly enter society. Be it CCTV cameras that film public parks or attempt to catch speeding drivers; many are deployed with little to no protestations.
While Big Brother achieved oppressive control over individuals, the real danger of surveillance systems is that they can easily be misused. Rather than achieving their crime fighting goals, they will mislead police with myriad false positives. Part of Clark's frustration is likely that the UK Police believe in some sort of CCTV Kool-Aid that their collogues in the US have not consumed. Why that is so prevalent in the UK is something that Clark doesn't address.
The Road to Big Brother: One Man's Struggle Against the Surveillance Society should have been a book that details the problems with a surveillance society, but often reads like it emanates from the ministry of misinformation.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase The Road to Big Brother: One Man's Struggle Against the Surveillance Society from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Road to Big Brother
brothke writes "In The Road to Big Brother: One Man's Struggle Against the Surveillance Society, Ross Clark journals his struggles to avoid the myriad CCTV cameras in his native England. That's difficult given the millions of cameras in public locations there. Before going forward, the use of the term 'Big Brother' in both the title and throughout the book is erroneous. Big Brother has its roots in George Orwell's novel 1984 and refers to an omnipresent, seemingly benevolent figure representing the oppressive control over individual lives exerted by an authoritarian government. The term has been misappropriated to describe everything from legitimate crime-fighting, to surveillance cameras, to corporate e-mail and network usage monitoring. Localities that deploy CCTV cameras in public thoroughfares in the hope of combating crime are in no way indicative of the oppressive control of Orwell's Big Brother. Should we be concerned that such a scenario play itself out in Ross Clark's UK or in the US? Likely no, as US government agencies are widely decentralized and isolated. Just getting the networks within a single federal agency unified is a daunting task; getting all of the agencies to have a single unified data sharing mechanism is a pipe-dream. Look at it this way: the US Department of Defense has more networks than some countries have computers." Read below for the rest of Ben's review. The Road to Big Brother: One Man's Struggle Against the Surveillance Society author Ross Clark pages 200 publisher Encounter Books rating Powerful topic, but poor delivery and answers. reviewer Ben Rothke ISBN 978-1594032486 summary One man's account of how to dodge Britain's million of CCTV cameras and other forms of surveillance The Road to Big Brother details Clark's attempt to be invisible to the millions of CCTV cameras in Britain, and details other types of national & agency databases and how they can be misused. Clark notes astutely that while much data is being gathered, often the most important clues are missed, and a lack of proportion often is the result.
Some of the books observations are flawed. In chapter two, Clark writes that VeriChip markets its RFID chips with the aim of speeding the passage of authorized people through security checks. But its Verimed chip is made for patient identification and emergency patient management in hospitals. In Chapter 11, Clark comments that Facebook is essentially a forum for drunken college students who cannot conceive that any harm could come from disporting themselves in semi-naked poses for everyone to see. There is no indication that the comment was meant to be humorous, and there are many legitimate sober uses for Facebook.
Perhaps the worst distortion of the Big Brother hysteria, of which the book provides no source, is the claim that the CIA and FBI appears to know what airline meals a person chooses when they cross the Atlantic. Terrorists do their best to be stealthy, and will likely opt to bring their own special meal, rather than stand out and request a special one. It is not clear what the CIA and FBI hope to gain with such data.
The book documents numerous CCTV failures, from Brighton, England to Baltimore, Maryland. Chapter 3 has a 2005 quote from the Maryland Attorney General stating that CCTV's had yet to solve a single crime. The book also repeats the problem of fuzzy CCTV images and highlights other technology failures as far back as 1998. Surveillance technology has significantly advanced in the last 3 years, let alone decade. Focusing on failures from a decade ago is in no way indicative of the state of the art, nor does it do anything to solve the problem Clark addresses.
In the last 60 days alone, CCTV has been used to identify the alleged Craigslist Killer and shooter at Wesleyan University. While Clark may not realize it, CCTV and other related technologies has indeed revolutionized law enforcement. The underlying problem is that Britain's millions of cameras were deployed in the hope that they could magically solve crime. Cameras alone achieve nothing; but CCTV combined with trained humans and other crime prevention and detection methods are a powerful set of tools that many police departments are embracing.
The book notes that two CCTV schemes were sold to UK police in 2001 with the premise that they would eliminate crime and increase the number of visitors by 225,000 a year. Any police department that would believe such a marketing claim, without pilot testing and proof of concept should themselves be arrested for ineptitude.
The book would be better off quoting this year's CCTV successes, rather than those of obsolete equipment. As to the fuzzy image problem; newer, more powerful and often inexpensive cameras easily and quickly solves that predicament.
All is not lost on the book. Chapter 8 — Me and My ID, in which Clark documents how ineffective national identification cards are. National ID cards are all the rage and are being deployed in the hope that they will reduce terrorism, illegal immigration and other of society's ills. Clark notes that even if national ID cards were able to identify everyone correctly, and that is a huge assumption, it is still not clear what they would achieve. National ID's have been touted to reduce insurance fraud, but medical insurance fraud is often executed not by false identification, rather by patients lying about their circumstances.
The book touches upon, but does not really answer, nor go into enough details on why people allow such pervasive use of electronic surveillance technologies to seamlessly enter society. Be it CCTV cameras that film public parks or attempt to catch speeding drivers; many are deployed with little to no protestations.
While Big Brother achieved oppressive control over individuals, the real danger of surveillance systems is that they can easily be misused. Rather than achieving their crime fighting goals, they will mislead police with myriad false positives. Part of Clark's frustration is likely that the UK Police believe in some sort of CCTV Kool-Aid that their collogues in the US have not consumed. Why that is so prevalent in the UK is something that Clark doesn't address.
The Road to Big Brother: One Man's Struggle Against the Surveillance Society should have been a book that details the problems with a surveillance society, but often reads like it emanates from the ministry of misinformation.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase The Road to Big Brother: One Man's Struggle Against the Surveillance Society from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Best American Comics 2008
eldavojohn writes "The Best American Comics of 2008 was a book I purchased on impulse. Not being a graphic novel or even political cartoon fan, I read the introduction at a bookstore (which was, itself, a comic strip) and decided to give it a try. I expected to find humor. What I found was not only humor but sadness, anxiety, insight, happiness, remorse and a gamut of human emotions. I expected black ink on white paper. What I found was water color, wood cuts, cubism and even a comic about the start of cubism. In short, I was pleasantly surprised to find the Americana here that I had previously relegated only to historical novels." Read on for the rest of eldavojohn's review. The Best American Comics 2008 author Lynda Barry pages 352 publisher Houghton Mifflin Harcourt rating 7/10 reviewer eldavojohn ISBN 9780618989768 summary Collection of the best American comics of 2008. The name of this book is going to be hard to digest as your best DC, Marvel and Image comics are nowhere to be found in this book. If you claim it's because there's no way the price of this book could cover these big name titles, you may be on to something. But I found this to be a refreshing and complex addition to what I knew comic books to be. Nowhere would I find the black and white world of Superman or the Gotham City of Batman but in their places stories more akin to Maus and Persepolis.
The book itself is a collection of clippings from comics released in 2008. Some are more complete than others. Prior to this book, I had never heard of any of these names. But several of these comics gave me reason to look up the authors and actually purchase more of their works.
Instead of reviewing each comic, I will relate what I recall a week after reading it and the permanent impressions it left on me. The first comic, Burden caught me off guard as it starts out as an endearing story about a brother making amends for his no-good dead-beat brother Charlie. Charlie seems to have led a less than desirable life dodging rent, stealing from loved ones and leaving his father to rot in a home. This beautiful story crumbles away to a horrific end in the final page as Charlie's brother says goodbye to him.
There were a few comics related to the war in Iraq. The first (David Axe's autobiographical War-Fix) being a reporter who seems to go to Iraq out of boredom or some strange driving force despite his clear inability to cope with the nature of war. Another comic dealt with the political debate here and the Left's political views.
Some of the comics had a more timeless folklore aspect to them. One was a reincarnation of an old Japanese proverb called The Crab and the Monkey but had a sobering ending that I did not recall from the original proverb. Another entitled Turtle Keep It Steady by Joseph Lambert had little to no text and retold the fable of The Tortoise and the Hare. It also explored the merits of consistency in friends and those around you in a very simple way. Seven Sacks left me confused and concerned that I had missed some myth or fable allusion through the whole story. The story is well illustrated and may cause one to wonder what responsibility this boatman has in delivering unsavory characters across a river to possibly carry out devious acts while holding bags that make noises.
Several comics were purely historical. The Saga of the Bloody Benders is one part homicide case and one part legend. The story takes a historical account of a family of settlers that brutally murdered and waylaid dozens of innocent people in 1870s Kansas. The story recalls a simpler time and notes how peculiar all the signs pointed to the Bender family yet no one implicated them. Another comic Berlin recalled a German viewpoint of the May Day Massacre of 1928 and the Reichstag elections of 1930. So rarely is a story told from the unpopular side of a historical conflict.
One of the comics took a look at Picasso's beginning as an artist discovering cubism. I do not know enough of the true to story to know if it is historically accurate but it certainly cast Picasso in a ... different light.
One of my least favorite parts of the books was a set of Matt Groening's "Life in Hell." Some of it is cute and childishly funny. Most of it is inane and a bit tedious to read. While this repetition may be humorous, it pales in comparison to the other emotions displayed in the book.
Eric Haven's Mammology is humorous on several different levels and is layered to include evolutionary commentary on mammals versus reptiles. Cathy Malkasian's Percy Gloom is an interesting commentary on a group of people called "Funnelheads" that clearly become an analogy for a cult of worshipers.
One of my favorite comics was a woodcut done in cubism by a Bronx art teacher named John Mejias. I showed this comic to a friend who teaches ESL in the Bronx and she laughed at several panes discussing the inside jokes of "what you should do" in each of the situations that Mejias was lampooning. Personally I found the clipping from Mejias The Teachers Edition to be heart touching asking in the end how he is to teach students art when every assignment is graded to a standard with no room for individuality or self expression.
I omitted more than a few comics that didn't strike me as that great. There are lengthy comics about the life an older TV show host, a few selections from The New Yorker, a comic about an ostracized Chinese student in America and I'm certain I'm missing many others in this 352 page hardcover book.
This comic spans so many different kinds and styles that it seems like it would be a great addition to any collection for the $15 it costs.
You can purchase The Best American Comics 2008 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Amazon Kindle DX Details Revealed
theodp writes with news that details for the Kindle DX are now available. "Specs-wise, the big changes are a larger 9.7-inch screen that rotates to landscape display, a PDF reader, and more storage space. The Kindle DX carries a $489 price tag (compared to the $359 Kindle 2)." Engadget has a series of pictures from Jeff Bezos' presentation, and the Amazon product information page has further details and a video. According to the press release, Amazon has worked out a deal with The New York Times, The Boston Globe, and The Washington Post to "offer the Kindle DX at a reduced price to readers who live in areas where home-delivery is not available." -
The Manga Guide to Databases
stoolpigeon writes "Princess Ruruna, of the Kingdom of Kod, has a problem. Her parents, the King and Queen, have left to travel abroad. Ruruna has been left to manage the nations fruit business. Much is at stake, Kod is known as "The Country of Fruit." Ruruna is not happy though, as she is swamped by paperwork and information overload. A mysterious book, sent by her father, contains Tico the fairy. Tico, and the supernatural book are going to help Princess Ruruna solve her problems with the power of the database. This is the setting for all that takes place in The Manga Guide to Databases. If you are like me and learned things like normalization and set operations from a rather dry text book, you may be quite entertained by the contents of this book. If you would like to teach others about creating and using relational databases and you want it to be fun, this book may be exactly what you need." Read below for the rest of JR's review. The Manga Guide to Databases author Mana Takahashi, Illustrated by Shoko Azuma pages 220 publisher No Starch Press rating 9/10 reviewer JR Peck ISBN 978-1-59327-190-9 summary Unleash the power of the database. I was pleasantly surprised by this book. It really does do a great job of introducing relational database management systems. All the SQL is ANSI standard. (Except for one exception, joins, which I'll discuss later.) There is no mention that I could find of any certain RDBMS product. Barring any proprietary quirks, everything in here should work on just about anything from Access to Oracle. Teamed up with PostgreSQL or MySQL, I think that one would have everything they need to teach an extremely inexpensive (materials wise anyway) class on building and using databases. I think that the manga format would make it especially attractive to younger people. By younger, I think high school age students would really enjoy it and I think even college students would find it to be fun if they weren't too stuffy. If I were teaching professionals, I might worry that they wouldn't take it seriously, but the content is solid and anyone who can lighten up can also learn from this book.
It is an introductory level book. I wouldn't hand this to an entry level dba and turn them loose on a production system. It teaches what a relational database is, about the entity/relationship model, using standard sql, as well as transactions, recover, indexing and query optimization. That's a pretty decent foundation. There is also a final chapter that is half manga and half more traditional straight text. The manga section gives some information on real world uses for databases and wraps up the story. The second section covers things like multi-tier web applications, stored procedures, triggers, partitioning and replication. It does this all rather quickly and basically just gives the reader an idea of what the terms mean. There is no information on actually implementation details. It wouldn't have made sense anyway as this would have necessitated leaving the generic approach taken in the rest of the book to discuss specific RDBMS products.
The art work is well done and the side story of Ruruna, her assistant Cain and the fairy Tico is entertaining if a bit silly. I thought that it really helped to take what is really dry subject matter and lighten it up. It also introduces examples of real world situations that are being modeled in the data. They are a bit contrived as all examples are in these situations, but they still help to reaffirm how the various pieces fit together so that databases can be helpful. Each chapter picks up with the story and is graphics heavy. This is followed with a by a review section that reverts to a more text heavy mode and then there are review questions. The answers to the questions appear immediately following the questions. I think it would have been nice to have them further removed, so that one wouldn't have any opportunity to see the answers on accident. That said, the review and quiz do a nice job of letting one gauge if they have really picked up the material. If the quiz is a struggle, it is safe to say that going back over the chapter would not be a bad idea. The questions are pretty straight forward and apply the material directly. They are not vague or wishy washy, so not knowing the answers means the reader doesn't know the material.
As I mentioned, the books sticks to standard SQL. I was happy to see this. The only change I would make is that joins are done in the old style as a part of the where clause. The book discusses various types of joins but does not give examples of anything but a normal inner join. This may help someone considering this book to get a good feel for just how far it goes. I found the information on transactions, locking, and indexing to be very good. I really didn't expect much in this regard, but I've worked with experienced, decent developers that I think would learn some things from this book especially about rolling back transactions and the limits of recovery. (Of course these are the situations where DBAs and developers are going to have some of their more interesting interaction. My bonus tip of the day is the developer that calls you in the morning about the database problem, is the one who caused it right before he went home the night before.) That said the discussion on recovery is vendor agnostic like the rest of the book and so there are not really any implementation details. The indexing section is also a bit brief and while it does a good job of explaining what an index is, I think there is too much emphasis on them increasing read speed with enough emphasis on how they may not do that at all and how they can hurt writes. These things are all mentioned, but very briefly.
If I were teaching teenagers or even lower class college students, I wouldn't hesitate to build a class around this book. I think that the amount of fun and heightened interest it could bring to the table would far outweigh the need to supplement the book's few shortcomings. I like that it does not tie the reader to any database product. I would also not hesitate it to a friend who wanted to learn on their own. I think someone has much higher odds of making it through this book compared to the textbooks on relational databases that I had to work through in school. But it is just an introduction. It gives the readers the tools for basic interactions with a database, and a handle on the basic terminology of database administration. Assuming that one will get more than that could lead to trouble. All the way around this is a solid book and I wish there were more like it in the IT world.
You can purchase The Manga Guide to Databases from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Styling Web Pages With CSS
r3lody writes "Styling Web Pages with CSS: Visual QuickProject Guide, by Tom Negrino and Dori Smith, helps the beginning web designer learn how to use CSS in a simple, easy-to-follow format. This being my first exposure to one of the Visual QuickProject Guides by Peachpit Press, I was both pleased and disappointed when I received this slim volume. I was pleased in the presentation and clear descriptions given to each aspect of Cascading Style Sheets (CSS). I was disappointed in the brevity of the text, and the lack of downloadable materials to use to follow the examples in the book." Read below for the rest of Ray's review. Styling Web Pages with CSS: Visual QuickProject Guide author Tom Negrino and Dori Smith pages 144 publisher Peachpit Press rating 7/10 reviewer Ray Lodato ISBN 0321555570 summary A beginner's guide to the proper use of CSS Each chapter starts with a brief explanation of its subject, followed by the major topics introduced via large, colorful titles. Finally, any "Extra Bits" provide follow-up explanations or point to where you can get further information.
Before any CSS is discussed, there is a general introduction including how the book is structured, the sample web site to be created, and what tools will be useful to create the site. For the tools, the authors recommend at least a text editor (not a word processor) and your favorite browser. BBEdit and TextWrangler are suggested for Mac owners, while Notepad is okay for Windows. I personally use Notepad++, which has styling cues for both HTML and CSS (as well as many others), so I would recommend it for Windows users. To insure compatibility with the browser, Tom and Dori say you should have Internet Explorer, Firefox, and Safari. Strangely, Opera is barely mentioned in the book. I tested the examples using the first two. Finally, a true CSS editor might be useful, as it will provide you with your options. They suggested MacRabbit's CSSEdit for Mac users, or WesternCIV's Style Master for either Macs or Windows. I used Style Master 4.6 for Windows during testing.
After the introductory chapter, CSS is explained starting with a chapter on the basics, with simple guidelines for their use. Classes (which can be used many times) are contrasted with ids (which can be used only once per HTML file), and the benefits of using external style sheets versus internal styles is explained.
The next three chapters build upon each other to provide gentle instruction on how to layout and style the text and images. Formatting menus, tables and headings are tackled next, followed by a chapter devoted to browser differences. Finally, alternative menu and page formatting and CSS debugging is discussed.
All of the major concepts of CSS are presented so that a beginner can easily understand them. While some ways of utilizing CSS properly can be the subject of debate, the authors have chosen a rational approach that serves the basic web designer well. The result is a set of web pages that follow a simply understood design, yet ensures that the layout and format is isolated to the CSS style document, rather than the HTML.
Over and over, Tom and Dori provide useful links to web sites with additional information on the intricacies of CSS, as well as providing suggestions for programs to help you with massaging images and references to other books for more in-depth coverage.
The best way to fully understand what Tom and Dori are trying to explain is to replicate the example web site (Alpaca Repo). Unfortunately, there is no link in the book or on PeachPit's web site to a set of downloadable images and html files. The only way I was able to replicate most (but not all) of the examples was to look at alpacarepo.com. It has six pages, two style sheets, and two photos. The book shows other photos and more complete pages, so it's a partial solution at best.
Overall, Styling Web Pages with CSS: Visual QuickProject Guide is a nice introduction to the potentially confusing topic of the proper use of CSS. Many of the fancier techniques are avoided for the more common and useful ones. The short length of the book allows the beginner to avoid the feeling of intimidation that can accompany reading a 1,000 page text that covers everything you never wanted to know. Even so, I felt less than satisfied after I finished. I wanted a little bit more than I was given. Even if the book doubled in size, it would still be accessible yet it could then leave the reader with a feeling of contentment. As this is the first QuickProject book I've read, that may simply be the target they were shooting for.
One final wish for Peachpit: please include downloadable files that the reader can access to duplicate the Alpaca Repo website. I was continually frustrated when I wanted to replicate what I had just read about, yet was missing JPEG files or extensive text that I could use. Consequently, I never felt as though I had actually gotten the hang of CSS.
You can purchase Styling Web Pages with CSS: Visual QuickProject Guide from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
Universal Design for Web Applications
Michael J. Ross writes "Two decades ago, Web usage was limited to a single individual (Sir Tim Berners-Lee) using the only browser in existence (WorldWideWeb) running on a single platform (a NeXT Computer). Nowadays, billions of people access the Web daily, with the ability to choose from over a dozen browsers running on desktop computers, laptops, and a variety of mobile devices, such as cell phones. The number of possible combinations is growing rapidly, and makes it increasingly difficult for Web designers and developers to craft their sites so as to be universally accessible. This is particularly true when accounting for Web users with physical and cognitive disabilities — especially if they do not have access to assistive technologies. The challenges and solutions for anyone creating an accessible website are addressed in Universal Design for Web Applications, authored by Wendy Chisholm and Matt May." Keep reading for the rest of Michael and Laura's review. Universal Design for Web Applications author Wendy Chisholm and Matt May pages 198 publisher O'Reilly Media rating 5/10 reviewer Michael J. Ross with Laura Andres ISBN 9780596518738 summary An introduction to accessible Web design. The book was published by O'Reilly Media on 26 November 2008, under the ISBN 9780596518738, and weighs in at a slender 198 pages. The publisher offers a Web page for the book, where visitors will find a detailed description, a customer review, errata (there are none listed, as of this writing), a sample chapter (the 11th one, "The Process") in PDF format, and other items that may be of interest to the prospective reader. The authors as well have a website for the book, which offers the 20 accessibility checklist questions from Chapter 11, as well as slides from the authors' presentation at the Web 2.0 Expo on 17 September 2008 in New York City.
In the preface to their book, the authors explain that the purpose of universal Web design is to make Web content "work as efficiently as possible across the range of capabilities exhibited by both people and their chosen browsing technologies." While it has little to do with efficiency per se, maximum Web usability is a laudable goal for every designer and developer of a website or Web-based application. The consensus in the Web design community is that the most effective way to achieve this goal is through adherence to accepted usability standards and design practices, and those are the topics that the authors explore in the eleven chapters that compose this book: an introduction; selling universal design; metadata; structure and design; forms; tabular data; video and audio; scripting; AJAX and WAI-ARIA; Rich Internet applications; and the universal design process.
The first chapter serves as a brief introduction to the concept and overall purpose of universal design (UD), which the authors consider to be "the design of products and environments to be usable by all people, to the greatest extent possible, without the need for adaptation or specialized design" (as defined by architect Ron Mace). In view of the brevity and preliminary nature of this chapter's material, it should have been labeled as an introduction, and not a chapter. More importantly, the discussion is rather choppy, jumping among topics such as architecture, grocery stores, unemployment rates among the blind, and mobile phones. Readers will likely be confused by the authors' statement that "mobile and accessible design are also at opposite ends of the spectrum when it comes to meeting our stated goal," as that suggests that the more mobile the device, the least accessible platform it can ever be. Yet the gist of the discussion is clear: The need for maximally accessible websites is quite important — critical to those with various disabilities — and will become more so with the proliferation of Web-enabled mobile devices.
If any chapter in this book is going to raise hackles, it is surely the second one. It focuses on how to sell Web accessibility to decision-makers, such as convincing management that compliance with universal design standards — in creating a new site or re-creating an existing one — is worth the investment. This position could easily be supported with a thoroughly positive mindset, such as showing how enhanced accessibility for some is beneficial to all. Instead, the authors initially take a more negative approach, and begin the chapter with somewhat hostile descriptions of what it is like to not understand a movie, and the resistance the authors have encountered in selling accessibility to clients. The authors clearly want the reader to empathize with such people, but the methods employed are questionable — such as asserting that all of us can face a handicap at some point, and thus we can all be lumped together as "disabled." While the authors' passion for online resources being made available to everyone, is certainly laudable, there is nothing to be gained from making sweeping generalizations or lecturing the reader. (Overstating one's arguments tends to turn off listeners, and provides fodder for counterarguments.) The authors go on to define the four major categories of physical and situational disabilities, as they relate to website usage. They cite statistics for deafness and hard of hearing, but neglect to include tinnitus, which apparently has more sufferers than those first two conditions combined. Next, the authors provide selling points for employing universal design to increase a site's potential audience — humans and search engines — thereby increasing financial results and adhering to legal restrictions. Readers are referred to a number of pertinent resources, including the Web Content Accessibility Guidelines (WCAG), the Authoring Tool Accessibility Guidelines (ATAG), the User Agent Accessibility Guidelines (UAAG), the Accessible Rich Internet Applications Suite (WAI-ARIA), and the Mobile Web Best Practices (MWBP). Nearing the end of the chapter, the authors return to the minefield of how to convince the "prejudiced developer" and manager that they should learn and utilize accessibility best practices in creating websites for which they are responsible, especially when they see no value or need for it. Lastly, excellent arguments for the product benefits of continuous accessible design are briefly presented.
By the third chapter, Web designers and developers who purchased this book to learn specific accessibility techniques, may become a bit impatient, since nothing concrete has been presented up to that point (despite the claim later in the chapter that "We've devoted three chapters to making web applications accessible."). Fortunately, this chapter gets things going by addressing metadata and how it can be leveraged to increase content accessibility. The specific techniques discussed include the alt, height, and width attributes for image tags; document-level metadata, including title tags; and link text. The guidelines are definitely worthwhile, but the presentation could have been better edited. For example, the authors state that the alt text for a linked image is "a verb and represents where the link will take you" (page 27), but a destination is not a verb, and neither is the example provided ("next page").
Chapter 4 addresses the structuring and design of Web pages, and covers important topics of semantic markup, headings, links, lists, forms, tables, colors, layout choices, text sizing, fonts, and images. For some reason not explained to the reader, forms are discussed first, even before semantics, which is odd. Nonetheless, all of the suggestions provided are well worth learning and incorporating into one's own repertoire of Web coding and design principles. The authors rightly teach the maxim "separate structure and presentation," and demonstrate how to do this throughout the discussion of the aforesaid topics. Also addressed are flickering images — and one of the dangers thereof, photoepilepsy — and HTML e-mail messages.
Web forms possibly compose the most problematic type of page element, especially in terms of usability and accessibility, because they involve for more user input than any other. This is especially true with forms that use CAPTCHAs in an attempt to defeat form spam. Chapter 5 encompasses a useful discussion, with illustrative sample code, covering the key considerations for coding accessible forms — including labels, fieldsets and their legends, accesskey attributes, and tab order among elements. The authors state that a block of sample form code (page 54) is available on their website, but, as of this writing, it could not be found. Yet readers may not want to use that code anyway, since all of the labels and all of the input fields are separated, into two divs; no explanation is given as to why this nonstandard structure was chosen. Error handling is a subject that stymies countless inexperienced Web programmers, as evidenced by the oftentimes useless messages displayed on the sites that they have created, and the authors provide solid advice, with emphasis on client-side error handling. The chapter concludes with a somewhat short discussion of what they consider "Public Enemy #1 for blind, low-vision, and dyslexic people," the dreaded CAPTCHA, with links to two publications that propose alternatives.
Accessibility abuses are especially prevalent with three types of Web content: HTML tables and multimedia. These are the topics of chapters 6 and 7, respectively. Semantic use of HTML tables for tabular data is seeing a resurgence with the growing interest in accessible design, and Chapter 6 explains how to implement them properly. However, Figure 6-3 purportedly contains blue shading, but it is effectively invisible on the black-and-white printed page. Chapter 7 explains how to add captions and audio descriptions to audiovisual files, or outsource the work. But first the reader slogs through a detailed history of Web-based video that is unneeded, despite the authors' claims that knowledge of the history is important.
The next two chapters discuss the use of JavaScript and AJAX as they pertain to site accessibility, and could be combined into a single chapter. The first one briefly addresses a number of related topics: progressive enhancement, Unobtrusive JavaScript (again with an unnecessary history), keyboard activation of pop-up menus, limitations of :hover pseudoselectors, two recommended drop-down menu scripts, and tabbing order. One of the scripts is an open-source script that the authors claim can be downloaded from their website; but, like the form sample code mentioned above, the promised script is missing from their site. The authors later declare (page 107) that in this chapter they show "you how to add JavaScript to your HTML and CSS to make a web application," when in fact they do nothing of the sort. Entire books explain how to make Web applications — not something accomplished in a 15-page chapter. Chapter 9 focuses on AJAX and WAI-ARIA — specifically, the ways that the AJAX paradigm clashes with the current state of assistive technologies, and how ARIA may prove the best solution — resolving the keyboard activation problem covered in the previous chapter, and handling tab ordering in a more elegant manner — though still not ubiquitously implemented. The narrative's flow is interrupted with almost three pages of JavaScript that the reader is apparently not expected to implement as-is or even use as sample code to learn from, and thus looks suspiciously like padding.
In Chapter 10, the authors discuss the unfortunate lack of Web accessibility guidelines for Rich Internet applications (RIAs) developed using technologies such as Java, Flex, and Silverlight. To remedy this, the authors promise "a crash course in software accessibility as applied to Flex and Silverlight," but only deliver on the second half of that promise. For illustrating Silverlight development, they provide some of the code for creating a custom Digg button (although the term "buttons" is also confusingly used). The chapter concludes with mention of some tools from Microsoft for testing RIAs that utilize Microsoft Active Accessibility (MSAA).
The last chapter begins with a brief high-level perspective on the importance of baking accessibility into any new application or site from the start, and then explores numerous development and testing tools and other resources. Perhaps the material that will be most referenced in the future by readers, are the 20 key questions that a designer can use as a valuable checklist for evaluating a site she has created. The chapter concludes with some thoughts on strategies for successful universal design, for four different team sizes. The book's sole appendix consists of a table relisting the 20 key usability questions, and for each one, the specifications of the WCAG 2.0 Proposed Recommendation, the MWBP 1.0, and the UD4WA. This is followed by an index that proved quite disappointing, as it contains almost none of the entries that I attempted to look up.
Universal Design for Web Applications has numerous relatively minor flaws that could be fixed in a future edition: Some of the chapter summaries comprise only one or two sentences, and add no value to the book, since the chapters themselves are so short. Other chapter summaries contain new material not even mentioned in the respective chapters, and should be renamed as final sections. Many of the URLs are wisely presented as footnotes — instead of embedded in the text, as is done in many other technical books, which impedes reading flow. Unfortunately, this practice was not followed consistently throughout the book. In some passages, the writing style is rather unpolished; for instance, "mobile and accessibility as our criteria" (page 2), mixes adjective and noun. In other passages, the statements are hyperbolic; for instance, a reporter "found himself a hair's breadth from being eviscerated" (page 4). Some unexplained phrases will prove cryptic to many readers; for instance, "content adaptation" (page 24), "lolcats" (page 26), and "antipattern" (page 37). The use of a shortened URL (page 23) is inadvisable, since it depends upon the longevity of the particular service provider and the short URL that the service generated. Some of the terminology is inconsistent, e.g., the Enter key referred to as a "Return" key. The book contains a couple erratum: "to to" (page 12), and a sentence missing a verb (page 111, beginning with "Layering").
A visually annoying problem with this book is the manner in which, on far too many lines in the text, there is an inadequate amount of space between the words. Consequently, distinguishing individual words — particularly when trying to read at a fast pace — is made much more difficult. While skimming, each line begins to look like one extremely long word. There is no excuse for this, since there is plenty of space in the outer margins to have expanded the lines, and the number of pages is far less than in a typical computer book. This is not the first of the most recently published O'Reilly books to exhibit this problem, but I certainly hope it is the last. It is rather ironic to see this readability mistake in a book devoted to usability and accessibility. (Note that production decisions such as whitespace are not decided by the authors.)
Perhaps the most exasperating defect of all is that both instances of code that supposedly can be downloaded from the authors' website, are nowhere to be found, as of this writing — nor is the code available on the O'Reilly page for the book. In fact, a reader comment on that O'Reilly page indicates that the script code wasn't available on 30 December 2008, just weeks after the book's publication. This is quite unlike the level of follow-through typically seen with O'Reilly authors.
In some respects, the book could have been far better than the final product. It gets off to a weak start with a non-chapter, and then in several sections spends pages discussing the history of various technologies, but then fails to go into enough detail so the reader could use the current state of those technologies to implement what is promised in the book. It also could have been improved with much more detailed and usable discussions of such topics as scrolling, bypassing blocks of content, session time limits on forms, site maps, breadcrumb trails, usable CAPTCHA alternatives, typography, text case, paragraph justification, sign language, text direction, and techniques for providing text for image-heavy websites — as well as more complete code examples.
Nonetheless, Universal Design for Web Applications provides some valuable recommendations and pointers on how website designers, developers, and owners can greatly increase the accessibility of their sites to the growing variety of human and search engine visitors on the Internet.
Michael J. Ross is a freelance Web developer and writer. Laura Andres is a Unix administrator, Oracle DBA, and programmer.
You can purchase Universal Design for Web Applications: Web Applications That Reach Everyone from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Head First Rails
Anita Kuno writes "I suggested Head First Rails to a friend before I even finished it. He was asking me questions that I didn't have time to answer, and I knew the book could explain better than I. My friend is impatient, and I was uncertain what his experience would be. At first he was frustrated, but I assured him the answers were in the book. The incremental style of Head First Rails includes some exercises that are designed to fail to reinforce the learning process. I was confident that his answer would be found in the pages and he trusted me enough to go back and continue the exercises. He later told me he is very happy with the book and grateful that I suggested it." Read on for the rest of Anita's review. Head First Rails author David Griffiths pages 429 publisher O'Reilly rating 8/10 reviewer Anita Kuno ISBN 978-0-596-51577-5 summary An Introduction to Ruby on Rails
Rails is a framework for creating web applications. It is written in Ruby. It uses a structure called MVC which stands for model view controller. Rails separates tasks so that operations are modularized. Once a development team understands Rails, its use can increase the speed of creating web applications. Head First Rails explains the beginning steps needed to create Ruby on Rails applications. It introduces vocabulary; teaches the basic relationships that comprise Rails: the model, the view, and the controller; and demonstrates code creation that controls the MVC interaction. The title 'Head First Rails: A Learner's Companion to Ruby on Rails' describes the approach of the book. The author acknowledges that this book is one of many that will assist the active learner to begin Ruby on Rails. Proficiency in the Rails framework requires accumulating information from a number of sources and the book mentions quite a few and encourages consultation of those resources.
While previous Rails experience is not required (nor is previous Ruby experience) it is expected that the reader have a working understanding of HTML & CSS as well as a basic understanding of a scripting language. Java, C# or PHP are mentioned as scripting examples. I had tried several beginning Rails books previously and Head First Rails was the first I could complete. I feel it is a reflection of the speed of development of the framework and the fact that most of the people that I know involved with Rails are so busy creating apps, they don't have time to teach the n00bs.
Head First Rails assumes that you already have Rails installed on your system. The home page for Head First Rails provides a link to the download page at rubyonrails.org by way of providing installation instructions. I didn't see a reference in the book's index to Rails installation, which I find rather odd. It would be a simple matter to include a short paragraph explaining why detailed instructions aren't included with the book (as is explained on the home page for the book) with a URL to the book's homepage. Ruby and Rails are both opensource software so they are freely available for all systems.
Head First Rails has images, illustrations and graphics that are used to introduce and underscore one concept at at time. The book is designed so that each page and its facing page comprise an experience of one concept. As you turn each page you are introduced to a concept, given details and challenged in some form. When you turn the page you are on to the next piece of information which builds upon what you have already learned. The format of the book is designed to promote information retention and some of the exercises may prove frustrating at certain points. The frustration promotes original thinking and information retention. I feel it is a valuable part of learning. Since I rarely have the time to focus on a book exclusive to the rest of my life, I find the format helpful. I can attend to other things and pick up the book after two weeks and continue from where I left off. It is helpful to have access to information that I can pick up and put down and still accumulate knowledge.
Head First Rails is conversational and encourages original thought. The exercises, which are the foundation of the book, are accompanied by code samples for download to encourage comparison. The first time we dive into an app and edit the specific files, I felt that the identification of which file we were editing and how to locate the file in the Rails application directory tree needed to be clarified a little better. Soon the examples fell into a rhythm and I knew where to find the information I needed.
One thing that did get my attention was the use of whitespace or lack thereof in code. I have been taught to use 2 spaces to indent Ruby code (which affects Rails code as well) and while the code samples did use the convention, I didn't see the indent by 2 spaces rule explicitly stated. I'm not confident that a n00b would just pick that up. They would probably have to be informed. My other whitespace comment concerns hashes. I have been taught to have one space between the key and hash delimiter and another single space between the hash delimiter and the value. I did not see this in the code samples. I frequently saw no space whatsoever separating the key, delimiter and value. I have come to understand that developers rate another developer's worth based upon code samples, and lack of whitespace when it is expected is viewed as a bad habit. The composer of said code might be either chastised or dismissed due to poor technique. Perhaps my understanding of the situation is extreme but again in a book for n00bs, the reader will copy exactly what they see. So if there isn't whitespace on either side of the hash delimiter in the book, how will the reader know to compose code using that convention?
A few of the author's terms were confusing. He uses the term 'scriptlets' to refer to ERB output tags, and 'expressions' to refer to ERB expression tags. The Rails developers I questioned about this were able to figure out what he meant by 'expressions' but none of them had ever heard of ERB output tags being called 'scriptlets'. Also, the author uses 'finder' to refer to dynamic finders and I think it would have been useful to use the term 'dynamic finder'. It is more specific and the keyword 'dynamic' is useful when employing a search engine to research the functionality of dynamic finders. A search for 'finders' doesn't return one Rails related hit on the first page, while a search for 'dynamic finders' gives me a Rails related hit as the first return.
These are small points and perhaps this is more reflective of the culture of Rails developers that informs me, but in a n00b book it is important to provide clear vocabulary and conventions. These small points may be the techniques that have the longest shelf life to the reader.
I have been waiting for this book to be written and available for at least a year and a half. This was the first beginning Rails book that I found that didn't assume I was transitioning from a background in PHP. I have been spending time with the Ruby and the Rails community for close to 2 years now and am grateful that I finally have an explanation of the topic that is accessible for me.
Rails is changing very quickly and even now is about to merge with Merb to create Rails 3.0. It is tough to say how long the information in Head First Rails will be relevant. If you are interested in this book because you think Rails is fashionable, you might be distracted by a new trend before you finish the book. If you are interested in Rails because you have seen what it can do, you recognize its power and you want to learn how to get that for yourself, you will recognize the value in these pages.
You can purchase Head First Rails from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Rootkit Arsenal
Nicola Hahn writes "One of the first things I noticed while flipping through this hefty book is the sheer number of topics covered. Perhaps this is a necessity. As the author puts it, rootkits lie "at the intersection of several related disciplines: computer security, forensics, reverse-engineering, system internals, and device drivers." Upon closer inspection, it becomes clear that great pains have been taken to cover each subject in sufficient depth and to present ideas in a manner that's both articulate and well organized. This accounts for the book's girth; it weighs in at roughly 900 pages." Keep reading for the rest of Nicola's review. The Rootkit Arsenal author Reverend Bill Blunden pages 916 publisher Wordware Publishing rating 5 Shuriken reviewer Nicola Hahn ISBN 1598220616 summary A solid treatment of rootkits and anti-forensics This book is comprehensive enough to appeal to both novices and journeymen. To set the stage, the Rootkit Arsenal begins with a review of foundation material: the IA-32 execution environment, memory management, kernel-mode subtleties, call hooking, detour patching, and so forth. Yet, while the author devotes a significant amount of effort to explaining prerequisites and customary rootkit techniques, there's an abundance of more sophisticated content to engage more experienced members of the audience. For example, his explanation of how to use the WSK API and the most recent incarnation of the NDIS library (version 6.0) to construct covert channels over DNS is worth a read. I also appreciated his meticulous discussion of how to properly install Call Gates and handle the foibles of multi-processor systems.
One of the book's strong points is that there's coverage of issues which traditionally haven't appeared in books on this subject. For instance, there are several sections devoted to the Windows startup process and how it relates to the operation of bootkits. Part 3 of the book, which consists of four chapters, focuses on anti-forensics, with an emphasis on defeating file system analysis and the examination of an unknown executable. To this end, Reverend Bill ventures off into the tactics used to implement binary armoring, FISTing, obfuscation, code morphing, file scrubbing, and data contraception.
Not content to merely explain the basic mechanics of a particular scheme, Reverend Bill often illustrates how he derived his results and encourages the reader to verify what they've seen with a kernel debugger. This is a recurring theme throughout the book. Rather than just teach the reader a collection of tricks, the author demonstrates how the reader can identify new ones independently. After all, specific holes come and go, but the art of finding new ones will always have utility. This more than justifies the lengthy discussion of kernel debugging earlier on in the book.
All told, the book is reasonably self-contained. The source code examples are clean, instructive, and have been included in the book's appendix. As Reverend Blunden notes, the "Rootkit Arsenal" isn't about a specific rootkit that someone wrote (though such books exist). It's really about the rootkit that the reader will construct, such that the focus is on the nature of the tactics rather than a proof-of-concept rootkit. In this spirit, examples are long enough to illuminate potential sticking points but not so long that the reader feels like they're wading through mud in search of diamonds.
The author also exhibits good form in terms of giving credit where it's due. In the book's preface he specifically acknowledges a number of researchers who have made lasting contributions to the collective repository of knowledge (Mark Ludwig, Greg Hoglund, the grugq, Sven Schreiber, Joanna Rutkowska, Richard Bejtlich, etc.). While the author admits that many of the book's ideas can be unearthed by skulking about obscure regions of the internet, the real service that this book provides is to consolidate all of this disparate information together into one place, offering working implementations of each concept, and doing so in a remarkably lucid manner.
Yet, is this a responsible thing to do? Is it wise to show aspiring Black Hats how to manipulate forensic evidence so that they can implicate innocent people? Will publicizing the finer points of system modification make life easier for aspiring bad guys? Is he basically handing the reader a loaded gun and teaching them the nuances of a kill shot?
To a degree, Reverend Blunden sidesteps this issue as irrelevant. In the end he claims that he's just a broker of information, and that he doesn't care who uses the information or how they use it. If you asked me, this is a bit of a cop out (he sounds a little like an arms dealer). Furthermore, he accuses other authors (the ones who fall back on the traditional argument that they're bolstering security by encouraging vendors to improve their products) of churching up their books in "ethical window dressing." In the eyes of Reverend Bill, this book is what it is ...without apology: another source of useful data.
If I had one complaint about the Rootkit Arsenal, it's that the author sticks primarily to software-based rootkit technology. For instance, he eschews BIOS-based tools. At one point the author states:
"In my opinion, a firmware-based rootkit is essentially a one-shot deal that should only be used in the event of a high-value target where the potential return would justify the R&D required to build it. Also, because of the instance-specific nature of this technique, I'd be hard pressed to offer a single recipe that would a useful to the majority of the reading audience. Though a firmware-related discussion may add a bit of novelty and mystique, in the greater scheme of things it makes much more sense to focus on methods which are transferable from one motherboard to the next."
Last but not least, the author's tendency towards the political arena, which defined a couple of his previous books, rears its head again in The Rootkit Arsenal's final chapter. Here, the good Reverend suggests that if it's possible to control a sprawling operating system like Windows with a relatively small rootkit binary, then perhaps the metaphor carries over into the body politic of the United States. Could a small segment of the population be quietly influencing the trajectory that society takes? Dave Emory and Noam Chomsky look out!
Readers interested in getting a closer look at the book's organization and table to contents can visit the author's web site.
You can purchase The Rootkit Arsenal from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Managing Humans
Kylar writes "For those of you who have already discovered Michael 'Rands' Lopp's blog Rands In Repose, I congratulate you, as you are clearly an intelligent audience. For those of you who haven't, or for the less discerning (or, perhaps less blog-oriented), this book provides an excellent entry into the writings of Rands. Containing edited selections from his blog as well as new material, Rands uses many anecdotes and stories to convey a startling amount of deep wisdom into the facets of the Silicon Valley programmer, and a bevy of tools that are helpful in attempting to herd, er, manage them." Read below for Tom's review. Managing Humans author Michael Lopp pages 209 publisher Apress rating 8/10 reviewer Tom Byrne ISBN 978-1590598443 summary 34 Anecdotes that give insight into silicon valley management and programmers. I've read most of this book 3 times, the first when I discovered Rands' blog, (and, like few others, captivated me enough to start at the beginning and read his entire oeuvre), Once upon purchase of the book, and again, recently over the course of a few weeks, taking the stories out of order, and enjoying each for it's viewpoint, humor, and insight. The book is broken down into 3 major sections, 34 chapters, and each chapter is a small chunk, easily readable in a few minutes. It really feels like a blog, you can dip into it for a few minutes here and there and pick up a good point or two from each entry.
Know how many people I manage? Over a dozen, on a weekly basis. Know how many people report to me? None. So, why did I read it? Because I sit in a lot of meetings. I have to manage expectations. I have to write specs and reports for other people. Unless you work in almost complete isolation, receiving uber-detailed software specs and churning out code to match those exact specifications, the likelyhood is that you have to deal with other people. A lot. Every time you deal with someone else in a technical workplace, you run into other people. Their motives are not the same as yours, nor do they communicate the same way. In the first section of the book, "The Management Quiver", Lopp recounts 12 anecdotes, and two specific ones stood out. 'Agenda Detection' gives some points on how to figure out who the important people are in a meeting, and 3 tips on when to bail. 'Avoiding The Fez' points the spotlight on the guy who wrote that one system that no-one understands, but also calls out that too many people (and I find myself in this group) let their knowledge stagnate, instead of constantly learning and expanding.
The second section of the book, "The Process Is The Product", is, in my opinion where the book really starts to shine. "1.0" will be a familiar story for anyone who's ever tried to ship a product, as well as Rands' view on the 4 key things that it will take. "Taking Time To Think" and "The Soak" talk about absorbing ideas and planning, and he touches on ways to convey and disseminate information in "Capturing Context". This last one was another that I found informative — by getting a closer understanding of what kind of information the other party was expecting, and in what way they will be receptive to it.
In the third section, "Versions Of You", you'll see the people you work with, and Rands divides them out in lots of different ways (it struck me very much as almost a myers-briggs Nerd Scale). Are they Incrementalists or Completionist? Organic or Mechanic? Inward or Outwards? (For the record, I'm an OIC, An organic inward completionist.) And once you've identified someone, it makes communicating with them and identifying their motivations and reactions much better.
So, who should read this book? Managers. Technical Managers. Technical Peons. Programmers who are managed. Anyone who works with someone technical. Anyone named Fez. Odds are, if you're reading this review, you're in the target audience. Even when you look at a book like this and think "I don't need this, I'm not a manager." Odds are that you're being managed, and managing others, even if they don't report to you.
So, ultimately, why should you read this? I think that this book has a fair amount to offer just about anyone in a role in or dealing with technical talent. Does it answer everything? Of course not — but there are a lot of little nuggets hiding here, and above all, it is entertaining. More entertaining than The Mythical Man Month, and more applicable to my daily job than "SOA Is Dead, An Anthology".
This book has several Pros: I found it very relevant, and I was able to identify ways to improve my own communication, by understanding what the other person was expecting, and how to present it. Cons: Most of it is available free on Rands' blog.
You can purchase Managing Humans from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Google Apps Deciphered
Lorin Ricker writes "Computing in the Cloud — Free Apps — Outsource It! Yippee! Automation TCO nirvana at last! You can hear the non-technical managers and home-users unite in grateful song and dance! If we can just offload our office applications and data to the Cloud Known As Google, that apparently bottomless source of storage, search and now other useful capabilities, our office automation problems will be solved! Hooray! 'Well, just y'all hold up there a minit, lil' cowboy. Thar's a few thangs y'all oughta know 'bout afore ya go rushin' off...' If John Wayne didn't say exactly that, well, he should'a." Keep reading for the rest of Lorin's review. Google Apps Deciphered -- Compute in the Cloud to Streamline Your Desktop author Scott Granneman pages 552 publisher Prentice Hall rating 7 reviewer Lorin Ricker ISBN 0-13-700470-2 summary A practical, comprehensive and useful guide to Google Apps Scott Granneman's new book Google Apps Deciphered — Compute in the Cloud to Streamline Your Desktop is a very useful technical overview about deploying Google Apps. It promotes a contagiously positive "we're gonna be saved" view of Google's ambitious initiative to provide our user communities with the perfect environment to counterbalance the Microsoft-centric archipelago of computing workstations. Good on Google, and good for Mr. Granneman for providing this practical overview, a comprehensive how-to for deploying Google Apps in any workplace.
And yet, to dampen our somewhat overly enthusiastic spirits, along comes none other than RMS himself in the role of the cowboy philosopher, with words of warning regarding the collective wisdom of committing all our eggs to the Google/Cloud basket: "Hold on there, pilgrim." The present book review is not the place to engage in this particular debate (see Ben Rothke's illuminating review of Greg Conti's recent book, Googling Security) — suffice it to say that Google Apps Deciphered pays no attention whatsoever to the issues of data security, privacy, and ownership.
The business wisdom of committing proprietary information, trade secrets, sensitive data, competitive analysis, private reports, personal/identity and non-public customer data is not even acknowledged as Granneman launches enthusiastically, without reservation, into his topics. Readers seeking any guidance on the legal, statutory, ethical and practical issues regarding data security in the Cloud will come up empty-handed in Google Apps Deciphered — start with Conti's book instead. In fairness, however, the whole concept of Cloud data storage is in the formative stages of discussion and understanding by many of us; still, I find myself wishing that Granneman's book had at least given a nod to and perhaps delineated the issues at hand, rather than jumping uncritically into the presumed virtues of total Cloud commitment.
That said, it was my only real gripe about Google Apps Deciphered. Taking it at face value, this book is a sure-footed guide to deploying Google Apps at its current state of development and fitness for duty.
The author starts out with an Introductory chapter which lays out the benefits (but without the down-side) of Cloud computing, and extols the general virtues of Google Apps itself — that's the cheerleading part of the book. Where appropriate, several of the chapters are neatly tied off with a list of supporting references, nearly all of which are websites or online articles cited by title, author (where relevant and available), and full URL.
The meat of the book is a comprehensive how-to for Google Apps, in six parts of a few chapters each: Part I "Getting Started with Google Apps" covers the selection of the appropriate "edition" of Apps, and then goes on to discuss migration issues for existing user data (email, contacts and calendars), concluding with advice on managing Apps services.
Part II covers email — not from an individual 's "I've got a gmail account of my own" perspective, but from the corporate or organizational "let's convert from Exchange Server" ambition. Part III similarly covers Google Calendar.
Part IV addresses Google Docs, Google's answer to Microsoft's Office Suite. Part V is about Google Sites, while Part VI picks up various miscellanea, including Google Talk, the Start Page, Message Security and Recovery (no, not exactly about data security), and finally, Google Video.
Park VII consists of three Appendices, one addressing "Backing Up Google Apps" (sic! — but why? Doesn't adopting the Cloud forgive us of this responsibility?); the next covers "Dealing with Multiple Accounts" (apparently, the existence of certain pre-existing Google accounts can complicate a new deployment); and finally, an appendix which touts "Google Chrome: A Browser Built for Cloud Computing."
For the most part, each of the Parts is similarly constructed, with chapters covering "Setting Up...", "Things to Know About Using..." and "Integrating ... with Other Software and Services" for gmail, Calendar, Docs, Sites and the rest. And herein lies the strength of the book as a how-to deployment guide. Scott Granneman is a well-regarded author, educator and consultant to the free and open source software community, having previously written good books about Linux, Knoppix, Firefox and more. He brings this expertise and experience directly to bear on the practical problems of deployment and committing an organization's computing resources and users (or at least a part of them) to Google's Cloud resources.
These how-to chapters are comprehensive; they anticipate and resolve many of the practical problems one would encounter during deployment with directions and advice which is obviously hard-won, based on the real-world expertise of the author. He's clearly done the Apps deal himself, and writes from actual experience, not from the hypothetical.
As examples of these comprehensive deployment recipes, the chapter on gmail includes consideration of: folder structures and limitations; live cutover considerations; IMAP and POP; migration tools; issues special to Exchange Server; mbox and Maildir stores; techniques and tools for actually moving bulk messages (and having them land correctly); specific issues with Outlook, Hotmail, Thunderbird, Macs, web-based email, and more; and solving common problems. With this thoroughness, it's likely that most problems and issues of deployment are anticipated and covered — the rare thing that's not can probably be figured out by analogy with what Scott does address. And so on for the other Google Apps as well.
The author also comes clean about the various limits and restrictions imposed on Google Apps accounts and deployments, and delineates these according to the five Editions of Apps: Standard, Premiere, Team, Education, and Partner (free and paid modes). For example, Google Docs imposes strict limits on document file sizes, and "at most a limit of 5,000 documents and presentations and 5,000 images." (Really. Is this adequate for even the average office worker over the long-term? What about prolific Sally the tech-writer, or John "the tool" over in proposals? Are such limits practical for an enterprise?) There are more such things scattered throughout the book, as well as existing problems (such as the previously mentioned "multiple accounts" issue) which, honestly, only serve to bolster the common impression that many Google products are in a perpetual state of beta.
This book belongs in the hands of every technical staff who gets charged by their employer with the responsibility for a Google Apps deployment. If that's where your company is going, then Scott Granneman's book will no doubt save countless hours of experimentation, false starts and problem solving — it's a serious practical, technical leg up on what will be a non-trivial data and environment migration effort.
Given his target — the why/benefits of adopting the Google Apps/Cloud approach, and how to get it done — Google Apps Deciphered scores well for hitting its mark. I gave it slightly lower marks for its lack of coverage of the "should you even do this?" data security and privacy issues, and because it only hints at some of the pre-planning, project costing considerations that must be considered by any enterprise which is contemplating this commitment.
I opened this book thinking that I'd likely try or do some of the deployment exercises for myself — but I closed it with the conviction that, for me and my own SOHO business needs, Google Apps is not yet ready for my own prime time. Helping me come to that conclusion made the book very worthwhile; for others, your mileage will of course vary. I am convinced that, as awareness of the data security and privacy issues matures, and approaches to these evolve and improve, Cloud Computing will become ubiquitous to various degrees and needs — as if it's not already — and probably sooner than we suspect. In that event, Google Apps Deciphered and its future editions will be among the most useful of guides.
You can purchase Google Apps Deciphered -- Compute in the Cloud to Streamline Your Desktop from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Age of Speed
enactd writes "I feel life is a constant juggle, for every task in hand you have another to react to or let drop. The Age of Speed helps you chart your tasks to keep the important goals in sight while recognizing and reacting to distractions. Being a geek on the cutting edge of technology gets one acquainted with speed quickly, but being able to handle it is another matter and streamlining is an ongoing effort. The goal of the book is to help you decide what is important in your life and extract as much pleasure from those things while minimizing the time spent on the mundane." Keep reading for the rest of Chris's review. The Age of Speed author Vince Poscente pages 215 publisher Bard Press rating 8.5 reviewer Chris Alan ISBN 978-1-885167-67-5 summary Tips on getting more done with the time you have. The beginning of the book deals with shedding the guilt most people associate with getting things done quickly. We are lead to believe at an early age that shortcuts diminish the reward or the experience of a task. While there are some tasks where this holds true, overall it is a common myth one needs to overcome in the age of speed.
My favorite anecdote was a fresh look at the Tortoise and the Hare. The common moral one associates with this fable is "Slow and steady wins the race." But the story isn't a condemnation on speed, rather against stupidity. The Hare lost simply because he was dumb enough to take a nap in the middle of the race, in no way did his speed work against him.
One of the major sections of the book splits personalities up into four categories, Zeppelins, Balloons, Bottle Rockets and Jets. The tech world mostly consists of Bottle Rockets and Jets, as long as you don't include managers. The Jets run smoothly and routinely hit their targets while the Bottle Rockets follow pets.com off the cliff.
Whenever I'm behind the wheel and someone asks if I know where I'm going I reply, "Nope, but I'm going to get there quickly." While I'm usually joking, it perfectly sums up the attitude of a Bottle Rocket. While a Jet has a single target and maintains focus until it's task is complete, a Bottle Rocket constantly changes it's target and never seems to be able to hit it before being distracted by a new goal, leaving a wake of unfinished debris. Obviously one should strive to be a Jet.
I finished this book two weeks ago. I started writing the review immediately after finishing the book, but I wanted to see how applying the principles helped me out. My favorite section was titled Aerodynamics and led to an immediate change in how I approach working.
Sometimes I find myself falling into a black hole of needless distractions, constantly switching between email, Twitter, Slashdot and any other diversion I reward myself with throughout the day. If I have too many distractions in a short amount of time I'll fall into a pseudo trance of cycling through them endlessly. Afterward I'm at square one with getting back on task. Directly after reading the chapter An Exercise in Consciousness I turned off my email auto checker. This simple change transformed my work environment from an interruptive process to one I'm in control of. By removing the interruption I don't have the temptation to succumb to distractions and I've felt much more productive.
The only time the author had me rolling my eyes was the shameless self promotion of referencing the Age of Speed throughout the book. If I were reviewing this book for a more general audience I would have rated it a point higher, but people in the technology sector don't have the same speed hang ups as most people, negating some of the insights of the book. However, there are plenty of pointers for even the most hardcore tech geek. Surviving in an always on World is easy, the key is learning how to prosper.
You can purchase The Age of Speed from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Beginning GIMP: From Novice to Professional 2nd Ed
r3lody writes "An extremely large amount of the information we get on a daily basis comes from what we see. Imagery is therefore very important to those who want to communicate with us. When computers had advanced enough to be able to process images in a digital fashion, the market opened up for programs that could manipulate them in many ways. While many professionals would opt for the paid programs, there is a free alternative: GIMP (Gnu Image Manipulation Program). The only stumbling block is learning how to use it properly. That is where Beginning GIMP: From Novice to Professional, Second Edition by Akkana Peck comes in." Read below for the rest of Ray's review. Beginning GIMP: From Novice to Professional, Second Edition author Akkana Peck pages 584 publisher Apress rating 8/10 reviewer Ray Lodato ISBN 1430210702 summary An easy-to-read, fairly complete introduction to image processing with GIMP I first attempted to use GIMP to fix a photograph or two of mine, but was quickly bogged down in the many options available in the program. That is why I was happy to get my hands on a copy of Beginning GIMP. The book is based mainly on GIMP 2.4, but the author included a preview of GIMP 2.6 in Appendix D. When I downloaded the latest verson of GIMP from gimp.org, I received GIMP 2.6.0. So I used the PortableApps version of GIMP (2.4.6) on Windows XP while reviewing the book and found only minor variations from the text.
One thing that strikes you as you open the book is the extensive use of color. Most texts are black-and-white throughout, but here you are presented with a pleasantly colorful tome. To follow the examples as best as I could, I downloaded the images available on the gimpbook.com web site. Although the images are supposed to be for the 2nd edition, several of those shown in the text for demonstrations purposes are not included. It appears that the images for the tools new to GIMP 2.4 are missing from the web site. This is surprising, since the 1st edition of the book covered version 2.4, so you would expect the images to be there.
The book begins by giving the reader a brief tour of the three main windows of GIMP: the Toolbox window, the Layer/Channels/Path/Undo window, and the Image window. Some basic navigation is presented, along with tear-off menus and how to modify tool placement. It concludes with a simple project layering a small image onto a larger one was given. Unfortunately, the files supplied from the web site did not include the PNG file used in the text, so it's difficult to reproduce the picture as shown. I later found the missing image in a GIMP-format file called wilber.xcf.gz. Unfortunately, xcf files are not discussed until the next chapter.
After the simple introduction, the author, Akkana Peck, gets into the most common adjustments a beginning user might need: re-sizing, cropping, rotating, brightening and darkening, and fixing red-eye. Each manipulation is presented with careful step-by-step instructions. I was able to match the pictures shown in the book, providing me with a level of comfort that I was learning the right way to fix photos.
One of the most common and useful methods of altering photographs uses the concept of layers. Layers act like cinematic cels, being mostly transparent with some opaque portions to lay on top of other layers. Chapter 3 gives a clear description of how to use layers to make changes. Two sample projects use layers to add text and another image to an existing photo, and to create an animated GIF using a series of layers for each frame of the animation. While I found minor differences between the text and the version of GIMP I used, I had no real problem understanding how the concept is applied.
You will probably need to do some freehand drawing from time to time, and chapter 4 covers the tools you'll need. While these tools are familiar to anyone who has used a basic painting program like Microsoft Paint, there are enough differences in how they are applied to warrant their own chapter. After creating some basic shapes (rectangle and circles), outlining and filling them, the author explores various fills and patterns. The chapter ends with a tutorial of creating a tree in a planter box, using just the drawing tools.
Every tool you use in GIMP works on the current selection. Knowing how to select just the parts of the image you want affected is important to getting the results you want. The author devotes an entire chapter to the numerous ways to select areas, add to or subtract from the selections, and fine-tuning them to only touch the parts you want touched. Basic rectangle, ellipse, and free-hand selections are followed by more sophisticated methods including the intelligent scissors and SIOX (Simple Interactive Object Extraction). The book also shows how to save selections as channels, so you can return to them in future editing sessions.
Sometimes, however, all you really need to do is a little touch-up on a photograph. Is someone's face in shadow or too much sun? Did you wish to get rid of some little irritating extra in a photo? Maybe you just wanted to draw attention to one subject and blur out the rest. Chapter 6 provides the information on how to make these basic adjustments. Darkroom techniques called dodging and burning provide minor adjustments to brightness, while cloning and healing can completely eradicate unwanted portions of the image. To draw attention to portions of the picture, you can enhance it using the blur and sharpen tools.
In addition to simple adjustments, GIMP offers a plethora of various tools to modify or create images. Under the Filters menu, you will find a large selection of tools. When I first looked, I felt that there were so many, who would need all of them? In the Filters and Effects chapter, Akkana Peck goes through them all, showing how they can be used to enhance your image. Because there are so many, she does not provide examples of each effect, but each one is described and you are encouraged to play. Remember, Undo is your friend here!
Chapter 8 delves into a very important aspect of your photos and drawings — the colors. First, the concepts of the RGB (Red-Green-Blue) and CMY (Cyan-Magenta-Yellow) colorspaces are described, followed by the HSV (Hue-Saturation-Value) space. A lot of time is used reviewing how these different colorspaces are used, and how they can be manipulated. The tools for breaking the image into its component layers, and demonstrations on how manipulating them can enhance your photo follow. The chapter concludes with some discussion on color profiles.
Now that you've learned quite a few niceties of GIMP, you need to learn more advanced techniques. The next two chapters go into more detail about drawing and compositing. The chapter on Advanced Drawing covers three main topics: mask and layer modes, realism using perspective and shading, and making new brushes, patterns and gradients. The Layer Mode section is the most interesting, showing how blending layers using various modes other than simple overlays can produce interesting effects. There are a number of examples, all easily followed and replicated. Once you've got a basic understanding of the advanced drawing techniques, it's time to put them to use on photographs. The chapter on Advanced Compositing shows how to use layer modes to play with images to improve their looks. You can brighten images, improve contrast, create eerie landscapes, fix noisy photos, and create panoramas, all using various layer modes. Many examples are shown, so you can get a good feel for the technique.
GIMP plug-ins provide automated tasks for the user. In fact, a number of GIMP's tools are provided by plug-ins. A variety of languages is supported. Plug-in scripts can be written in Scheme (the default — always installed), Python, and Perl (if available on your computer). If you need greater speed, you can write a plug-in in C. Chapter 11 uses the sphere plug-in as an example. Xtns — Misc — Sphere creates a sphere on a solid background. Akkana explains how to modify the script to provide a transparent background. A full discussion of the programming of the original script follows. Each step is carefully explained so only a minimal amount of programming background is needed to understand the concepts. Finally, examples in Python, Perl and C round out the chapter. Also included are explanations of how to find plug-ins and help on callable routines.
Unfortunately, there is so much to GIMP that one medium-sized book cannot contain it all. There is a potpourri of topics in the final chapter, including printing, scanning, setting preferences and the configuration files. The chapter ends with information on where to go for more help, source code, and images.
The appendices offer information on how to get and install GIMP, how to install it on older systems, and how to build it from source. Naturally, GIMP is always evolving, and Appendix D offers a list of enhancements in GIMP 2.6 that were not incorporated into the main text.
Over the course of reading the book, I had very little trouble reproducing the examples as demonstrated. I must admit that, despite the book's subtitle: From Novice to Professional, I am now at best an intermediate user. The depth of the capabilities available within GIMP is much deeper than the author could provide in the text. At almost 600 pages, this book is just about the right size, and provides the right amount of instruction for most people. The Additional Topics chapter provides information and links for further study and training, for those so inclined. If you are a beginner to image manipulation, and want to get fairly proficient with GIMP, then definitely get Beginning GIMP. It's not leaving my desk any time soon.
You can purchase Beginning GIMP: From Novice to Professional, Second Edition from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Assemble the Social Web with Zembly
stoolpigeon writes "Web applications are all the rage, web applications that function within the context of social networking sites doubly so. I think it is safe to say that pretty much anyone looking to garner a large audience on the web, for financial or any other reasons, has to be considering how they can reach people on sites like Facebook, or all those users out there accessing the web via their iPhones. Sun Microsystems has entered this arena by providing a set of web-based development tools and a platform on which to host the resulting products that is now in beta and named Zembly. And while Zembly has not been open to the public for all that long, two of Zemblys architects with the help of two writers have published a new cookbook for the aspiring Zembly developer, Assemble the Social Web with Zembly." Read below for the rest of JR's review. Assemble the Social Web with Zembly author Gail Anderson and Paul Anderson with Todd Fast and Chris Webster pages 385 publisher Prentice Hall rating 8/10 reviewer JR Peck ISBN 978-0-13-714431-0 summary Let's Make a Social Application. Right Here. Right Now. Together. Zembly is relatively new and the name doesn't offer any insight into just what it is, so before I get to the book itself, I'll explain a little about just what Zembly is. It is a Sun project. In their promotional material on the site they claim, "Over two decades ago, Sun's motto, 'The Network is the Computer', foreshadowed the advent of today's cloud computing movement.We like to say that zembly is the development environment for Sun's bold vision ..." So Zembly is an on-line development environment. But more than just being an on-line editor, it is development in a social context aimed at social tools. The code written by one Zembly user is available to any other user.
Along with providing a social development environment, Zembly also provides the platform and resources where the applications developed there will live. To put it in literal terms the framework is comprised of Solaris, Java, Glassfish, and MySQL. It operates via Sun's Network.com cloud-computing business. That framework supports the use of HTML, CSS, JavaScript, FBML, and FBJS. There are templates in place to develop applications for several popular social networking sites and there will be more as users add them.
Assemble the Social Web with Zembly is an introduction to all this and serves primarily as a cookbook to help the reader get their head around how all the pieces work together, giving them a jump start into the process. As Zembly is all about collaboration it seems appropriate that this book is the product of four authors. Gail Anderson and Paul Anderson are experienced authors, with a number of published tech books between them. Todd Fast is the architect and CTO of Zembly. Chris Webster is another Sun employee and the Technical lead for Zembly and also a published author himself.
The book covers an overview of Zembly, a chapter on how to use the tool set and then moves through a series of chapters that provide examples of building widgets and services for Flickr, Zillow, Facebook, Dapper, and web apps for the iPhone. There is also a widget section that makes use of WeatherBug, Google Maps and Yahoo! Pipes. The results can be published as applications within those sites or embedded into other sites. I see the real potential for Zembly in places like Dapper and Pipes, where Zembly becomes an endpoint for those types of services that can consume almost anything. The usefulness of Zembly comes in allowing developers to integrate that into the social sites and the scalable hosting is already built right in.
The book is well organized and black & white illustrations are put to good use in making directions clear. The index is thorough. The authors do not assume a lot of prior knowledge on the part of the reader in regard to how the various social networks operate. This did mean at times I had to plow explanations of things that really didn't have anything to do with Zembly. The information on what Facebook applications are and what they do is a good example. This was a little annoying but fortunately these sections were short. I found the writing to be clear and to the point. The authors do not try to be hip or cool and focus on content.
To really get the most out of the book a reader should be familiar with JavaScript, html and css. It wouldn't hurt to also understand RESTful web services. Once the first two chapters explaining Zembly are over, this really is a cook-book, or set of examples/tutorials rather than instruction on how to code or do markup. The experienced developer could probably slide by even if they were not working regularly with these technologies. Someone who has never written a bit of code may want to spend some time building some familiarity with javascript before they tack this book. Zembly itself has some quick tutorials that require almost no knowledge of programming. I watched a graphic art guy at work throw together a Facebook widget/app in about 10 minutes using Zembly.
Zembly is still in what has become the ubiquitous beta state for on-line applications. And as it is under active development this book probably has a very short shelf-life. It wont be all that long before the platform moves along and leaves it behind. In an effort to shore up against that inevitability all the code and resources for the book are stored in Zembly. If changes are made today, tomorrows reader will be able to work with the updated structures. The book itself is also available in traditional ebook formats and through Safari.
One of the nicer things about the Zembly approach is that it removes the barrier of hosting costs to participate in this space. In turn the developer surrenders up their work to be used by others. This may be problematic for those who would rather keep all their code to themselves, but fits in-line nicely with the fact that the entire stack is built on FOSS products. Of course, once again the beta status means that this free ride is not something that is guaranteed for perpetuity. I'm guessing that at some point, this type of central hosting is going to necessitate an attempt by Sun to generate some income from the service.
Getting in on the front end of a technology can often be rather difficult. The Sun folks seem to be ahead of the curve on making it easier for people to participate with Zembly. There are excellent tutorials and documentation on the site itself. For those who want to take it a step further, there is this book with a wealth of examples and explanations that will really accelerate the learning process. I'm not sure if Zembly will become the next big thing or not, but anyone who wants to gamble that it will, here is a chance to make the most of the ride.
You can purchase Assemble the Social Web with Zembly from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
Refactoring SQL Applications
stoolpigeon writes "My past as a DBA probably makes me a bit biased, but the reaction I've seen the most when a database application isn't performing as well as would be liked seems to focus on the database side of things. The search for a solution usually seems to center around tuning db parameters, the building (or removal) of indexes and, if the budget allows, throwing hardware at the problem. In their new work, Refactoring SQL Applications, Faroult and L'Hermite bring a much wider range of options to the table. There is a lot in this little book for the developer charged with fixing an existing application and I think a lot of good information that could save one from making a number of headache-inducing mistakes on a new application." Keep reading for the rest of JR's review. Refactoring SQL Applications author Stephane Faroult with Pascal L'Hermite pages 293 publisher O'Reilly Media, Inc. rating 9/10 reviewer JR Peck ISBN 978-0-596-51497-6 summary Good for a developer charged with fixing an existing application. The book is divided into eight chapters; the first two deal with how to approach a problematic application in general. In the preface the authors say, "This book tries to take a realistic and honest view of the improvement of applications with a strong SQL component, and to define a rational framework for tactical maneuvers." I found this to be true throughout the entire book and was impressed by how well the examples, suggestions and problems echoed my real-life experience. This book is first and foremost practical. There is really almost nothing in the book that does not come immediately to bear upon the problem at hand. I've seen others do a lot less with many more pages.
The examples and benchmarks are compared across three different popular relational database management systems. They are MySQL, Oracle RDBMS and Microsoft SQL Server. I thought that this brought up a couple interesting issues that are not directly addressed in the book. First is that the authors are talking about how to improve performance, not comparing platforms, but the numbers are there and may be of some interest to people who would like to compare them. Secondly, I've met a number of people over the years who get quite animated about insisting that a good DBA does not need to know any certain solution, but rather just the fundamentals. I think Faroult and L'Hermite put this idea to rest, though unintentionally. In order to discuss how to best understand what exactly is happening and how best remedy issues, they show that it is necessary to have an understanding of platform specific issues and tools. This is true on two levels. The first is that the location of use of the built in tools for each platform are different. The second is that what works for one platform does not necessarily work for another.
For example, Chapter Two "Sanity Checks" contains a section on parsing and bind variables. The authors compare performance when queries are hard coded, with new prepared statements on each iteration (firm coded) and with one prepared statement and changing the parameter value on each iteration in a loop (soft coded). On Oracle and SQL Server the performance was poorest with hard coded, better with firm coded and best with soft coded. MySQL did best with soft coded as well but actually took a performance hit moving from hard coded to firm coded. This had to do with differences in how MySQL server caches statements. The authors took the time to rewrite their code from java to C in order to ensure that the issue was not related to language or driver issues. This is not to say that one can ignore RDBMS and SQL fundamentals, but rather that to get top performance requires knowledge of platform specific issues. This also comes out again when dealing with optimizers.
With that in mind, the authors recommend that readers have a solid understanding of SQL and some programming language. Most examples are SQL and code is given in Java and PHP. There are also examples that illustrate SQL extensions showing procedures, functions, etc. written for all three RDBMS products covered. The authors stick primarily to standard SQL but do make note and at times show examples of how things will look in each of the other databases. This information is current and reflects the most recent versions of the each product.
The fourth chapter, "Testing Framework" is incredibly useful. The authors cover generating test data and then checking correctness of outcomes through comparison. This is really useful information for anyone working to improve an application, or writing one for the first time. I think it also a large part of why this book could really appeal to new and experienced developers as well as the developer working on existing or brand new applications. I think there is a good chance that only the most extremely experienced developer would find nothing new here, or at least some new way to approach a problem. New developers can learn quite a bit and avoid some bad habits and assumptions without having to gain that information the hard way. And then the tools for generating random data, large amounts of data and comparing results will provide excellent opportunities for learning and real world application.
The next three chapters cover dealing with specific types of issues and how to improve performance. The last chapter then quickly describes a scenario of just how the authors step into real world situations and start to attack a problem. This is followed with two appendices. The first is scripts and samples, the second tools that are available to help in finding issues and resolving them. Some of the authors tools use SQLite, which is discussed briefly in the chapter on creating test data as some of the tools depend upon it.
I think that it has been a while since I've read a book that could have such a rapid return on investment. There are many suggestions and insights that should enable anyone to squeeze better performance out of just about any database application. While the focus is on the application side, there is plenty that requires understanding and work on the database side as well. There is discussion of the parameters and hardware I mentioned at the start of this review. But rather than the only options, they are one part in a much larger and systematic approach.
The authors relate that often refactoring for this type of application comes into play when something that used to work does not work any more. This can often lead to an environment of high pressure and emotion. The desire for a rapid resolution can lead to casting about in the dark for a quick fix or a feeling that cost is no longer as significant since a fix must be had now. The authors argue, and I agree, that this is exactly when a rational, disciplined process of tracking down and fixing issues is the most valuable. I agree. The issue is of course that someone in a position to do something must have the ability to take that approach. This book will get one well on the way to being in that place. Of course it can't take a brand new developer or DBA an expert. Much like a degree it can give them some fundamental tools that will allow them to take full advantage of experience as it comes rather than just crashing and burning.
If I could I'd have any developer on a database centric application read this, and DBAs as well. There is a lot here for both sides to learn about just how much they depend upon and impact one another. This may be an idealistic dream, especially for larger shops where often the relationship between those two groups is adversarial, but I think that such an approach could only make life much better for everyone involved. For anyone looking to enter this world on either side of the DBA or developer equation, this may make a nice addition to their education. For that individual wearing both hats this could be a life saver. In this small book they will learn many things to look out for as well as gain exposure to some of the similarities and differences in what are arguably the top three relational database management systems right now.
You can purchase Refactoring SQL Applications from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Shadow Factory
brothke writes "The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America is the third of James Bamford's trilogy. Bamford started this with The Puzzle Palace in 1982 and Body of Secrets: Anatomy of the Ultra-Secret National Security Agency in 2001. The Shadow Factory is likely the last book Bamford will find the NSA cooperative to, given his often harsh treatment of the agency and its directors. It is also doubtful that former NSA Director Lt. Gen. Michael Hayden will grant Bamford additional dinner invitations, given his portrayal of Hayden as a weakling who could not stand up to Dick Cheney and other in the Bush administration." Read below for the rest of Ben's review. The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America author James Bamford pages 416 publisher Doubleday rating When sticking to facts: 9. When digressing: 2 reviewer Ben Rothke ISBN 0385521324 summary Good overview of the NSA post-9/11, but some of the author's biases get in the way The book can be summed up with two basic themes: The top management of the NSA and CIA has not made the fundamental changes needed post 9/11, as the politicking and inter-agency squabbles are seemingly alive and well. Bamford's other premise continues to be his contempt towards Israel.
Often bands produce abysmal releases in order to fulfill contractual requirements. In some ways, The Shadow Factory is reminiscent of that; at almost half the size of Body of Secrets, and 2/3 the size of The Puzzle Palace. When the book sticks to the facts and avoids conspiracy theories, it is a fascinating read.
If nothing else, Bamford knows how to turn often mundane aspects of wiretapping and supercomputers into a gripping read. Divided into five interwoven sections, the book starts out with a fascinating account of how two of the 9/11 hijackers lived the American dream, all the while planning their devious acts. Had there been some semblance of interagency cooperation and shared databases, Khalid Al-Midhar and Nawaf al-Hazmi would have been identified in seconds.
Not only that, in the book, Bamford writes that many of the 9/11 terrorists set-up shop within miles of the NSA headquarters in Maryland, communicated with their counterparts in the Middle East, at the same time the NSA was searching the world over for them. Bamford makes the NSA seem like the keystone cops searching for these terrorists, while they were literally a par 5 away.
A number of the chapters details the Bush administration forays into its illegal wiretapping adventures and how Counsel Alberto Gonzales and Chief of Staff Andrew Card manipulated a sick and barely lucid Attorney General John Ashcroft into signing on to the program.
It has long been known that Bamford has no love lost for Israel. His previous books have incorrectly written of the details around Israel's attack of the Liberty, a US Navy technical research ship, which was sailing in the Mediterranean Sea during the Six-Day War.
The book details how Israeli high-tech data mining and surveillance companies such as Comverse, Verint, NICE and more have become indispensable to the US intelligence community. Bamford asserts that the vast majority of surveillance of telephone transmissions are done via technology from Israeli companies. He then makes the jump that the American intelligence community is placing itself as risk and that the Israeli companies will access this same information.
Such conspiracy theories are tired and old. For the longest time, there were claims that every Check Point FireWall-1 had a backdoor which the Mosad could tap into. Some years ago, the NSA even sent out a memo denying that fact, as it was getting in the way of firewall deployments at the agency.
As to Bamford's assertion of Israeli control of American intelligence, it makes great fodder for the conspiracy theory community, but lacks any sort of real evidence. What Bamford does is show that many of the founders of these companies are graduates of programs from the Israeli military, served in the same intelligence corps unit and therefore, guilty by some sort of association.
Irrespective of Bamford's deep hostility towards Israel, there is not the slightest indication that the American intelligence community was forced to purchase these Israeli products. They purchased these due to their superior capabilities produced by one of its closest allies. What Bamford fails to mention, is that Israeli and US intelligence groups have a long history of mutual cooperation. Much of the US success in its war against terror and monitoring of Iran are only due to help from Israel.
If the Shadow Factory is meant to be a critique of the NSA, then Bamford's unsubstantiated allegations about Israel and the Mosad show the agency to be a bastion of utter incompetency. Irrespective of problems with management at the NSA, it is utterly incredulous that the Mosad could single-handedly undermine the entire US intelligence effort, filling it with back doors and secret agents.
Bamford seems to be confused on his approach to the NSA. On one side, the NSA are the smartest guys in the room, successfully, surreptitiously and often illegally monitoring nearly every telephone call on the planet. They push supercomputers to the envelope and optimize ever CPU cycle. Yet simultaneously, these smart guys are simply pawns of a small group of Israeli intelligence agents who have managed to develop and get their software on various NSA projects.
In his review of the book in the New York Times, Christopher Dickey sums it up best when he writes of Bamford's habit of such conspiracy theories that "it's a fair bet that Bamford will find a way to work the bloodbath at the Taj Mahal hotel into the long NSA narrative that he began with "The Puzzle Palace" in 1982, followed up with "Body of Secrets" in 2001, and may well continue with paperback updates and further sequels after the present book. These are the kinds of details, or coincidences, that Bamford loves. In "The Shadow Factory" he piles one on top of another — events, addresses, room numbers — in a slapped-together text that often blends facts with speculation to evoke a pervasive atmosphere of conspiracy".
When Bamford is able to stick to the facts, which is about 2/3 of the book, he paints a frightening picture of the threats that the US is facing. Equally frightening was the response of the Bush administrations to the threats and attacks, which in some cases turned mince meat out of the Constitution. Bamford writes of Dick Cheney's attempt to give the President significant more control, while ignoring the need for separation of powers. There are many other such instances in the book. Yet when Bamford takes off his hat of reason and attempts to connect invisible dots, Christopher Dickey's observation should be kept in mind.
Seemingly on the brink of failure, the events of 9/11 recycled the NSA. For the astute reader who is able to discern between fact and fiction, The Shadow Factory is a fascinating read into an agency that still exists in the shadows. With a budget larger than the GDP of some countries, and a workforce that spans the globe, the NSA has long existed and thrived in the shadows that Bamford often describes so well.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Shadow Factory
brothke writes "The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America is the third of James Bamford's trilogy. Bamford started this with The Puzzle Palace in 1982 and Body of Secrets: Anatomy of the Ultra-Secret National Security Agency in 2001. The Shadow Factory is likely the last book Bamford will find the NSA cooperative to, given his often harsh treatment of the agency and its directors. It is also doubtful that former NSA Director Lt. Gen. Michael Hayden will grant Bamford additional dinner invitations, given his portrayal of Hayden as a weakling who could not stand up to Dick Cheney and other in the Bush administration." Read below for the rest of Ben's review. The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America author James Bamford pages 416 publisher Doubleday rating When sticking to facts: 9. When digressing: 2 reviewer Ben Rothke ISBN 0385521324 summary Good overview of the NSA post-9/11, but some of the author's biases get in the way The book can be summed up with two basic themes: The top management of the NSA and CIA has not made the fundamental changes needed post 9/11, as the politicking and inter-agency squabbles are seemingly alive and well. Bamford's other premise continues to be his contempt towards Israel.
Often bands produce abysmal releases in order to fulfill contractual requirements. In some ways, The Shadow Factory is reminiscent of that; at almost half the size of Body of Secrets, and 2/3 the size of The Puzzle Palace. When the book sticks to the facts and avoids conspiracy theories, it is a fascinating read.
If nothing else, Bamford knows how to turn often mundane aspects of wiretapping and supercomputers into a gripping read. Divided into five interwoven sections, the book starts out with a fascinating account of how two of the 9/11 hijackers lived the American dream, all the while planning their devious acts. Had there been some semblance of interagency cooperation and shared databases, Khalid Al-Midhar and Nawaf al-Hazmi would have been identified in seconds.
Not only that, in the book, Bamford writes that many of the 9/11 terrorists set-up shop within miles of the NSA headquarters in Maryland, communicated with their counterparts in the Middle East, at the same time the NSA was searching the world over for them. Bamford makes the NSA seem like the keystone cops searching for these terrorists, while they were literally a par 5 away.
A number of the chapters details the Bush administration forays into its illegal wiretapping adventures and how Counsel Alberto Gonzales and Chief of Staff Andrew Card manipulated a sick and barely lucid Attorney General John Ashcroft into signing on to the program.
It has long been known that Bamford has no love lost for Israel. His previous books have incorrectly written of the details around Israel's attack of the Liberty, a US Navy technical research ship, which was sailing in the Mediterranean Sea during the Six-Day War.
The book details how Israeli high-tech data mining and surveillance companies such as Comverse, Verint, NICE and more have become indispensable to the US intelligence community. Bamford asserts that the vast majority of surveillance of telephone transmissions are done via technology from Israeli companies. He then makes the jump that the American intelligence community is placing itself as risk and that the Israeli companies will access this same information.
Such conspiracy theories are tired and old. For the longest time, there were claims that every Check Point FireWall-1 had a backdoor which the Mosad could tap into. Some years ago, the NSA even sent out a memo denying that fact, as it was getting in the way of firewall deployments at the agency.
As to Bamford's assertion of Israeli control of American intelligence, it makes great fodder for the conspiracy theory community, but lacks any sort of real evidence. What Bamford does is show that many of the founders of these companies are graduates of programs from the Israeli military, served in the same intelligence corps unit and therefore, guilty by some sort of association.
Irrespective of Bamford's deep hostility towards Israel, there is not the slightest indication that the American intelligence community was forced to purchase these Israeli products. They purchased these due to their superior capabilities produced by one of its closest allies. What Bamford fails to mention, is that Israeli and US intelligence groups have a long history of mutual cooperation. Much of the US success in its war against terror and monitoring of Iran are only due to help from Israel.
If the Shadow Factory is meant to be a critique of the NSA, then Bamford's unsubstantiated allegations about Israel and the Mosad show the agency to be a bastion of utter incompetency. Irrespective of problems with management at the NSA, it is utterly incredulous that the Mosad could single-handedly undermine the entire US intelligence effort, filling it with back doors and secret agents.
Bamford seems to be confused on his approach to the NSA. On one side, the NSA are the smartest guys in the room, successfully, surreptitiously and often illegally monitoring nearly every telephone call on the planet. They push supercomputers to the envelope and optimize ever CPU cycle. Yet simultaneously, these smart guys are simply pawns of a small group of Israeli intelligence agents who have managed to develop and get their software on various NSA projects.
In his review of the book in the New York Times, Christopher Dickey sums it up best when he writes of Bamford's habit of such conspiracy theories that "it's a fair bet that Bamford will find a way to work the bloodbath at the Taj Mahal hotel into the long NSA narrative that he began with "The Puzzle Palace" in 1982, followed up with "Body of Secrets" in 2001, and may well continue with paperback updates and further sequels after the present book. These are the kinds of details, or coincidences, that Bamford loves. In "The Shadow Factory" he piles one on top of another — events, addresses, room numbers — in a slapped-together text that often blends facts with speculation to evoke a pervasive atmosphere of conspiracy".
When Bamford is able to stick to the facts, which is about 2/3 of the book, he paints a frightening picture of the threats that the US is facing. Equally frightening was the response of the Bush administrations to the threats and attacks, which in some cases turned mince meat out of the Constitution. Bamford writes of Dick Cheney's attempt to give the President significant more control, while ignoring the need for separation of powers. There are many other such instances in the book. Yet when Bamford takes off his hat of reason and attempts to connect invisible dots, Christopher Dickey's observation should be kept in mind.
Seemingly on the brink of failure, the events of 9/11 recycled the NSA. For the astute reader who is able to discern between fact and fiction, The Shadow Factory is a fascinating read into an agency that still exists in the shadows. With a budget larger than the GDP of some countries, and a workforce that spans the globe, the NSA has long existed and thrived in the shadows that Bamford often describes so well.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase The Shadow Factory: The Ultra-Secret NSA from 9/11 to the Eavesdropping on America from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Amazon.com To Accept Game Trade-Ins
revjtanton writes "Amid all the discussion and argument about Gamestop's two-billion-dollar trade-in industry it seems Amazon.com is getting in on the action. Like Gamestop, Amazon asks for the games to be in good condition, however they offer just a few more dollars for your discarded game (Gamestop listed Left 4 Dead for the 360 at $24 while Amazon had it at $26.50 trade-in value). Gamestop had already ruffled feathers in the developer and distribution communities with its practice of accepting used games; does Amazon joining the practice legitimize it?" -
Amazon.com To Accept Game Trade-Ins
revjtanton writes "Amid all the discussion and argument about Gamestop's two-billion-dollar trade-in industry it seems Amazon.com is getting in on the action. Like Gamestop, Amazon asks for the games to be in good condition, however they offer just a few more dollars for your discarded game (Gamestop listed Left 4 Dead for the 360 at $24 while Amazon had it at $26.50 trade-in value). Gamestop had already ruffled feathers in the developer and distribution communities with its practice of accepting used games; does Amazon joining the practice legitimize it?" -
Outliers, The Story Of Success
TechForensics writes "Outliers, by Malcolm Gladwell, is subtitled "the story of success." It is a book that purports to explain why some people succeed far more than others. It suggests that a success like Bill Gates is more attributable to external factors than anything within the man. Even his birth date turns out to play a role of profound importance in the success of Bill Gates and Microsoft Corporation." Look below for the rest of Leon's review. Outliers author Malcolm Gladwell pages 301 publisher Little, Brown and Co. rating Excellent. reviewer Leon Malinofsky ISBN 978-0-316-03669-6 summary Success comes from external factors or unsuspected internal ones.
Outliers also tries to answer such diverse questions as what Gates has in common with the Beatles; why Asians have superior success at math; and the reason the world's smartest man is one of the least accomplished. All of these things are viewed in terms of generation, family, culture, and class. Outliers — those persons of exceptional accomplishment — typically have lives that proceed from particular patterns.
Chapter 1 is an examination of similar towns in Italy with vastly disparate life expectancies and no apparent reason. Though the towns were only miles apart, the life expectancy in Roseto was surprisingly longer-- longer, in fact, than any neighboring town in the region, making Roseto an outlier. The eventual explanation, namely, the prevalence of multigenerational families under a single roof with the attendant reduced stress of lifestyle, while not one of the book's more shocking revelations, nevertheless serves as an example of an outlier and the sometimes hidden causes of their status.
Chapter 2 seeks to answer the curious question why athletes on elite Canadian teams were all born in the same few months of their birth year. In a system in which achievement is based on individual merit, one would assume the hardest work would translate to the best achievement. The fact this criterion on was wholly overmastered by timing of birth was studied and showed that hidden advantage, namely being older and stronger than persons born later in the year of eligibility brought continuous, cascading, even snowballing advantage, which ultimately produced Canada's most elite players. If everyone born, in, say, 1981 was eligible to begin play only in a single year, then naturally the older boys, being larger and better coordinated, would dominate. Hockey player selection in Canada is shown to be a self-fulfilling prophecy, namely a situation where a false definition in the beginning invokes a new behavior which makes the original false conception come true.
Chapter 3 is far and away the most interesting in the book. It sets forth the so-called 10,000 hour rule, and in its course, shows why Bill Gates and the Beatles succeeded for essentially the same reason. Gladwell begins by noting that musical geniuses such as Mozart, and chess grandmasters, both achieved their status after about 10 years. 10 years is roughly how long it takes to put in 10,000 hours of hard practice. 10,000 hours is the magic number of greatness. Both Bill Joy at the University of Michigan and Bill Gates at Seattle's famous Lakeside school, two schools with some of the first computer terminals, had access to unlimited time-sharing computer time at essentially the beginning of the modern industry and before anyone else. Because both were absorbed and drawn into programming, spending countless hours in fascinated self-study, both achieved 10,000 hours of programming experience before hitting their level. Because hitting that level took place at exactly the time need for that level of computer expertise manifested in society, ability came together with need and unique uber programmers were born. The Beatles played seven days a week on extended stints in Hamburg Germany and estimated by the time they started their phenomenal climb to greatness in England that they had played for 10,000 hours. Subsequent studies of musicians in general in music school showed that elite, mid-level, and low-level musicians hewed very closely to the "genius is a function of hours put in and not personal gifts" school of thought: members of each group had similar amounts of total lifetime practice. This book makes a fascinating case that genius is a function of time and not giftedness, validating both Edison's famous saw about 98% perspiration and Feynman's claim that there is no such thing as intelligence, only interest.
The next chapter tells the tale of Bill Langen, whose IQ is one of the highest in recorded history. However, he was a spectacular failure in his personal life. Prof. Oppenheimer, on the other hand ascended to work on the Manhattan Project though in graduate school he had tried to poison his adviser. The difference is shown to result from an astonishing lack of charisma and a sense of what others are thinking in Langen, and an extreme personability in Oppenheimer, which is said to show that success is not a function of hard work or even genius but more of likability and the ability to empathize.
Chapter 5 tells the tale of attorney Joseph Flom, of Skadden Arps Slate Meagher and Flom. According to Gladwell, Flom did not succeed through hustle and ability but rather by virtue of his origins. Intelligence, personality and ambition were not enough, but had to be coupled with origins in a Jewish culture in which hard work and ingenuity were encouraged, and in fact a necessary part of life. This, along with having to scrabble in a firm cobbled together out of necessity because Jews were not hired by white-shoe law firms, gave the partners and unusual and timely expertise: Flom's firm decided it had to take hostile takeover cases when no one else would, and that turned Flom and his partners into experts in a kind of legal practice just beginning to boom when they hit their stride.
Chapter 6 traces the influence on a person's culture of origin and how it marks him more in the present day then may be generally appreciated. Psychological experiments proved that a so-called culture of honor, such as that found in the South, where people of necessity had nothing but their reputations, caused the products of such a culture to be much more aggressive in defending themselves, their reputations and honor.
Chapter 7 traces the influence of Korean culture and deference to superiors as significant facts in a high number of plane crashes in the national airlines. It was only when cultural phenomena such as the inability to contradict a superior were corrected by cultural retraining that Korean Air Lines began to achieve the same safety levels of the airlines of other countries. This chapter is interesting for its treatment of flight KAL 007 alone.
Chapter 8 will have strong interest for most Slashdot readers. There is an Asian saying that no one who can rise before dawn 360 days a year can fail to make his family rich. The hard, intricate work of operating a successful rice paddy, equal in complexity to an organic chemical synthesis almost, is shown to have produced an ability for precision and complexity which outstrips growers of other crops. The fact that Asian languages in many cases use shorter and more logical words for numbers confers a strong early advantage which, like the age advantage in the hockey player example, snowball significantly over time. Gladwell argues Asians are not innately more able at math, but culturally more amenable to it based on the felicity of a language which is to our language as the metric system of weights and measures is to the English.
The final chapters of the book show that inner-city kids placed in intensive study schools achieve as much as kids from rich suburbs. The reason is found to be cultural: the long hours in those schools take up evening hours which would be spent at home and also take up summer hours, which in the special schools are full of math instead of the less than well-directed extracurricular pursuits typically found in the lower-income family home.
On the whole this book is going to provoke some ire and certainly some head scratching. It is bound to bear out in the minds of many Prof. Richard Feynman's assertion, which we may modify to say that giftedness and IQ are not inherent but conferred by accidents or benefits of culture, or at least via mechanisms that are not obvious. Even if such a conclusion sounds laughable to you, this book may change your thinking.
You can purchase Outliers from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Securing PHP Web Applications
Michael J. Ross writes "The owners and the developers of typical Web sites face a quandary, one often unrecognized and unstated: They generally want their sites' contents and functionality to be accessible to everyone on the Internet, yet the more they open those sites, the more vulnerable they can become to attackers of all sorts. In their latest book, Securing PHP Web Applications, Tricia and William Ballad argue that PHP is an inherently insecure language, and they attempt to arm PHP programmers with the knowledge and techniques for making the sites they develop as secure as possible, short of disconnecting them from the Internet." Keep reading for the rest of Michael's review. Securing PHP Web Applications author Tricia Ballad, William Ballad pages 336 publisher Addison-Wesley Professional rating 7/10 reviewer Michael J. Ross ISBN 978-0321534347 summary A wide-ranging guide to PHP security. The book was published by Addison-Wesley on 26 December 2008, under the ISBN 978-0321534347. The publisher maintains a Web page for the book, where visitors will find a detailed description, the table of contents, and a sample chapter ("Cross-Site Scripting," Chapter 10) only three pages in length — undoubtedly a record. That is essentially all one will find on that Web page. Most technical publishers offer far more information on the Web pages for each one of their books — such as the preface and index online, updates to the book's content (including reported errata, confirmed and otherwise), descriptions of the chapters, information about and pictures of the author(s), feedback from readers and the media, and, perhaps most valuable of all, the sample code used in the given book. (However, that is less of a factor with this particular book, since it does not contain much sample code.) Many such publisher pages even have links to book- or technology-specific forums, where readers can post questions to the authors, and read other people's questions and the replies. Addison-Wesley, like all of the Pearson Education imprints, has through the years proven quite sparing with the supplementary online content, thereby no doubt reducing the number of prospective readers and other traffic to their sites.
Despite its fairly modest length (336 pages) in comparison to the average programming book being published these days, Securing PHP Web Applications tries to cover a sizable number of topics, in five parts, which encompass 17 chapters: general security issues; error handling; system calls; buffer overflows and sanitizing variables; input validation; file access; user authentication; encryption and passwords; sessions and attacks against them; cross-site scripting; securing Apache and MySQL; securing IIS and SQL Server; securing PHP; automated testing; exploit testing; designing a secure application; and hardening an existing application. The book concludes with an epilogue on professional habits to improve the security of one's applications, an appendix describing additional resources, a glossary, and an index. Throughout the book, the authors illustrate key ideas with the use of a sample application — in this case, a Web-based guest book.
The first chapter, which is the only one in the first part of the book, is rather brief, but does prime the reader for all the material that follows, because it explains the inherent security problems of Web applications, and explains the dangers of some of the inadequate measures that naive programmers can take, such as security through obscurity, and the common belief that hackers only go after major Web sites.
Chapter 2 focuses on error handling, but begins with an example of SQL injection, and how effective it can be against the first iteration of the guest book application code. The most potentially confusing part of the discussion is when the authors show an SQL injection attack that perverts an INSERT statement by injecting it with an SQL command to drop a table, and the two commands are separated by a semicolon. But then instead of discussing how multiple SQL statements can be separated by semicolons (well, depending upon one's server settings), they instead discuss separating PHP commands was semicolons, but not SQL commands. Nonetheless, readers will find some good advice on handling unexpected input and using a centralized error-handling mechanism, even if quite simple. Also, the question of whether or not to accept HTML in user input, is briefly addressed. However, the material would be more useful if the authors were to explain specifically when htmlspecialchars() should be used instead of htmlentities(). Also, the option of using standard bulletin board codes (such as [b]bold[/b]) should have been mentioned, if only briefly with references to outside resources. At the bottom of page 22, the bare regex following a !"~" is not valid PHP (or even Perl, which it much more resembles). Lastly, one should not follow the recommendation of providing absolutely no feedback to the user as to what characters were invalid in the text they entered. Hackers gain nothing from being told the obvious, that HTML tags are not allowed; but legitimate users will be incensed when told only that the system didn't understand their input, with no indication as to how to make it acceptable.
In the third chapter, the authors explain the obvious danger of using unsanitized user input within a call to the operating system, such as exec() or system(). The discussion here assumes that you are on a *nux server, not Windows. Two PHP commands are suggested for sanitizing user input, as well as the option and advantages of building a custom API that is limited to only the system calls that should ever be executed within your Web application. On page 33, their test code appears to assume that register_globals has been enabled (so the GET variables in the malicious URL are automatically instantiated and set to the values in the URL), which is disappointing for a book on PHP security, since the dangers inherent in register_globals are so severe that it is now disabled by default, is deprecated in PHP version 5.3.0, and will be completely removed in version 6.
In Chapter 4, readers get an overview of program and data storage on a computer, including buffers, stacks, and heaps, as groundwork for learning what buffer overflows are and how hackers can try to exploit them to execute database and operating system statements, including using your server as a staging point for remote exploits and denial-of-service attacks. The fifth chapter dovetails nicely with the previous one, because it discusses input validation, which is a key component of avoiding boundary condition attacks. The authors explain the importance of validating tainted data, using character length and regular expressions. One simple countermeasure to such attacks that the authors fail to mention, is simply setting a maximum input length ("maxlength") on HTML "input" tag fields. After all, most entry fields on forms are input tags — not textarea tags, for which the maxlength attribute only specifies wrapping. Using maxlength does not prevent manipulation of POST values, but does prevent the less knowledgeable attacker from overflowing input tag fields.
Chapter 6 explains the risks in working with local and remote files, and why it is critical to not allow mischievous users do such tricks as inserting a pathname in a filename, when your code is expecting only a simple filename. Unfortunately, some of the code and claims in this chapter are suspect: On page 70, the value of $path_to_uploaded_files is missing a needed trailing forward slash. The suggested method of processing malicious file paths could be made much more simple and secure with the use of basename(). The file_get_contents() attack shown on page 71 again seems to assume that register_globals is enabled; even if it were enabled, the exploit wouldn't work because $file is always set to a value in the script code. The authors seemingly believe that GET variables can override anything in a script. Nonetheless, their advice about handling user-uploaded files is spot on.
Part 4 of the book focuses on user security. The first of its chapters covers user authentication and authorization — combining the two for their sample application — and starting with usernames and passwords. Access denial due to invalid username or password is supposedly illustrated by Figure 7.2, but all that it illustrates is that a concept that needs no visual depiction is not made more clear by trying to represent it with a confusing image. The authors provide a thorough discussion of authentication purposes and methods, as well as password encryption and strength. Yet they provide no rationale for setting the default values for usernames, passwords, and e-mail addresses to " " simply because the columns are non-nullable. After all, a record would only be added to the table if those values were known. Also, in their validateUsernamePassword() function, they've mistakenly commented out the first "return FALSE;" and they create unused variables $username and $password.
Chapter 8 provides an overview of various types of encryption, particularly for passwords, and some recommendations for PHP-supported algorithms. One blemish in this discussion is the claim that the longer the key for decryption, the longer it will take for your application to load the data (presumably the encrypted text) — which doesn't make sense. Also, their password() and login() functions reference class member names of an object not yet defined or explained. Code out of context like this can be confusing to the reader.
Sessions are a key component of maintaining and securing the identity of an authenticated user as she goes from one page to another in your PHP application. In Chapter 9, the authors describe the three major categories of session attacks: fixation, hijacking, and injection. The next chapter addresses cross-site scripting (XSS), but runs only three pages, and provides no examples of an XSS attack, which would have been helpful for the reader to understand how such an attack could try to compromise his PHP code, and what sort of malicious code to look for in his site. However, references to four open source XSS filtering projects are provided, in case the reader would like to learn more about them.
The fifth part of the book is devoted to securing whichever server environment on which you choose to host your application — Apache and MySQL, or IIS and Microsoft SQL Server, as well as PHP. In the chapter on PHP, the authors present the Zend Core release of PHP, which can save developers time in installing components of the LAMP stack, and also save them from reinventing the wheel, by using the Zend Framework. Other techniques for hardening PHP are discussed. Chapters 14 and 15 explain how to use automated testing and exploit testing, to increase your application's security, using powerful exploit testing tools — free and proprietary.
The sixth and final part of the book contains two chapters, which purportedly discuss the advantages of designing security into a new application right from the start, and how to improve security in an application that has already been built. In the former chapter, the authors stress the importance of balancing no design ("Skip reading Slashdot for one day...") and too much design (i.e., stalling). But the material mostly consists of the basics of designing a Web application, with no new information on security, and concludes with a brief reiteration of security principles detailed in earlier chapters. The latter chapter offers some good advice on having separate development and test environments, in addition to the production environment. The principles expounded in each of the two chapters, do not overlap at all, and yet together they apply equally to new applications under development just as much as they do to finished applications; splitting the principles up does not make sense.
Sadly, the book does not live up to its potential. In general, much of the sample code is sloppy, as exemplified by the instances noted above. The authors and the technical reviewers should have tested the attacks, and thereby found which ones don't work. Even the HTML should not be used by any new Web developer as an example of quality code that adheres to leading standards. In the HTML that they have their sample PHP code generate, the tag attribute values are in single quotes, and not double, which means all of that code would need to be changed to make it compliant with XHTML 1.0. Moreover, by choosing to use single quotes for both the attribute values and the PHP strings, the authors end up having to escape every single attribute value quote mark, which wastes space and looks ridiculous. They repeat this at the end of Chapter 6, but this time with all double quotes. Also, some of the technical decisions are rather odd, such as their setting those default values to spaces in the user table, noted earlier. A few terms are used strangely, as well, such as their statement that IIS's footprint is the number of entry points to it; actually, a Web server software's footprint generally refers to how much memory it consumes. Every chapter ends with a summary, titled "Wrapping It Up," none of which add any value to the book. There are at least three technical errata in the book that should have been caught: spaces in "u + rwx, go + rx" (page 76), and the invalid addresses "www.blog/modsecurity.org" (page 215) and "www.ballad-nonfiction/SecuringPHP/" (page 288; adding ."com" does not fix it).
On the other hand, the book's marketing copy claims that "Tricia and William Ballad demystify PHP security by presenting realistic scenarios and code examples, practical checklists, detailed visuals..." and that is certainly a fair claim. Most of the explanations are straightforward and informative. As a side note, kudos to Addison-Wesley for printing this book on recycled paper; one can only hope that all publishers adopt that policy.
The primary value of Securing PHP Web Applications is that it touches upon security topics that are often glossed over or completely neglected in other PHP security books and articles. This is important, because online miscreants will be searching out every possible chink in your Web site's armor. You should do the same, before they strike — and this book shows how.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Securing PHP Web Applications from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
How To Be A Geek Goddess
stoolpigeon writes "The geek world is dominated by those of the male persuasion. For those of us working in a technology related field, or who spend a considerable amount of time pursuing high tech leisure, we usually find women to be in the minority. I've seen considerable discussion over the years on how to change this imbalance but I think it is safe to say that right now that it remains. Many women are interested in using technology, they just don't want to dive in to quite the same depth. Or they may not be interested in the way most men approach it. Columnist and tech-writer Christina Tynan-Wood has attempted to come to their rescue with her book How To Be A Geek Goddess." Read below for the rest of JR's review. How To Be A Geek Goddess author Christina Tynan-Wood pages 343 publisher No Starch Press rating 7/10 reviewer JR Peck ISBN 978-1-59327-187-9 summary Practical advice for using computers with smarts and style. I have to say that the title misled me. I picked this book up thinking that it would be perfect for my wife. I wouldn't call her a geek, she doesn't have the same passion for working with tech stuff that I have. But she is knowledgeable and knows quite a bit more about IT than many of my guy friends. She is very comfortable working with vi and has written a decent amount of C over the years for various embedded shops. Unfortunately she found the book to be overly basic and wasn't too interested. This book is about becoming conversant in the very basics, explained with an attempt to frame everything in terms of a woman's perspective. So if you are a woman who is already very comfortable in the IT space, or if you are thinking of buying this for someone like that, you may want to dig through a copy and see if it will be useful. My guess is that it wont.
The other group that may still find this book to be useful, but to a lesser degree than they may like is anyone using any operating system other than windows. The first chapter, which discusses how to purchase a computer frames the operating systems question as "Apple or Windows?" There is no mention of any other option. As far as the options given, the author lands pretty firmly on the side of Microsoft and so when platform plays a role in topics covered later in the book it is pretty much from a Windows perspective. There are plenty of topics covered that are not really OS dependent, such as anything web related (which is a lot of the book) or the non-computer sections covering hardware like digital cameras, monitors and PDAs.
Someone who is an avid computer user and die hard fan of Linux or Apple systems may look at what I've just said and decide that this book is completely useless. And for them that is going to pretty much be the case. That leaves the question of who could use this book. It is quite possible that this could be an absolute God-send to someone who is just about computer illiterate and quite content to stay on the dominant platform of the day. By extension this could become a useful tool for the true Geek that wants off the support treadmill.
There are probably some out there who are really tired of answering questions about what type of PC to buy. Or having to drop by a relative or friend's house to set up wireless or the new printer. It could even be worse, being dragged into Frys Electronics or Best Buy and participating in purchasing a new Vista machine. The solution to busting out of that cycle could be handing over a copy of this book, and if it brings true freedom it could be worth every penny.
The topics covered in the book are dressed up in analogies to what may be considered more traditional female fare. If you find this to be bothersome, don't blame me, I'm just the messenger. Tynan-Wood discusses for instance, building a software "wardrobe." And I'd like to note that within the Windows space she does offer up many free (as in speech and beer) applications including the likes of The Gimp, Pidgin and Audacity. Tech accessories are handled in a section on "The Lust for Luxury Gear". Setting up a new system and getting things dialed in is part of the "housebreaking" process. In fact if you've ever flipped through an issue of Cosmo or Vogue, you should have a decent idea of the tone and style of discourse in this book.
All of the basics are covered including setting up a home network and how to set up proper security. Each section gives basic and practical advice on making decisions on hardware and software, almost always offering multiple options. And while the packaging is different than anything I've ever seen in a tech book, the underlying information is the same. Someone who reads this through will come away knowing the difference between adware, spyware and viruses as well as what a botnet is.
Dispersed amongst the regular text, which is accompanied by many black and white illustrations, are little "Dear Abby" type questions and their accompanying response. These give a good insight into the level of reader the book aims to help. One question answered is the following, "When my sister-in-law emails me files, the filenames always have three letters at the end that mean nothing to me. Files on my own computer don't seem to have them, so I thought it was one of her crazy systems. I deleted the letters and gave the files names I liked. Oops. You are probably laughing at me because I obviously did something stupid. Now my computer can't open any of those files. It gave me a good excuse not to read her novel or look at 2,000 blurry vacation photos but what did I do wrong?" The answer goes on to explain file types, extensions and some basics on managing them in windows.
Along with covering how to purchase and set up hardware the book covers the same for software. There is also information on security, not just local but also how to think about safely navigating the web and what is available there. The last two sections cover the social web and relationships on line, with everything from dating sites to cyber sex. There is also an entire section on watching over children and helping them to use computers safely.
The information is accurate and covers the basics very well, within the parameters I've described above. For the proverbial grandmother or mom at home, this book is probably going to give them all they need and probably just a touch more than they may want. I guess that is the bottom line. I think this book will give a novice a strong sense of confidence and independence. I am sure there are women out there who don't want to rely on anyone else to help them with computer issues but they don't want to really dig deep into highly technical information. This may be exactly what they need.
On the other hand, and I guess this comes from my more cynical side, I've dealt with plenty of men and women who don't know much about computers and they don't want to know. They seem to revel in their ignorance and are quite happy to just rely on others to keep things working for them. Unfortunately I am unaware of any way to make them read this or to make the information their own. Reading books to learn tends to fall into a geek category of its own. Until there actually is a series on this in Cosmo or they find a way to fit into American Idol or something, there will still probably be those who call on us to take care of their gear.
All that said, sometimes I forget that I'm a statistical anomaly. Most people don't run Linux, or OS X for that matter. Even more could care less about why they difference between ogg and mp3. For that mass of folks out there, especially the women, this may be the only computer book they ever find interesting. Someone like that would probably rate it a ten. I found the focus too narrow and the title set up expectations I didn't think it met so I've knocked it down to seven.
You can purchase How To Be A Geek Goddess from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Joomla! Web Security
Stephen Brandon writes "It used to be that to set up a database-backed web site required at least a server guy, a database administrator, a programmer, and a designer. Joomla! and other modern CMS systems have opened the door to allow non-administrators to be able to set up complete e-commerce or informational sites, using great free software and easy-to-find commercial hosting. What then of security? A new book by Tom Canavan, Joomla Web Security, aims to bridge the knowledge gap, introducing Joomla! admins to a set of security tools, and skills sometimes found lacking in the Joomla! community." Read on for the rest of Stephen's review. Joomla! Web Security author Tom Canavan pages 248 publisher Packt Publishing rating 7 reviewer Stephen Brandon ISBN 1847194885 and 978-1-847194-88-6 summary Useful but needs more Joomla! 1.5-specific content Joomla! Web Security is Packt Publishing’s eighth Joomla! title, and they are to be congratulated for providing much-needed documentation for Open Source projects. Written by Tom Canavan and published in October 2008, it can be found under ISBN 1847194885 and 978-1-847194-88-6.
According to the back cover, this book is written for “anyone seriously using Joomla! for any kind of business With this book they will be able to secure their sites, understand the attackers, and more, without the drudging task of looking up in forums, only to be flamed, or not even find the answers.” Prior knowledge of Joomla is assumed, but prior knowledge of securing websites is not.
Why bother with a book on Joomla! security? In my experience, many people come to Joomla! from a design and content perspective. They are not server gurus, just people who know enough about design to select a good-looking template, then organize suitable content to meet the informational and marketing needs of the organization or business for whom they work.
Template – content – web host – the new site is up and running in short order. The first time the site goes down or the site is hacked however, such a site designer/administrator may well be struggling as the back cover quote suggests.
Although this volume is the only current one that I could find concentrating on Joomla! security, the Joomla! team does have a dedicated Security Task Force, and a fair amount of security information starting from http://docs.joomla.org/. The information on joomla.org, while comprehensive, is not as in-depth as most of the information in Joomla! Web Security.
Written in the author’s chatty, easy-to-read style, chapter 1 covers a lot of basics of Joomla! security, from checking that the installation files have not been tampered with, to choosing hosting, some php and apache settings, permissions, and setting up security metrics.
Given that the choice of hosting is one of the most crucial decisions determining site security and uptime, the author chooses to concentrate on some unexpected angles. Granted, the checklist of physical security is comprehensive (“Is there water detection under this raised floor? Do you have a man-trap entrance to the building?”), but the target audience might be better served by a similarly comprehensive checklist of how to choose safer shared hosting. Notable by its absence was any mention of suPHP, PhpSuExec (see tutorial) or any similar scheme for running PHP files under the ownership of the account-holder rather than the standard httpd or nobody user. Without this, any other client on your shared hosting can read your database credentials and almost certainly gain read-write access to your database — with it, clients on shared hosting are much more efficiently segregated, making shared hosting a more viable option for less security-critical installations.
Absent too was mention of Joomla! 1.5’s FTP layer. Whilst in Joomla! 1.0 you needed to set 777 permissions in order to install extensions or upload images and files via Joomla!, the FTP layer allows Joomla! to FTP these files to itself, maintaining a tighter permissions structure in the absence of suPHP or PhpSuExec.
The section “Setting Up Security Metrics” however shows the author’s strengths. This, chapter 2 “Test and Development” and chapter 10, “Incident Management”, prescribe a methodical approach to security, ensuring that you are well-prepared for any eventuality. For the more mission-critical of the sites that I administer, this has prompted me to review my procedures, but I suspect that these are chapters that will be glossed over by a majority of the target audience.
It’s this sort of dichotomy that mars the book slightly for me. What I would like to give to the Joomla! webmasters that I support as part of my day-job is a book that clearly explains common issues in the installation and administration of Joomla!. Joomla! Web Security seems to promise this, but isn’t willing to provide all the detail required by the less-experienced (no mention of what numerical file permissions actually mean, nor how to obtain the MD5 checksum of a file you downloaded), and seems a little too eager to jump up to higher-level management issues, as worthy as these topics are. And why is there a mini-tutorial on how to use the software development management system Lighthouse, when there are barely any step by step instructions with screenshots on specifically Joomla! topics anywhere in the book?
On a positive note, chapter 3’s “Tools” introduced me to some previously-unknown packages as well as some old friends. Every Joomla! administrator should become familiar with these: HISA (J! 1.0 only), the Joomla! Tools Suite (J!1.5 only in legacy mode), Joomla! Diagnostics (some problems on J!1.5), JCheck (J!1.5 only works in cron mode). The obvious issue is that many of these don’t operate fully or at all for Joomla! 1.5. The sections on NMAP, Wireshark, Metasploit and Nessus however are well written and relevant.
If anyone needs convincing that the threats to a Joomla! site are real, point them to the central chapters of this book. Here Tom Canavan lays out “How the Bad Guys Do It”, and details the anatomy of attacks. This is a real eye-opener and should be required reading for any budding site administrator. It’s good to see a checklist of further topics for study (p. 144).
Finally we return to more specifically Joomla! topics. A section of recipes for .htaccess and php.ini files covers such useful topics as apache’s mod_redirect, password protection and access control. The “Log Files” chapter is pleasingly Joomla!-specific and also covers some logfile analysis tools.
Joomla! Web Security is rounded off with an appendix summarizing some of the key points of the book, and listing port numbers, apache status codes and TLD domain codes. The list of critical settings for .htaccess and php.ini is prescriptive and useful in this format.
While writing this review I noticed that the author has written a previous volume on a similar topic: Dodging the Bullets — A Disaster Preparation Guide for Joomla! Based Websites. Critical reviews of that book suggested that it was aimed towards the larger corporate user of Joomla!, and held little for the Joomla! administrator who simply needed to know and understand the settings and tools required for site security. This volume redresses the balance somewhat, with more hands-on advice, and I would recommend it over Dodging the Bullets for the average Joomla! administrator.
Though Joomla! Web Security is a worthwhile addition to a Joomla! bookshelf, my wish would still be for an even more practical guide, particularly one addressing J!1.5 developments and going into much more detail about selecting a hosting partner. Even without this, however, there is a ton of good information here and I recommend the book.
Availability: On the publisher’s web page for this book you will find the TOC, general introduction, a link to the sample chapter, code download, and facilities for on-line purchase. Various discounts and bundles (including Adobe e-book) are offered on the site; hard copies are also available through Barnes and Noble and other usual channels.
Stephen Brandon is author of the popular MetaMod Joomla! module and web manager for an international non-profit organization."
You can purchase Joomla! Web Security from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Collective Intelligence in Action
lamaditx writes "The book Collective Intelligence in Action shows you how to apply theory from Machine Learning, Artificial Intelligence and Data Mining to your business. The goal is to create systems which make use of data created by groups of people — i.e. social networks — and abstract from these to gain new or additional information. Some of you might think "just another kind of Web 2.0." This is one application you might think of, but the input and output format do not matter that much. You can use these methods anywhere as long as the amount of data is big enough. You will find some examples related to the latest web technologies to explain methods, but the code is rather generic. Also, you won't find a lot disturbing details about HTML, HTTP and the like." Keep reading for the rest of Adrian's review. Collective Intelligence in Action author Satnam Alag pages 397 publisher Manning Publishing rating 8 reviewer Adrian Lambeck ISBN 1933988312 summary Shows you how to apply theory from Machine Learning, Artificial Intelligence and Data Mining to your business.
There are three main parts to Collective Intelligence in Action. The first part explains how to gather data from external sources or internal repositories. The second part, "Deriving Intelligence", explains how to analyze the collected data. This is the part where you gain information and create new ideas. This does not help you much unless you find a way to use this in you application. The third part — which is also the shortest — provides you with some information on how to use the results in order to build user centric applications. This is obviously the best way to create a unique difference no matter what kind of services you may want to provide.
I have to admit that I waited for such a book for some time. After studying Artificial Intelligence — a modern approach — maybe THE book about AI — I felt like knowing a lot theory but missed the practical aspects. Several AI concepts are used in this guide but you don't create an AI system or an agent. Don't mix up those two even though they are similar.
The "in Action" series in supposed to show how things are done in practice. You can expect a lot of Java code samples and advice. Several open source tools are introduced to enable you to build your own system. These are also Java tools. It's up to you if you prefer to use Java or some other language. From my perspective it does not really matter which language you choose because the concepts can be implemented using other languages as well. The main drawback is that you will not be able to use Java Data Mining API (JDM) which is used extensively.
The first chapter introduces the main terms and concepts of the book. It is available here together with chapter 2 and the source code. One thing I consider to be an important prerequisite are mathematics. Most aspects are easy to read and understand if you have some knowledge about statistics and linear algebra. On the other hand you can still get it with basic math because the explanation is well written. The same holds for standard concepts and algorithms like word stemming, decision trees, Bayesian networks or k-means. These are summarized with the most important properties such that you don't require prior knowledge. You will notice that the chapter, like the following ones, ends with a large amount of references.
Personally I find it hard to read formulas when they are described in words (like: take the square root of x and multiply with y) instead of the mathematical notation. This is due to the fact that you cannot look up the formula quickly, because it does not stand out from the text. It might have been better to provide the formula in words and a mathematical notation as well. You will find some formulas in mathematical notation but some are really hard to read since they are printed in a font size of about 4 while the text is written in 10.
Coming back to the content: The other sections of the first part show you how to gather data from external online sources. Of course you can apply the same concepts to offline sources or other data repositories. The key is to collect usable data to derive intelligence later on. One example is generating tags from a number of sources and associate each tag with a weight relative to the occurrence of the tag. The result will be one of the well known tag clouds.
You will need a persistent data storage such as a database for the results and access them in the second step. Unsurprisingly you will find several ER diagrams to create the right data structure. A big plus is that the author tells you explicitly the important facts which can be derived from formulas or (ER-) diagrams. Reading the text is much more convenient this way. He will also provide implications for the database design when discussing ER diagrams. You can be sure that you do not miss the important points.
The second part starts with an introduction of data mining and machine learning terminology and concepts. You are also introduced to the JDM API which proves to be helpful in the future. You may start looking for a substitute if you choose not to use Java. The extensive usage of design patterns in almost every aspect eases the change from Java to an alternative language. You get to know the common methods and how to implement them. I consider this part to be more or less craftsmanship . There is some magic to it if you never heard anything about the utilized methods.
The only thing that caught my eye was the calculation of the inverse of a matrix. The notation is pretty common when solving linear equations, but you should never (except in rare cases) use the plain matrix inversion operation when implementing your solution. The reason is that the amount of effort to be undertaken grows exponentially. The more data is used, the larger the matrix will be — and thus the longer it will take to compute the inverse. Instead one should use, e.g., LU decomposition. The footnote points you to use the weka.core.matrix.Matrix class, which uses LU decomposition, but make sure about that if you use some other package or some other language.
The last 80 pages enable you to make use of your information gain and integrate it in the application. This is also the shortest part but that is due to the fact that the heavy lifting was done in parts one and two. Application means basically querying your data in the correct way to generate the right recommendations for your users. One part of that is searching and the other one is recommending. You may imagine the necessary effort to undertake if you ever happened to take a look at the way search engines work. The author deals with that by using the open source search engine Nutch together with Lucene in such a way that you just use the interfaces. This approach enables the author to keep the last part as short as it is.
I consider "Collective Intelligence in Action" to be a very good book. It is thought through from beginning to end. Examples are not just presented to the reader, but evolve step by step. You know why things are done the way they are, which enables you to change every aspect in a way you need to. From my point of view this is the right way to do it because a copy-and-paste solution would not get the job done. I pointed out some issues that could be done better such as too-small fonts in graphics or missing literature references in the text. However these are not major problems or content errors that should be blamed on the author. Finally I think you will gain from this book because it addresses Web 2.0 to some degree but is generic enough for other applications as well.
Adrian Lambeck is a graduate student in "Media and Information Technologies" and uses C# more often than Java.
You can purchase Collective Intelligence in Action from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Abraham Lincoln the Early Adopter
Hugh Pickens writes "On the 200th anniversary of his birth, President Abraham Lincoln's popular image as a log-splitting bumpkin is being re-assessed as historians have discovered that Lincoln had an avid interest in cutting-edge technology and its applications. During the war, Lincoln haunted the telegraph office (which provided the instant-messaging of its day) for the latest news from the front; he encouraged weapons development and even tested some new rifles himself on the White House lawn; and he is the only US president to hold a patent (No. 6469, granted May 22, 1849). It was for a device to lift riverboats over shoals. 'He not only created his own invention but had ideas for other inventions, such as an agricultural steam plow and a naval steam ram, [and] was fascinated by patent cases as an attorney and also by new innovations during the Civil War,' says Jason Emerson, author of Lincoln the Inventor. But Lincoln's greatest contribution to the war effort was his use of the telegraph. When Lincoln took office the White House had no telegraph connection. Lincoln 'developed the modern electronic leadership model, says Tom Wheeler, author of Mr. Lincoln's T-Mails: The Untold Story of How Abraham Lincoln Used the Telegraph To Win the Civil War. At a time when electricity was a vague scientific concept and sending signals through wires was 'mind boggling,' Lincoln was fascinated by the telegraph and developed it into a political and military tool that allowed him to project himself to the front to monitor and track what was going on. 'If he were alive today, we'd call him an early adopter,' says Wheeler." -
Abraham Lincoln the Early Adopter
Hugh Pickens writes "On the 200th anniversary of his birth, President Abraham Lincoln's popular image as a log-splitting bumpkin is being re-assessed as historians have discovered that Lincoln had an avid interest in cutting-edge technology and its applications. During the war, Lincoln haunted the telegraph office (which provided the instant-messaging of its day) for the latest news from the front; he encouraged weapons development and even tested some new rifles himself on the White House lawn; and he is the only US president to hold a patent (No. 6469, granted May 22, 1849). It was for a device to lift riverboats over shoals. 'He not only created his own invention but had ideas for other inventions, such as an agricultural steam plow and a naval steam ram, [and] was fascinated by patent cases as an attorney and also by new innovations during the Civil War,' says Jason Emerson, author of Lincoln the Inventor. But Lincoln's greatest contribution to the war effort was his use of the telegraph. When Lincoln took office the White House had no telegraph connection. Lincoln 'developed the modern electronic leadership model, says Tom Wheeler, author of Mr. Lincoln's T-Mails: The Untold Story of How Abraham Lincoln Used the Telegraph To Win the Civil War. At a time when electricity was a vague scientific concept and sending signals through wires was 'mind boggling,' Lincoln was fascinated by the telegraph and developed it into a political and military tool that allowed him to project himself to the front to monitor and track what was going on. 'If he were alive today, we'd call him an early adopter,' says Wheeler." -
Beginning Portable Shell Scripting
Joe MacDonald writes "The earliest UNIX shell I encountered was the Bourne shell on a SPARCStation 2 at my university. As with many students of my generation, prior to that nearly all of my exposure to command line interfaces was some variant of DOS. I was quite proficient with the primitive scripting language that was available on such platforms but I immediately felt far out of my depth in this new environment. The commands seemed arcane, possibly dangerous, and almost immediately I regretted stepping into this unfamiliar wilderness without some sort of guide." Read below for the rest of Joe's thoughts. Beginning Portable Shell Scripting: From Novice to Professional author Peter Seebach pages 376 publisher Apress rating 4/5 reviewer Joe MacDonald ISBN 1-4302-1043-5 summary A guide on how to write portable shell scripts.
It was probably a few weeks after that first, rough introduction that I returned for another round with this strange but somehow seductive tool, armed with a book I'd found and a determination to learn it's secrets. I had no idea then that seventeen years later I'd still be learning new tricks, discovering new features and taking so much pleasure from sharing what I've learned with others. In fact, in those early forays into the realm of shells and scripting, I didn't even really have a strong concept of the separation between the shell and the operating system, so at the time I couldn't have conceived of how much fun I would have in later years discussing and debating the relative strengths and weakness of shells with friends and colleagues, but it is probably my favorite touchstone of computer geek conversation. Discussion of shell features, scripting tricks and semantics almost always result in my learning something new and interesting and having a new tool to add to my collection.
Peter's book, Beginning Portable Shell Scripting, therefore may sound like something intended as a gentle introduction, aimed at the initiate — the sort of text I'd been seeking to carry with me when I first attempted to write what I thought of as "batch files" on that now-ancient UNIX machine — but there's more truth in the subtitle, From Novice to Professional, than one might expect. He writes in an accessible, at times conversational, style and presents detailed technical information alongside a mixture of anecdotes and historical detail that does more than simply serve as a technical reference, it helps the reader understand a great deal about why things are the way they are. It was such an entertaining read that I frequently found myself skipping ahead, reading a section I knew was coming up, then resisting the urge to just keep going from that point. The first of these I encountered on page 18 in which he discusses the relative portability of printf in shell scripts. I knew what he knew, it's clearly non-portable and should be avoided, and thoroughly enjoyed the explanation of how he determined his (and by extension my) assumption was in error. Another on page 108 is the sort of good advice all UNIX users, not just those aiming to write good scripts, should take to heart. Many times, though, I've related precisely the same advice to colleagues to be met with confused stares, so it certainly bears repeating.
This book is a desktop reference in the truest sense of the term for me, it is an interesting, at times laugh-out-loud amusing, discussion of how to write shell scripts that will work on the widest possible range of Bourne-derived and POSIXly correct shells and why this is a desirable goal. In true UNIX tradition, the author doesn't provide simply a set of rules, but guidelines that will help you find your own way through the task of creating portable, maintainable shell scripts.
The real meat of the book begins in Chapter 3 (more on Chapter 2 in a moment) with a discussion of control structures and redirection, the latter being perhaps the defining characteristic of UNIX command line interfaces. I struggled somewhat with trying to decide if redirection would be better discussed after the material on how the shell parses tokens, presented in the first part of Chapter 4, but it does seem that the correct logical grouping is the one presented. It would be easy to get lost, for example, in the semantics of why the same streams of redirection tokens behave differently on different shells, but the key concept in the early chapters is that of many tools, each doing a specific task, working in concert. That objective is achieved quite effectively.
Chapters 5 and 6 go into detail (possibly too much for some, just right in my opinion) on how UNIX executes shells and how shells can spawn other shells, the costs and the benefits and the available alternatives for one to make an informed decision. Frequently there isn't one right answer whether some activity is better done in a script, in a shell function or in a subshell, but the material here will certainly aid in making those determinations. My personal bias being almost always toward writing a shell function — perhaps an indication I've had too much exposure to C programming, perhaps more due to a frugal upbringing and my own sense that spawning a whole new shell to do something is overkill — had me wishing for a larger section on the value of such constructs, but there should be enough there for me to win some converts to my cause.
By far the sections I learned the most from, however, would be Chapter 7: Shell Language Portability and Chapter 8: Utility Portability since I actively avoid exposure to other shells. I have my two preferred options and a third that I will use when presented with no alternative. While this does mean I know "my own" shells very well, it also means that I often bump into the furniture, so to speak, when I find myself using a new shell. These chapters haven't been immediately useful to me, but I know they're the ones that I'll be turning to in the future, I've needed something like them in the not-too-distant past, after all.
The final three chapters assemble the information presented in the earlier sections and suggest a sort of "best practices" approach to writing scripts. Concepts like "degrade gracefully" seem like pretty fundamental ideas when you hear them but I frequently find myself writing functions or scripts that don't do that at all when intended for a limited, usually singular, audience. It may seem like an okay idea when you're doing something for your own use, but when you write a complex function that works then discover a bug in it two or three years late and you have to return to fix it, it can be just as helpful for it to simply fail in an informative way as it would be to have detailed comments explaining the intent and the mechanics.
Truly, there's something here for everyone. In my office I'm considered something of an expert when it comes to complex regular expressions and the subtleties of using them in different editors and tools, but Chapter 2 and Appendix C both had enough new material in them that I found myself frequently making notes in the margins.
I have many, many books in my bookshelf in my office but nearly none on my desk. Beginning Portable Shell Scripting is going to be one of the very few that will be spending a great deal of time lying flat on my desk, in easy arm-reach.
You can purchase Beginning Portable Shell Scripting from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Managing Online Forums
stoolpigeon writes "I vividly remember the first time I was able to dial up a BBS with my Commodore VIC-20. It was Star Trek themed, and I was excited to see that the Sysop was online. We typed a few lines of text back and forth while I hollered to everyone in the house that I was talking to someone through the computer. Things have come a long way since then, and I've put in quite a few hours experiencing one of the more exciting sides of the internet: participating in community. Of course it hasn't all been great. Communities on-line are just like any other, in that there are differences of opinion and issues that arise. Some are handled well, some are not. Social interaction can be very complicated, and learning how to manage a social site can be a process that involves a lot of painful lessons. Fortunately not all of our learning has to come through direct experience. Sometimes we have the opportunity to learn from the experience of others. Patrick O'Keefes book Managing Online Forums is that guide to the budding leader of the web's next great community. Keep reading for the rest of JR's review. Managing Online Forums author Patrick O'Keefe pages 312 publisher AMACOM rating 9/10 reviewer JR Peck ISBN 978-0-8144-0197-2 summary Everything you need to know to create and run successful community discussion boards. Since the reader will be relying on O'Keefes experience and opinions, his personal history in the subject at hand is extremely relevant. He has been involved in web site design since 1998 and managing online communities since 2000. As the founder and owner of the iFroggy Network he has extensive experience in managing site policy, staff and members. O'Keefe is also active in other communities including his role as a moderator for Sitepoint. Patrick has also published articles there on forum management.
The book's byline is that it provides everything that you need to know to run a successful community discussion board. There is a wide range of topics covered though the emphasis is primarily placed on what I would call the soft side of community management. The technical discussion is limited, though it is there. There is no real discussion of how to go about setting up software. There are some suggestions as to choosing a domain name and software. Two options are given for software, vBulletin and phpBB. Each is described in a summary consisting of a few paragraphs of basic information. There is little discussion of installation from a technical standpoint. The most technical information deals with the core issues of security and backing up data. I didn't see this as a real weakness as there is already plenty of documentation on these choices and many more. Adding it all in would have really bulked up the book while distracting from the primary mission which is informing the reader on building successful communities.
While there is not much technical detail, there is discussion of features from a social perspective. O'Keefe doesn't discuss whether or not a feature should be used because performance or storage ramification but rather focuses on the positives or negatives in terms of managing how participants might view or use those options. This is the information that is not already out there in multiple places. O'Keefe is able to discuss from experience how he has seen users react to these features in the past as well as warning of any possible benefits or pitfalls. This is of course his opinion on these matters. This fact about the nature of the book is going to make or break it for the reader.
I envision that someone would come to this book from three possible positions. They may already have a strong opinion of the issues presented and disagree with the author. On the other hand they may agree. The last group would be people who come without strong presuppositions. I think that the first group would not enjoy the book, there is no objective evidence or argument that will bring these people over. This is after all, subjective opinion. The other two groups I think have a lot to gain, the third group most of all. A person who comes to the material with an open mind, looking for options and guidance will I gain a strong preparation for dealing with a number of issues that are almost certain to arise in online groups.
The book begins by quickly reviewing a set of basic questions that should be asked before a site is set up for a new community. They are fundamental but important and I think it is surprising how many endeavors to build communities don't seem to have considered them. The are, "What will your community cover?", "Whom do you want to attract?", "What will the benefits of your community be?", and "How will you support the community financially?". All of these questions, the naming of the community and site, hosting and software are covered up front.
In each of the following major sections, the author's advice is accompanied by example templates and policies. In chapter three, "Developing Guidelines", the community guidelines for KarateForums.com and SitePoint.com are printed. There are excellent documents in the chapter on managing staff that give good examples of staff guidelines that can be used in those communities that grow and the work of management needs to be shared. All of these are built on real policies and guidelines. The staff section also includes a nice decision matrix for various situations that may arise, such as hot linking or cross posting.
The chapter "Banning Users and Dealing with Chaos" is of course full of interesting examples and history. It is also very valuable. The fact is any successful community will need to deal with adverse conditions and this is where inexperience can be the most costly. O'Keefe outlines likely scenarios and how to handle them. He also gives further examples of guidelines that can help the administrator in staying above the fray and maintaining their sanity when things can be very contentious. From the personal anecdotes, O'Keefe has already been through much of the worse that the web has to offer. This chapter and all that it entails is balance by a chapter on creating a good and healthy environment as well as the importance of keeping things interesting.
Two other chapters deal with what I think of as the business side of running forums. There is a chapter on developing traffic. I was glad to see that this included not only what to do but also what not to do. And there are similar warning within methods that can be used in a positive way or a negative way. O'Keefe cautions against activities that may bring what appear to be short term gains but do not really build sustainable community. While physically separate in the book, I found that this section dovetailed with the chapter on generating income. O'Keefe basically runs down all the various methods for making money with a site. Once again he give the pros and cons as well as strong warnings against the things that are going to be counter productive.
There are three appendices. The first is a list of resources, the second is a set of blank templates that match the examples given in the body of the book and the third is a glossary. I think that glossary is an important because I believe that this book would be an excellent guide to anyone who wants to not only form an online community but is new to the whole idea. These folks may be very caught off guard by the things they will probably need to deal with, beyond the technical issues of getting a site up and running. This book would probably be something that anyone out there setting up sites for others could quickly recommend to help the new manager to be be successful once the site is up and live.
I think there is a lot here also for those with some experience on-line if they don't have a lot of experience running a community site or if they are just looking for some new ideas. I've been corresponding with others electronically for quite a while and I still found quite a bit here that was of value. There is also the strength of going in with policies and actions that are built to head off problems rather than respond to them once they have taken place. I would think this gives any new community a much higher chance of growing and thriving. Managing Online Forums is unique in this regard, to my knowledge. Taking on the human side of managing a site rather than just the technical components.
You can purchase Managing Online Forums from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Learning Joomla! 1.5 Extension Development
Michael J. Ross writes "Every major content management system (CMS) offers considerable functionality for building Web sites out of the box. But to get the most out of any CMS, its functionality must be extended through the addition of modules, most of which are created by third-party developers. For instance, a given CMS may need to be supplemented by an e-commerce module in order to use that CMS for building an online store. Joomla, one of the most widely used CMSs, is no exception. Web developers interested in creating their own Joomla extensions can read Learning Joomla! 1.5 Extension Development, authored by Joseph LeBlanc." Read below for the rest of Michael's review. Learning Joomla! 1.5 Extension Development author Joseph LeBlanc pages 284 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 978-1847196200 summary An introductory guide to creating Joomla extensions. Released by Packt Publishing on 11 December 2008, with the ISBN 978-1847196200, this book can be considered the second edition of LeBlanc's previous effort, Learning Joomla! 1.5 Extension Development: Creating Modules, Components, and Plugins with PHP, published almost exactly one year earlier. Oddly, this second edition has the same title as the first (though a different subtitle), and yet is not identified by the publisher as a second edition. This is not the first Packt Publishing book whose second edition was instead given a slightly different name — a practice that may prove confusing to readers who could be uncertain as to whether an older book by the same author contains different material and thus should be purchased as a supplement to the newer book.
Nonetheless, this revised edition strengthens Packt Publishing's position as a leading — if not the preeminent — publisher of technical books devoted to CMSs. The firm makes available a Web page for the book that offers a detailed description, the table of contents, all of the sample code used in the book, and a free sample chapter ("Using JavaScript Effects," Chapter 8). There are links for submitting feedback, contacting the publisher with a question, and ordering the electronic version of the book, which is now available at a reduced price — even more so when purchased with the print version. Errata are not available on this book-specific page, but instead can only be accessed through the Packt Publishing support page, where the visitor has to find the particular book again. The publisher should move the links for sample code, errata, and feedback, to each book's individual page. As of this writing, no errata have been reported for this second edition.
At 284 pages, Learning Joomla! 1.5 Extension Development is certainly not overwhelming in size. In fact, one of the most common complaints about the first edition was its small size (176 pages). The revised edition's material is organized into a dozen chapters, covering a range of topics: an overview of Joomla and extensions; starting to create the example extension; interfacing with the Joomla database, and MVC; creating a front-end interface; use of JavaScript classes; a module for listing pages; user interface enhancements to the extension; JavaScript effects; creating three example plug-ins; adding configuration parameters; adding e-mail and internationalization features; and bundling all of the created elements into a Joomla archive file for distribution.
As with most if not all similar Joomla books, Learning Joomla! 1.5 Extension Development assumes that the reader has a solid understanding of PHP and MySQL, as well as some familiarity with administering a Joomla site. Absolutely no prior knowledge of Joomla extension development is required, and as a consequence this book can be a guide for any PHP programmer who knows how to install and administer Joomla, and wishes to take it to the next level through the development of custom Joomla extensions.
In the book's first chapter, LeBlanc explains the purpose of extending Joomla, and the advantages of this approach over hacking the Joomla core code in order to customize a site's functionality — a principle that should be known by any developer familiar with CMSs. He briefly discusses how Joomla extensions fall into five categories: components, modules, plug-ins, templates, and languages. The chapter continues with brief descriptions of what the subsequent chapters will cover — much of which is redundant, since that is already covered in the preface. This unsubstantial chapter next presents a brief mention of the example project to be created throughout the book (a restaurant reviews site), but offers no project requirements, constraints, or design parameters. Also noted are the requisite technologies one will need for creating the project on one's own: a Web server, PHP, MySQL, and Joomla 1.5. This chapter, like all others, ends with a chapter summary.
With Chapter 2, the author and the reader get into the actual technical content of the book — and not a moment too soon, having at this point passed more than five percent of the pages that follow the table of contents. This chapter's material should be especially welcome to any reader completely unfamiliar with Joomla components, because it explains how they are structured, how to execute them, the separation of front-end and back-end (administrator) directories, and how to register a component in the database (thereby enabling navigation to that component's page). Code and examples are provided that show how to create primary and secondary toolbars for the example project, as well as the native toolbar buttons. On page 17, the use of '_JEXEC' to prevent direct access to a Joomla PHP file, is explained three times; once would be enough. In fact, most if not all times that this (recommendable) technique appears in code in later chapters, its purpose is explained all over again.
One of the essential chapters for getting started on the example project, is the third, which discusses back-end development for the project, beginning first with the database table and its corresponding JTable class, for holding the restaurant reviews information. The discussion of best practices for a table prefix is a good idea, but many readers would most likely have appreciated some illustrative use of the inherited JTable methods. Next, the author briefly describes how the model-view-controller (MVC) design pattern can be used to simplify the code that will be written for the example project, and then explains the basic ideas of MVC, even more briefly. Naturally, the order of these two discussions should have been reversed. The chapter concludes with coverage of the Joomla code for creating the project's forms, as well as processing and managing the data.
With the fourth chapter, LeBlanc temporarily switches to front-end development, and demonstrates the Joomla code that allows visitors to the example project site to see a list of restaurant reviews, view the details of each, read comments posted by other visitors, and post their own comments. In addition, the use of search-engine-friendly (SEF) links is explored, including how to create and parse the needed HTTP request variables' parts.
In the subsequent chapter, the author steps the reader through the process of implementing profiles of restaurant critics in the example project — and in turn illustrates how to override JTable methods, sort records comprising database query results, track how many times particular records are viewed, implement record check-out and check-in functionality (for collaborative editing), store user information, generate page elements using the JHTML class, and enable user ordering of displayed records by using the JPagination class.
Module development is the focus of the sixth chapter, which explains how to register a new module in the Joomla database, how to create and configure one, and how to build and use a helper class. In Chapter 7, the lengthiest of all, the author explains how to: modify a controller to publish and unpublish articles (with a nice example of making a function more generic), delete database records, prompt the user with a confirmation dialog box, redirect the user to an alternate page, require user input for form fields using JavaScript, paginate any large number of records when output, search all available records and display the results, place toolbars within views, and implement user comments. On page 133, when LeBlanc states that "the backend does not work with JavaScript turned off," he should clarify whether he is referring to the Joomla administrative back-end or the example project back-end.
As Web developers increasingly utilize JavaScript libraries within their Web-based applications, the same is happening within the major CMSs, including Joomla and Drupal. In Chapter 8, LeBlanc shows how Joomla programmers can use JavaScript for creating modal boxes (using either raw HTML or views), tool tips, sliding panes, and Google Maps integrated with one's Joomla site. In the discussion of configuring modal boxes, the height and width parameters in the sample code certainly do not match the appearance of the figure on page 167. While most of the chapter makes use of the (native) MooTools library, this portion of the book is capped off with an examination of an alternative, jQuery, which is becoming quite popular. The author wisely provides some valuable advice to any reader considering using both JavaScript libraries simultaneously.
In Chapter 9, the focus shifts back toward more conventional Joomla extension topics — specifically, plug-ins. The author shows how to register new plug-ins in a Joomla database, how to create them, and what events can be registered (as functions in your plug-in), such as a user logging in or content being output. This knowledge is applied to creating plug-ins for the example project in order to support advanced searching of content, and for content authors to be able to have an example site automatically generate an information box when it detects specially tagged text in the content, before outputting it.
PHP programmers new to creating their own Joomla extensions, oftentimes struggle with figuring out how best to specify configuration settings so they are not buried in the code itself nor need to be added manually through MySQL queries — and, in turn, how to make it as easy as possible for those settings to be specified by any developer or site administrator who is using the custom extension. Chapter 10 shows how to do just that, with the information divided among the three types of Joomla extensions that most commonly need this flexibility: modules, plug-ins, and components.
Chapter 11 is somewhat like a catch-all repository for some miscellaneous topics: Leveraging Joomla's native article e-mailing functionality, Joomla extensions can be further enhanced by allowing the user to e-mail component content to other people. Joomla has built-in internationalization, allowing you to supplement any installable language packs with phrases for your custom extension's front-end and back-end user interface text — for any of the languages you choose to support. LeBlanc shows how to do that, for his example project. He also shows how to safely allow users to upload files to your Joomla server.
The final chapter of the book demonstrates how to package up all of the code and other files that you have created, so anyone else who wants to leverage that functionality can install your extension in their own Joomla-based Web site.
The book has a number of small blemishes, including several errata, e.g., "can [be] defined" (page 20), "set these variables to whatever value[s]" (page 31), "it the function proceeds" (page 74), "!." (page 76), "existing/modules" (page 112), and "contain[s] newlines" (page 238). There is the occasional erroneous capitalization of words (witness the first sentence in the "About the Reviewer" section), incorrect use of hyphens for creating adjectives, and inconsistent spelling of words (such as "back-end" and "backend"). All of these should have been caught by the publisher's line editors.
In some passages there is a dearth of commas that would help the reader know when to pause. The code formatting, such as indentation and brace placement, is not always consistent (e.g., pages 81 and 116). The chapter subheads should be in title case, but are instead in sentence case. Some of the HTML example code suffers from "div-itis," such as the use of div tags instead of label tags where appropriate (e.g., page 66). The Joomla root URL on the reader's local Web server — assumed by the author in all of the subsequent project URLs throughout the book — should have been mentioned in the first chapter, when discussing the prerequisite technologies for creating the example project, because that is the point in the book at which the reader would most likely have installed Joomla on their server.
All of the chapter summaries simply add bulk but no value to the book, and should be chopped, because the chapters are short enough to not justify any summarization. Moreover, in at least one instance (Chapter 10), the summary contains higher-level perspective not presented in the chapter itself, where it would be far more timely to the reader. In addition, the book provides apparently no figure numbers or captions, which arguably saves space, since readers rarely refer to them if they are reading the text closely, though less so when skimming through a technical book. Compared to its predecessor, this edition would still benefit from a lay-flat binding, and it still has the pointless header and footer lines, as well as page number bracketing (which admittedly seems to be part of the publisher's branding).
None of the aforesaid problems are of any gravity. The main problem with the book is that far too many of the discussions are rather cursory and fast-paced, lacking in both clear explanations of critical concepts and also an empathy for readers struggling to understand those concepts. For instance, the marketing copy for the book claims that the reader will learn the Model-View-Controller design pattern, when in fact the book fails to teach it well — instead only offering two foodservice examples, which are inadequate, particularly for any reader unfamiliar with design patterns in general. In other words, there is adequate explanation as to the specific steps for creating the example project code and other needed elements, but there is not enough explanation as to how those steps fit into the bigger picture, and how they could be enlarged so that the budding Joomla developer could create his or her own extensions, quite different from the book's example project.
On the other hand, this new version has several notable improvements over the previous edition, such as greater emphasis on Joomla 1.5-style coding, as well as more attractive screenshots, with far less pixelation. More importantly, there are three new chapters, addressing JTable, JHTML, JUser, JavaScript, e-mail, languages, and file uploading. As in the first edition of the book, LeBlanc opts for a nice balance of exposition, example code, and illustrative figures — along with the bolding of any changes in code shown in multiple places. Scattered throughout the book are handy tips and warnings to Joomla developers. Joomla's online documentation for extension development is not much better than it was a year ago, and thus there is still a need for helpful books such as this one.
On balance, Learning Joomla! 1.5 Extension Development is an approachable and useful resource for any developer who wants to maximize the functionality of their own Joomla-based Web sites — and perhaps share that new functionality with other developers by contributing the resultant extensions to the Joomla community.
Michael J. Ross is a freelance Web developer and writer.
You can purchase Learning Joomla! 1.5 Extension Development from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
FBML Essentials
stoolpigeon writes "Facebook became the largest worldwide social site in the middle of last year. If their current pace holds they will pass MySpace as number one in the US some time next year. Those numbers have led a number of people to strike out and develop Facebook applications, hoping to grab a piece of that huge audience. One aspect of writing such applications is knowing Facebook Markup Language, which has been described as the icing on the Facebook API cake. FBML Essentials aims to be the resource that provides hopeful application writers with what they need to use FBML successfully." Keep reading for the rest of JR's review. FBML Essentials author Jesse Stay pages 185 publisher O'Reilly Media, Inc. rating 8/10 reviewer JR Peck ISBN 978-0-596-51918-6 summary Facebook Markup Language Fundamentals FBML Essentials is a slim little volume in the world of massive technical books. The author, Jesse Stay has accomplished something many projects and authors can't seem to avoid, scope creep. This little book stays right on target providing FBML documentation with a few extras as book-ends. One will not be forced to spend half their time with the book skimming over information not directly related to the topic at hand.
The reference portion of the book, as I said, is the bulk of this guide. This section does provide more thorough information than what one would find at the FBML tag section of the Facebook developer wiki. (Which sometimes holds contradicting information for the use of some tags.) There is not only a brief explanation and example but more detailed coverage of options and ramifications. Tags are also grouped in a way that takes into account functionality and what a developer may want to do. This means that while it might not be a thrilling way to go about it, one could read through the reference material in a topical manner while learning how to use FBML in applications.
The first two chapters, before the reference section begins, introduce Facebook applications, walk the reader through prerequisites for development and html considerations within the Facebook environment. This book assumes a solid understanding of markup and specifically html. There is an extremely brief treatment of hosting and general architecture of the Facebook platform.
The introductory material also steps through creating an application with nothing more than FBML. I thought that this was interesting because it means that it is possible to develop and launch an application rather quickly as there is nothing required beyond what is in this guide. This is backed up with an introduction to the FBML Test Console, a tool that allows developers to check their markup without requiring a server.
The last chapter after the reference is a quick introduction to Facebook Java Script. FBJS is a limited form of javascript and Stay does not spend much time with it. There is a quick list of methods, listeners and dialogs with a small amount of illustration on how they might be used as a whole. There are not examples given for each.
There isn't a whole lot here and that ought to be encouraging to anyone who would want to write a Facebook application but doesn't want to invest a huge amount of time. Stay gives an example of building a simple application using nothing more than FBML. It's nice to know that such simple functionality can provide one with an entre into a huge community of potential users. I am also glad that Stay was able to resist the urge to start pulling in every possible aspect of development for Facebook. Instead of a bloated guide the result is a compact and efficient guide to FBML, keeping costs down and avoiding wasted time trying to find what the reader needs.
The index is solid and I highly recommend this handy reference to anyone doing Facebook application development. Of course the use here is limited to Facebook and as they are constantly developing and changing the product, this reference has a definite shelf life. (Though I don't know exactly what that might be.) So this is not a timeless or ground breaking title, but is extremely practical right now.
You can purchase FBML Essentials from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
Daemon
stoolpigeon writes "Have you ever been reading a book or watching a film and as the plot moves to involve some use of technology you begin to brace yourself, and the cringe as you are ripped out of the story by what is an obviously ignorant treatment of matters you know well? Do you find the idea of creating a "gui interface using visual basic" to see about tracking an ip address as more fit for a sitcom rather than crime drama? And if so, have you ever wondered what it would be like if one of us, a geek, wrote a techno-thriller? What if someone who grokked our culture and understood our tech wrote something? Would it be great, or would it just get bogged down in the techno babble?" Keep reading for the rest of JR's review. Daemon author Daniel Suarez pages 448 publisher Dutton Adult rating 10/10 reviewer JR Peck ISBN 978-0525951117 summary A techno-thriller with a healthy dose of techno but absolutely zero let down on the thrill It is not necessary to wonder any longer. Database consultant, geek and now author Daniel Suarez has stepped up to the plate with his effort Daemon and he does not disappoint. This is a techno-thriller with a healthy dose of techno but absolutely zero let down on the thrill. The story gains momentum rapidly and then never lets up. I had a terrible time trying to put it down, eventually just giving up and plowing through in an all nighter. It was worth it.
The story of Daemon's beginnings has already been documented by Wired. Suarez had Daemon finished in 2004 but literary agents found it to be too long and complex. Rather than give up, Suarez pushed ahead on his own and took the self publishing route. The book slowly built up a following and began to be trumpeted by the likes of Feedburner's Rick Klau and Google's Matt Cutts. And sales of the book grew and now it is available via traditional publishing channels with a hard back release in January of 2009.
The book introduces us to Matthew Sobol, genius software engineer and creator of one of the world's most popular MMOs. Sobol is dead when the book begins, having succumbed to brain cancer. But it quickly becomes apparent that while Sobol has moved on out of this life, his code has lived on and his death has triggered events that rapidly take a life of their own. Sobol's code is working so some unknown end and murder is part of the program.
Suarez may push the envelope at times but his deft handling of current tech and the possibilities is at times frightening. There isn't really much here that isn't very possible right now. At no point will a child sit down at a terminal where the operating system is run by flying through a bunch of 3-d buildings surrounded by network traffic that looks like it is flying about. But there are young people, capable and knowledgeable of current tools and vulnerabilities. People who may not fit into society but who are willing to engage in activities that they believe will build a society of their own.
Of course this is fiction and there are some leaps. But the story is so skillfully woven that the reader is never jarred out of it by some glaring error or lapse in understanding. It's easy to slip into what is an incredibly energetic ride all the while thinking, "This could happen." In fact the only real issue I had with the plot was as I thought about the book after I had finished it. Things work out so well for Sobol's software, and that is the biggest stretch for me. I've worked for and with some extremely bright people, but none have ever engineered systems that could achieve such complex goals unattended. That aside, this is an amazing story.
This book really brought back to me the sense of joy I felt in the 80's when I first began to work with personal computers. It was that sense of infinite possibilities brought on by this new technology. I've grown a bit jaded to it all over the years since then. Daemon brought a lot of that rushing back.
And while all the tech aspects of this story are solid, they do not make the story itself. The whole crazy adventure is pushed along by solid characters. These are well written, very real human beings. They are fully fleshed out people with strengths and weaknesses spread out between protagonist and antagonist alike. There are no super heroes and really no super villains, though at times it comes close on both accounts. These characters are locked in an extraordinary series of events that are at times pulling them along and at others they are the ones pushing things forward. Dialogue is believable and well written. All of that is what ultimately makes this such a satisfying and fun read. The tech trappings are just the bonus payoff for the true geek that has been waiting for a story like this.
People who are on the outside, the non-techie types may find this book confusing and hard to understand. That relative that calls you and asks what happened to their toolbar in word that seems to have disappeared may not really get this book. But anyone who spends an appreciable time in our world on-line and plugged in may just find this to be the most entertaining book that they have read in a very long time.
You can purchase Daemon from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Beginning iPhone Development
Cory Foy writes "When my wife got a Touch several months back, the first thing I wanted to do was build some applications for it. Who wouldn't want to play with a device that has accelerometers, position sensors and multi-touch gestures? But being new to the Mac world, I needed something to help guide me along. Beginning iPhone Development aims to be that guide. But does it live up to the challenge of teaching a newbie Mac and iPhone developer?" Read below for the rest of Cory's review. Beginning iPhone Development: Exploring the iPhone SDK author Dave Mark, Jeff LaMarche pages 536 publisher Apress rating Five $1000 Rubies reviewer Cory Foy ISBN 978-1-4302-1626-1 summary A great introduction to the iPhone SDK and getting into iPhone Development The first thing you'll need to do is head over to the Apple Developers Site and register for an account. You can then download the iPhone API. Note that while the API download and simulator are free — deploying to a real iPhone or iTouch is not, even if it is your own. To do that you have to apply to the iPhone Developer Program which is $99. For the book, you'll be fine with just the simulator with the exception of any accelerometer application, since the simulator doesn't have that feature.
With that out of the way, I was quite impressed with the book. Although I've done quite a bit of development in the past, I haven't worked with Objective-C before, and was a little concerned if I would be in over my head. If you are in that position, don't fear — the authors do a great job of walking you through, and you'll find yourself working with it in no time.
The first chapters introduce you to the basics of the iPhone and development, starting with the canonical "Hello, World" application. The book walks you through how to get and install Xcode and the iPhone API. It then introduces you to Interface Builder, the partner-in-crime to Xcode. Even in the first chapter, the authors show their attention to detail, explaining common issues you might run into (like trying to Build and Run while your iPhone or iTouch is plugged in to your Mac).
Chapter 3 introduces the Model-View-Controller paradigm, a pattern that is probably one of the most misunderstood patterns in UI development. They give you enough information to be familiar with the terms you'll be using, and they very much mean it when they tell you not to worry if you aren't understanding something — they always loop back around to make sure you understand it.
Chapter 4 was a long chapter for me, but introduces some important concepts around user interaction and controls. By the end, you have an interface which has a variety of controls which interact with each other. As with the other chapters, the authors introduce tips and tricks to make things easier (for example, Option->Cmd->Up Arrow to switch from the header to implementation file in Xcode).
Chapter 5 covers autorotation and basic animations, including linking in the Core Graphics Framework. I especially like how the authors gave three different ways of making your app auto-rotation aware, describing the benefits and drawbacks of each. Chapter 6 follows this up by introducing multi-view interfaces, something very necessary as you get into more complex iPhone development.
Chapters 7-9 describe various methods to presenting information to users, including toolbars, table views, hierarchical navigation and hierarchical lists. However, it isn't all drag-n-drop, the authors get into some good (and sometimes deep) conversations about what you are doing. For example, in Chapter 8, they talk about issues with NSDictionary and how to create deep mutable copies.
Chapters 10-13 are the last of the "fundamentals" — application settings, basic data management, custom drawing using Quartz and Open GL, and taking inputs (including gestures and multi-touch). As someone who spends most of his time as far away from graphics libraries as possible, I was quite impressed with the basics that were introduced and what someone like me could get up and running.
Finally we get into the fun. Chapter 14 introduces Core Location, allowing to figure out where in the world you are. The book goes through a discussion about the various ways to get location information, and drawbacks of each. (Helpful tip: no matter which method, if you are polling every second, you'll drain the battery pretty quickly). For the simulator-only users, this is when things start to become tricky. Chapter 14 does work, though you aren't prompted for access to Core Location.
Chapter 15, however, is useless without an actual phone, even though it's perhaps the most fun. In this chapter, the book goes through the accelerometer and all the interesting things you can do with it. There's even a small discussion on the physics (but just enough!). Both apps you create (Shake and Break and the Marble game) are quite fun for someone just starting out with all of this. It's a shame Apple couldn't figure out a way yet to include the accelerometer in the simulator.
Chapter 16 covers using the iPhone camera and Photo Library. It's short, but it shows the power of the simple interfaces Apple provides. In just 9 pages you'll be capturing images right from the iPhone.
The final two chapters I thought were quite fitting — Localization and Follow-Ups. In the localization chapter, the book covers extracting strings out to resource files and using locale to read them in. Having a day job which ships our software in 12 different languages, I know first-hand how difficult localization can be to get right, so I was glad to see this chapter. The final chapter is just a wrap-up of resources you can reach out to for help and information.
All in all I was very surprised and pleased with the book. I've had the fortune of reading many technical books, and few do a great job of walking someone through the basics without making them feel like a dolt. It felt like every time I was stuck or unsure there was a tip, hint or paragraph which explained what was going on.
The main drawback to me is the fee to deploy apps to your own phone. This wasn't something I ran into doing either J2ME or Windows Mobile apps in the past, and it is a shame that to even work on your own phone you have to pay a fee. However, since the fee does give you the ability to submit apps to the App Store, then I guess it's a consolation. I'd rather Apple lock deployments to one iPhone (or iTouch) for the truly casual people who just want to do interesting things on their own phone.
In summary, I give this book five $1000 Rubys for making a clean, concise, easy-to-read and follow introduction to iPhone development. Great job guys!
You can purchase Beginning iPhone Development: Exploring the iPhone SDK from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
The Zen of SOA
Alex Roussekov writes "The book "Zen of SOA" by Tom Termini introduces an original view to the challenging world of SOA. He refers to the Zen philosophy as a "therapeutic device" helping SOA practitioners to get rid of prejudices and opinions in order to apply a clear mind-set based on real-life experiences and the application of technology knowledge. Each chapter of the book is prefaced by Zen Truism that the author suggests to "revisit, reflect on it longer, and see if you are able to establish a truth from the narrative, as well as from your own experiences." In fact, the book is about a SOA Blueprint outlining a methodology for building a successful SOA strategy. The target audience is C-level Executives, IT Managers and Enterprise Architects undertaking or intending to undertake adoption of SOA throughout their organizations. I strongly recommend the book to all SOA practitioners involved in implementation of SOA." Read below for the rest of Alexander's review. The Zen of SOA author Tom Termini pages 112 publisher BlueDog Ltd (November 21, 2008) rating 9/10 reviewer Alexander Roussekov ISBN ISBN 978-0-615-24703-8 summary provides a clear methodology to guide SOA implementations
The author's vision is based on extensive experience in the SOA arena and he elegantly leads and prepares the reader for the introduction of his SOA Blueprint approach. I personally enjoyed reflecting on the Zen conundrums which stimulated me to focus and understand the content.
In Chapter 1 the author explains SOA as both Business and Technical Concept and the main challenges it tackles from different stakeholder perspectives. He also emphasizes some misconceptions and technology myths about Web Services and ESB which are key enablers but do not represent a holistic view of SOA.
Chapter 2 elaborates on using the SOA Best Practices as a critical success factor for maximizing an organization's potential and improving performance. The author recommends an Incremental Approach to the SOA Implementation. This is supported by a comprehensive Case Study with the US Federal Trade Commission client.
Chapter 3 gives a technology view of SOA. The author covers a number of SOA technology components, their capabilities and positioning within the SOA technology stack including Portal, ESB, Service Registry/Repository, Business Rules and Enterprise Search Engines.
In Chapter 4 — the concept of "Future-Proof" is defined by the author and his team as "architecting to be highly available, reliable, and easy to manage."
The future-proofing is an inherent quality factor with technological and cultural aspects which need to be achieved throughout the overall SOA Lifecycle. The author suggests that "a pilot, or proof-of-concept, presented in advance of implementation and deployment, can convincingly demonstrate the ability of the architecture to validate the business intent".
Chapter 5 presents the author's rationale for an incremental approach to SOA implementation. The main point is that the contemporary business dynamic creates a myriad of competitive pressures which impose significant risks, whereas an incremental approach shields the business from the SOA implementation demands and helps to accommodate the changes and utilize the benefits.
Chapter 6 "The SOA Blueprint" is the essence of the book. It is a "set of guidelines for the practical business deployment of services using SOA methods in a moderately sized, somewhat complex organization". The author has used the OASIS' reference models for SOA as a foundation framework. The Blueprint is also consistent with well defined and recognized methodologies such as TOGAF and Zachman. For example, the Blueprint artifacts fit well in the taxonomy of the Zachman Architectural Framework and they can be mapped to corresponding activities in the TOGAF ADM.
Chapter 7 provides practical guidance and recommendations related to the context of the SOA Blueprint. The author puts the focus on Standardization, Business Customer Perspective of Services, Risk Mitigation Strategy as well as technical aspects such as Data Integration, Service Orchestration, Security and Metadata.
Finally, Chapter 8 offers a checklist with a number of items required for the customization of the SOA Blueprint. The author provides both item definitions and procedural guidance.
Tom Termini shares deep expertise and knowledge gained by hard work on numerous SOA projects for government and private sector clients. His examples of real business value achieved can be traced in the case studies described in the book. Each case study is related to a particular SOA "koan" and comes with the description of the business context, approach, solution and the business benefits obtained as a result.
The Zen of SOA is a concise, readable and very well illustrated book which provides practical advice, guidance and immediate impetus for development of SOA Implementation Strategy, Vision, Roadmap.
You can purchase The Zen of SOA from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
TSA Security Checkpoint Toy
Roskolnikov writes "I thought I ran across a joke; Playmobil, the maker of childrens' scenario playsets, has made a airport security checkpoint that could easily be at home on any travelers desk; what makes this even more entertaining (in a sick, yet somehow funny way) are the reviews posted for this defective toy; imagine what a little barbed wire and SS uniforms would do for this." -
Using Drupal
Michael J. Ross writes "After installing and learning the basics of the content management system Drupal, many Web developers do not know how to best proceed from there. They may realize that much of the programming potential of Drupal — and thus the earning potential of Drupal developers — is derived from the use of community-contributed modules that greatly extend Drupal's power. But there are thousands of such modules, with no objective direction as to which ones are best suited for particular tasks, and what bugs and other flaws could trip up the developer. These programmers need a thorough guide as to which modules are the most promising for the development of the most common types of Web sites. A new book, Using Drupal, aims to fill this need." Keep reading for the rest of Michael's review. Using Drupal author Angela Byron, Addison Berry, Nathan Haug, Jeff Eaton, James Walker, and Jeff Robbins pages 490 publisher O'Reilly Media rating 9/10 reviewer Michael J. Ross ISBN 978-0596515805 summary Key contributed Drupal modules put to use creating sample sites. Published by O'Reilly Media on 16 December 2008, under the ISBN 978-0596515805, the book is authored by Angela Byron, Addison Berry, Nathan Haug, Jeff Eaton, James Walker, and Jeff Robbins — all of whom are affiliated with Lullabot and are actively involved in the Drupal community and knowledgeable about Drupal's core and plug-in modules. Despite the old adage about having too many cooks in the kitchen, a technical book of this nature should benefit from having half a dozen authors, since each one will have his or her fortes, and the whole will be greater than the sum of the parts, as a result of this complementary expertise.
This title appears to be O'Reilly's first — and, as of this writing, only — Drupal book. This is in no way astonishing, given that O'Reilly has never been known for pushing books too quickly through development and production, simply to gain "first mover advantage." Rather, they generally work to create higher-quality efforts that will better stand the test of time — unlike the "shovel" books that some other publishers tend to push out the door, with less coherence and more errata. As a consequence, in the technical libraries of veteran programmers, one tends to see a disproportionately high number of book covers sporting pictures of animals.
On the publisher's Web page for Using Drupal, visitors can read the book's description, table of contents, colophon, errata (of which there are currently several), a link for purchasing the book in electronic form (in formats such as PDF, EPUB, and Kindle-compatible Mobipocket), and a link for viewing the book immediately online, in the Safari Books Online system. There is a simple forum for the book, which currently contains seven posts, three of which already have replies from one of the book's authors and from an O'Reilly community manager. There is a browse system that allows the visitor to read portions of each section of each chapter, and thus preview the book before purchasing it. It even includes the illustrations within each previewed section, but for some reason does not include the figure numbers within the captions.
The authors have created their own site dedicated to the book, where visitors will find brief author biographies largely similar to those found at the very end of the book, with links to the authors' profile pages on Drupal.org. Lastly, there is a download page for the source code, which comprises a copy of Drupal 6, all of the contributed modules and themes needed to complete the hands-on exercises, and the supplementary resource files for those exercises, such as logos and product images. There is a change log for the download file, and yet no mention on the page — or even in the book itself, as far as I can tell — as to which version in the 6.x release series was used for the book and in the download package.
Oddly, neither the publisher's site nor the authors' site appears to mention the free downloadable chapter (Chapter 9, "Event Management"), although it is offered in an article posted in the blog section of Do It with Drupal.
After a foreword by Dries Buytaert — Drupal's founder and project lead — the book continues for 490 pages in total, organized into eleven chapters and three appendices. Nine of the chapters each begin with a description of a case study that will be used for illustrative purposes, followed by some implementation notes, which includes discussion of the candidate modules that could be used for this particular case study, and the trade-offs among them. The contributed modules that are chosen for the implementation and their capabilities are summarized, and then further explained with hands-on exercises — in which the particular modules are utilized and configured. Each of these nine chapters takes the reader through the development of a complete Web site, and is wrapped up with discussion of additional modules applicable to the kind of Web site being created. In Chapters 2 through 10, the case studies are: a simple Drupal site that supports client editing, a job posting board, a product reviews site, a wiki, a site for managing publishing workflow, a photo gallery, multilingual sites, an entertainment events management site, and an online store. Chapter 1 provides an overview of Drupal — covering modules, users, nodes, organizational schemes, and content types — preceded by a brief history of content management systems. Chapter 11 explores site theming, with details on the files and other elements that make up a theme, and how to customize them. The book's three appendices cover installing and upgrading Drupal, choosing the right modules for a job, and a list of the modules and themes used in the book.
The book's material is current with Drupal version 6, but should be of some value to any developer opting, for whatever reason, to stick with version 5. Speaking of versions, the authors should have mentioned which version of Drupal they chose, including the minor release number. The Drupal code in the aforesaid download package indicates that the chosen version is 6.4.
This book is unique, in that most if not all other Drupal books on the market are either introductory in nature — which at best devote only a single chapter to discussing third-party modules contributed by developers — or more advanced, specializing in a particular subject area, such as Drupal site security or e-commerce. Using Drupal, just as the title indicates, examines the detailed usage of best-of-breed modules to accomplish specific goals that one often encounters as a Web developer.
One of the most valuable aspects of software development books written by veteran programmers, is their discussions of various solutions to a particular problem — regardless of its size or complexity — and the reasons why they chose one approach instead of any of the others. Using Drupal is no exception. The authors examine the advantages and disadvantages of various third-party modules, even those that were not chosen for implementing the sample Web sites.
In any computer programming book, screenshots and other figures can be most helpful to the reader, because they reinforce the narrative descriptions of the cumulative results of all the steps up to that point. The screenshots are even valuable to someone following along on his own computer, because they provide immediate confirmation that he has not missed a critical step in the process. Using Drupal offers a generous amount of such screenshots, as well as information tables that help in visually breaking up the text. The only weakness with some of the screenshots is the lack of contrast between the text and the background, resulting in a dark gray shown on a light gray background — not always clearly readable.
The book is substantial in length and content, and naturally it cannot adequately cover dozens of sorts of Web sites. But clearly the book would have been more complete if it contained a chapter explaining how to allow content to be viewable by a limited set of authenticated users. An ideal case study for this would be the implementation of an e-zine site, for which prospective subscribers could view the homepage and other marketing material, but only subscribers could read the actual e-zine's contents. Even better would be to make this sample site fee-based, and show how to accept payments through PayPal (or some other payment systems for which there are Drupal modules) and possibly validate new subscribers automatically and instantly, using PayPal's IPN feature.
The flaws of this book are few and minor. There are unreported errata, most of them grammatical — e.g., "as [the] ability" (page 10) and "modules [that] were" (page 89) — which are to be expected in the first edition of any technical book. Speaking of errata, on the publisher's Web site, the errata should be sorted — or sortable — by page number, so it is much faster for people to see if a discovered erratum has already been reported. In addition, the URLs within the book that do not contain any filename (e.g., "http://www.example.com"; page 8) are in most if not all cases missing the trailing "/" (the root directory). Yet my primary complaint pertains to its production, and not its writing: For countless lines within the text, the spaces separating the words are too narrow, making it difficult to distinguish the words from one another when reading rapidly. As a consequence, each one of these lines almost appears to be a single word. (Skilled programmers know the great value of using whitespace in their code for enhancing readability; the same is certainly true for the printed word.) This readability problem is exacerbated by two factors: The ink color does not appear to be pure black, but instead a dark gray, which possibly has the advantage of producing less glare, but provides less contrast. Secondly, the serif font selected (whose name does not seem to be identified in the book — a common practice ages ago) has quite thin curves, which arguably does make the font face more stylish, but diminishes readability.
In terms of the target audience, the authors do not assume that the reader knows PHP (although some is shown in the chapter on theming), but they do assume that the reader is comfortable installing a PHP-based content management system and all of its required technologies, and familiar enough with Drupal to be able to navigate through the administrative area, download and add modules, and perform other basic admin tasks. Programmers just getting started with Drupal will benefit the most from this book, while experienced Drupal programmers will most likely learn some hitherto unknown best practices, and perhaps even some valuable modules or techniques that the individual has never seen before.
Using Drupal is a detailed and information-packed guide to the most promising contributed modules, and how they can be best employed for creating common types of Web sites. Drupal developers should find this a valuable part of their technical library, especially when they begin creating one of those types of Web sites for the first time.
Michael J. Ross is a Web developer and freelance writer.
You can purchase Using Drupal from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.