Domain: amazon.com
Stories and comments across the archive that link to amazon.com.
Stories · 1,405
-
Plone 3 Products Development Cookbook
RickJWagner writes "This book takes an interesting path to teaching Plone 3 development. Unlike most software instructional books, it starts way back in the often-unread Preface by listing 10 requirements a mythical customer is asking the reader to implement in Plone 3. The requirements are realistic and I think would probably be quite a stretch for an inexperienced Plone developer. The rest of the book is dedicated to implementing those 10 features, and coaching the reader on Plone 3 development along the way." Read on for the rest of Rick's review. Plone 3 Products Development Cookbook author Juan Pablo Gimenez, Marcos F. Romero pages 388 publisher Packt Publishing rating 9/10 reviewer RickJWagner ISBN 1847196721 summary If you want to develop feature-rich add-on products in Plone, this book is for you. I wouldn't say this is a good book for a novice Plone user. There really isn't much introductory material, and there is little material to transition the reader from Plone installation to meaty development. A newbie could certainly use this book if it were augmented with additional material (say, the Internet and a fair amount of time allocate), but the reader had better be ready to self-educate on Plone/Zope/Python development if they are not already proficient in these areas. For developers who already know their way around Plone, however, this book is an excellent step-by-step guide to adding serious functionality to the platform.
The book follows a consistent theme throughout. The desired functionality is briefly (very briefly) described, then the reader is given the following sections: Getting Ready, How to Do It, How it Works, and (sometimes) There's More. Here's how these work:
Getting Ready — outlines installation prerequisites, the things you'll need to gather.
How to Do It — step by step instructions on how to implement your changes.
How It Works — after you've configured things in the previous step, this step explains why things work.
There's More — an optional section where further reading can be found, or maybe extras like test procedures.
The book includes more than just the 10 specified features from the Preface, though. The authors cover development best practices, documentation, a section on testing, and many other goodies that are not directly in the path of implementing those 10 requirements. I especially liked the parts about performance improvements, a consideration that's sometimes lacking in development books.
Many expert-level techniques are revealed to the reader, especially those concerning production of Products for Plone 3. The authors are obviously well versed in their domain and they freely share best practices the reader will be able to leverage. These tips deal with the whole development cycle, distributed in a sort of holistic manner, sprinkled into several chapters along with the primary material for that section. It's not a book on the development process, but if the reader is willing to listen as advice is given, they will become aware of many development best practices (automated testing, documentation, etc.) along the way.
Besides just the how-to aspect of Product development, the authors give the reader some insight into runtime aspects of a Plone site. The chapter covering cache configuration, for example, was lighter on Product development verbiage and much longer on advice that is bound to be helpful for a Plone site administrator rather than a Product developer. I imagine it's probably not uncommon for people to wear both these hats, so this is another useful characteristic. Developers and Administrators alike can profit from this kind of advice.
The book definitely reads differently than most tech instructional books-- it's more like an expert's working notes than it is a typical dev book. It took me a few chapters to catch on, but after I figured out how to best use this format I can see how this would be very useful for random-access reference work. You don't need to do everything in sequence, just skip right to where you need to go.
There's a lot of text provided, too. There are nearly 370 pages here, almost all of it good, meaty instructions provided in the soon-familiar instructional template the authors established early on. If you know exactly what you want to do, there is little room for ambiguous interpretation-- you're bound to get it right. Some might consider portions of the text verbose, but that can be a desirable trait in a book that's going to serve as both introductory survey and later valued reference.
If you're charged with doing Plone 3 development, I'd recommend this book. There's a lot of expert advice here, and it covers a wide range of development activities. I would imagine almost every developer will learn some things from this book, and many developers will learn a great deal. For producing Plone 3 products, it will provide a quick answer for many commonly encountered questions.
You can purchase Plone 3 Products Development Cookbook from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Magento 1.3 Sales Tactics Cookbook
Dmitry Dulepov writes "Magento is a very popular open source e-commerce platform. It was created by the company named Varien in 2007. Varien worked with osCommerce but it did not suit Varien's expanding requirements. After writing more and more changes to osCommerce, Varien finally wrote its own e-commerce software from scratch. It took Varien seven months in 2007 to publish the first public version of Magento." Read on for the rest of Dmitry's review. Magento 1.3 Sales Tactics Cookbook author William Rice pages 292 publisher Packt Publishing rating 9/10 reviewer Dmitry Dulepov ISBN 1849510121 summary If you are a Magento store owner or store designer who wants to boost sales, then this book is for you Since that time, Magento started to get popularity, and now it is one of the most popular and advanced e-commerce solutions available. The list of companies who uses Magento is huge.
Magento is very powerful. But power comes with its costs. Magento can be complex to users. Fortunately there are lots of books available for those who want to set up their web stores using Magento. Some of these books were released by Packt Publishing, the company known to focus on practical books.
Recently Packt released a somewhat unusual book. It is called Magento 1.3 Sales Tactics Cookbook. The book is written by William Rice, who is a software training specialist from New York city. As a trainer, William has a way to explain difficult concepts in an easy way: a gift necessary in case the of Magento. Each chapter consists of several topics. Topics break down into four parts:
- Getting ready
- How to do it...
- How it works...
- There's more...
Each section is a set of instructions that tell the reader how to quickly and efficiently achieve their goals.
Chapter 1 is about making users come to your store. It talks about adding meta tags, optimizing images, creating site maps and keeping them up to date. The very first topic tells how to add meta tags to product pages. The "Getting ready" section describes constraints and requirements to fulfill before the task can be performed. For example, for meta tags it says that access to the administration interface is necessary, and research should be done about the best keywords and customer expectations. The "How to do it..." section follows with detailed instructions about adding meta tags. It asks the reader to log into the Magento backend, select the correct menu items and edit products. Most of steps are illustrated with large images and example content in them. Thus it becomes very easy to follow directions. Example texts are also very good.
The "How it works..." section shows the reader how to verify that keywords and description appear on the page. It also describes how search engines may use this information to show search results for the user. This section also talks about choosing better keywords.
The "There's more..." section provides useful links that should help the reader to get started with the task.
Other advice in this section includes optimizing image usage by using better titles and descriptions, improving the site's title, adding a site map and making Magento update it. All advice comes with great level of details. If the reader is completely new to any of these topics, she or he will have no problem following these instructions.
Chapter 2 talks about the importance of placing products on shopping sites. It gives a complete set of instructions to add products to Google. Google is a major search engine, so any shop would benefit from having Google list its products. As in the previous chapter, the reader is guided from the very beginning (such as creating a Google account) to the final step. The instructions are written so that the reader can proceed to the step she or he needs directly (for example, use his existing Google account).
Chapter 3 talks about creating information pages in Magento that would drive people to product pages. Selling is like a science. It is not enough to drop in a couple of good looking images and dummy text to start making cash. To sell products effectively, one needs to make customers want to buy those products. One of the ways is to write about shop's goods in an attractive way. This chapter shows how to write about products and make customers love them. It is not typical blah-blah advice that anybody can find online for free. It is a real guide on creating a version of the page, looking at it critically and improving it. Most such pages will become landing pages when users search for products.
Chapter 4 talks about making pages more interesting to users. This includes adding video, writing stories and changing the layout of product pages. Also it shows an interesting technique to customize products for customers. Each of us likes to feel as if a product is made specially for us. This chapter explains how to make it and gives examples.
More good advice in this chapter is about images. Any reader will get a very interesting hint on using images better. The author of this review really liked the idea and had to resist the temptation to repeat it here. Unfortunately, this review does not allow me to explain the necessary level of details of this nice technique.
Chapter 5 describes how to increase sales with upselling, using related products, cross-sells, etc. With upselling the customer can get more products similar to the one purchased. That really works. Upselling can help customers to get more of they want. Related products play a similar role, but they show products that look alike or close in some way to the product that the customer wants to purchase. There are also other options to sell more products. They are described in this chapter.
Chapter 6 is about using promotional pricing effectively. It is not a secret that we all love promotions and discounts. Magento products can have a set of rules that define price change when more items are added to the cart. This chapter teaches how to use these rules.
Chapter 7 shows the way to engage customers using customized e-mails, RSS and newsletters. There is also a discussion of using social networking to increase sales. Newsletters are slow, and are considered to be spam by many customers; social networking is ascending. This chapter gives valuable advice about using social networking to boost sales.
Chapter 8 is about getting the customer's feedback through various tools. While there are tons of shops on the Internet, many people go to Amazon first (and often buy there). It happens because Amazon not only sells, it also allows customers to review products. When people read good reviews, they become engaged. Seeing a positive review highly increases the chance that more customers will buy the product. This chapter tells the reader how to manage feedback from customers.
Chapter 9 talks about a complex topic of internationalization and improving international sales. Magento has several ways to translate products and pages. This chapter shows the best way to do it. Also the reader will learn about installing language packs and adjusting URLs for international stores.
Chapter 10 talks about creating a wholesale stores. Wholesale customers are different from regular customers in several ways. In particular, they usually do not pay sales tax. This chapter describes how to use the same physical Magento installation to serve both types of customers. It gives several serious benefits. For example, the amount of products will always be correct.
I was really fascinated by this book. I knew some basics but I found that this book contained so many useful techniques that I am glad I came across this book. It is really useful. William Rice is a great author and once again he wrote a great Magento book. Many ideas will also be valid for non-Magento store owners, but Magento users will benefit a lot.
Would I recommend this book? Definitely! This book is a must for any Magento shop owner.
The copy of the book was provided to me by Packt Publishing. Packt Publishing never asked me to write anything particular or change my texts. This and all my other reviews represent my true opinion about reviewed books.
You can purchase Magento 1.3 Sales Tactics Cookbook from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
SketchUp 7.1 Architectural Visualization
dango0 writes "SketchUp 7.1 for Architectural Visualization – Beginner's Guide is a detailed guide that will figuratively take you by the hand and teach you how to make stunning photorealistic and artistic visuals of your projects with free software and free resources that you can find all over the Internet." Read on for the rest of Dan's review. SketchUp 7.1 for Architectural Visualization: Beginner's Guide author Robin de Jongh pages 113 publisher Packt rating 5 reviewer Dan Farcas ISBN 1847199461 summary Create stunning photo-realistic and artistic visuals of your SketchUp models Robin de Jongh is a consulting engineer and designer who has successfully used SketchUp for multi-million-pound new developments, and a whole bunch of smaller projects, from steel staircases to new product prototypes. He previously ran an architectural and product visualization company. Robin holds a degree in Computer Aided Product Design and is a professional engineer registered with the Institution of Engineering Designers in the UK. He writes a blog about SketchUp for design professionals.
Frankly, when I saw that the book has 400+ pages, I thought "this thing is full of fluff and will bore me to death." But to my pleasant surprise I found a lot of descriptive pictures, and that's exactly what a visual-based guy like me understands best. So, without further ado, I'll make a brief presentation of the chapters that will enlighten your path to fast, easy and breathtaking presentations of your projects:
Chapter 1 – Quick Start Tutorial
This chapter is a fast forward for those impatient to get to the realistic sketchup scenes. Here you'll find out how to model the scene, fix the lights, add textures, background, and make a quick render in Kerkythea.
Chapter 2 – Plug in and Gear Up
You will find that with a couple of free plugins and some other software you can turn SketchUp into a fully functional 3D modeling, visualization and animation suite similar to . let's say 3D Max!!! (well the truth is this part made my jaw drop)
Chapter 3 – Composing the scene (free sample available)
This chapter will teach you how to make modeling a less hard work by setting your scene prior to starting work. Here you'll use CAD plans, site images or even Google Earth to build the optimized scene for quick rendering or animation. (I know you will love this part of the book, so I got a sample of this chapter from the publisher for you guys – See it Here)
Chapter 4 – Modelling for Visualization
The pro modeling methods you can learn here will save you both the time, and the hassle of working with large polygon counts that can slow down your PC considerably, and at the same time will show you how to make those photo real renderings we all love in a blink of an eye.
Chapter 5 – Applying Textures and Materials for Photo-Real Rendering
Since the world evolved really fast lately, we have at our disposal a lot of free online image resources, professional digital cameras, and so a really effective way of bringing the "model" to life. The tutorials you'll discover in this chapter will show you some unique photo and material handling tools to create surreal, mega easily textured scenes.
Chapter 6 – Entourage the SketchUp Way
Now you have a scene, with modeled buildings and applied textures, and the next step you wanna take is to make it shine with some Entourage, like cars, furniture, and of course trees and bushes and other nice things. In this chapter you'll learn how to find the best libraries, and also to create your own (that you can give to others, for FREE or CASH).
Chapter 7 – Non Photo Real with SketchUp
Some other free software that you will learn how to use is GIMP, a powerful photo editing photo suite, that can simulate sketchy pencil and watercolor styles. And yeah, almost forgot about this, you will learn the AWESOME "Dennis Technique".
Chapter 8 – Photo-realistic rendering
Some in depth presentation and step by step introduction into Kerkythea, the amazing free rendering software, with proven best settings for test renders and final outdoor and indoor scenes. This chapter amazed me, because it covers everything you need to know about getting professional photo-realistic renders out of a simple SketchUp model.
Chapter 9 – Important Compositing and After Effects in GIMP
We all know that the rendering process isn't the end of the line, because there's lots of subtle but important after effects you can apply to make the image even more effective. This particular chapter covers how to add reflections without rendering, creating depth of field effects from a depth render, adjusting levels for realistic daylight scenes, compositing real and rendered images.
Chapter 10 – Walkthroughs and Flyovers
Here you will find tutorials that will show you how to create storyboards, set up cameras and paths in SketchUp with extra plugin functionality, export test animations and final renders. Photo real animations are then composited to make a simple showreel.
Chapter 11 – Presenting Visuals in LayOut
This final chapter I really enjoyed since I like to play with layouts. The layout module is bundled as part of SketchUp Pro and is introduced in this final chapter for those who wish to explore the free trial before committing to Pro. You will learn how to bring together SketchUp models and artistic or rendered output into a screen presentation or printed portfolio, adding borders, text and dimensions.
I'm an architect, and I've worked with paid software before, but I gotta tell you, the free applications are most of the time way better than the paid ones, for the simple fact that they're made by passionate people who upgrade and tweak things all the time. If you want to learn how to use free software that delivers results time after time, please check out this book. I guarantee you won't throw your money away; the price for this book is way too low for the knowledge it shares and the results you can achieve.
You can purchase SketchUp 7.1 for Architectural Visualization: Beginner's 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. -
Blender 2.49 Scripting
terrywallwork writes "A few days ago I received an email from Packt Publishing informing me of their new Blender 2.49 Scripting book. I was very interested in reading this book as there are very few Blender books that cover the scripting aspect of Blender 2.49 and Python. So I navigated my way to the packt publishing website and ordered myself the ebook version. They were having a special at the time and I ended up getting a full color ebook for less than £9. If nothing else the price is extremely impressive." Read on for the rest of terrywallwork's review. Blender 2.49 Scripting author Michel J. Anders pages 292 publisher Packt Publishing rating 7.5/10 reviewer terrywallwork ISBN 1849510407 summary This book is for users comfortable with Blender as a modeling and rendering tool who want to expand their skills to include Blender scripting The author is Michel Anders, known as varkenvarken on Blender Artists forum. He is an extremely talented Blender Python scripter and has written many very useful scripts for Blender. Knowing who is behind this book explains a lot about the way this books is constructed.
The teaching approach taken, is to present a series of tasks that need to be achieved and then present sections of scripts that demonstrate the most important concepts and Blender Python code, to allow the tasks to be carried out.
At the beginning of the book a basic explanation of some of the terms and concepts are gone over and a few very simple Blender python commands are demonstrated to do the equivalent of a Blender Hello World script. This beginning part of the book is the only part that really can be classed as beginner level, everything after this has a much steeper learning curve.
Many of the scripts written by Michel are very technically advanced scripts, the same also holds true for this book. Most of the scripts and techniques described within require a very good level of understanding. I debated with myself as to weather it is an Intermediate/Advanced level book, but one thing is certain, if you are a beginning Blender user and your Python knowledge is beginner level, you will struggle to get much from Michel's latest work. I think that to get anything out of this material a very good understanding of Python, Blender and Mathematics (especially vector math and 3D related mathematics) will be required.
Assuming you have the requisite knowledge all the bases of using Blender through Python scripting are covered, for example, setting up materials, ipo manipulation, texture setting, texture nodes and so on. But again very simple things are not covered. To me it seems that it is assumed that you will just read the Blender Python API docs for the very simple things such as how to do rotations and scaling on objects, deleting and adding vertices, etc. You will have to be prepared to get a lot of information from the scripts supplied rather than be spoon fed information.
So if you are very knowledgeable with Blender and Python you will likely find that this book is very handy as it covers ways of scripting and leveraging Blender Python scripting to do some very clever things. I do think it would have been very helpful to have a less steep learning curve but that's a matter of my personal taste.
I am not a Python expert and so this has probably affected my ability to properly appreciate this book, that said I can see that a lot of time and effort has gone into putting this book together, especially given thw fact the Python scripting books for Blender are so few and far between.
It probably hasn't escape most Blender users notice that Blender 2.5 is now currently in Alpha state and it uses completely different scripting model, so stuff learned in this book unfortunately won't transfer to Blender 2.5, as it uses Python 3 and has a completely different API structure.
This book would of been much more relevant if it have been released a year or 2 earlier. Still if you're used Blender 2.49 and need an advanced Blender scripting book, you now have one to read.
I really hope Michel does a Blender 2.6 version when it comes out, and maybe makes it slightly more targeted at beginners and experts, so my head doesn't hurt quite so much.
You can purchase Blender 2.49 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. -
Pentaho 3.2 Data Integration
diddy81 writes "A book about the open source ETL tool Kettle (Pentaho Data Integration) is finally available. Pentaho 3.2 Data Integration: Beginner's Guide by María Carina Roldán is for everybody who is new to Kettle. In a nutshell, this book will give you all the information that you need to get started with Kettle quickly and efficiently, even if you have never used it before.The books offers loads of illustrations and easy-to-follow examples. The code can be downloaded from the publisher website and Kettle is available for free from the SourceForge website. In sum, the book is the best way to get to know the power of the open source ETL tool Kettle, which is part of the Pentaho BI suite. Read on for the rest of diddy81's review. Pentaho 3.2 Data Integration: Beginner's Guide author Maria Carina Roldan pages 492 publisher Packt Publishing rating 9/10 reviewer diddy81 ISBN 1847199542 summary If you have never used PDI before, this will be a perfect book to start with. The first chapter describes the purpose of PDI, its components, the UI, how to install it and you go through a very simple transformation. Moreover, the last part tells you step by step how to install MySQL on Windows and Ubuntu.
It's just what you want to know when you touch PDI for the first time. The instructions are easy to follow and understand and should help you to get started in no time. I honestly quite like the structure of the book: Whenever you are learning something new, it is followed by a section that just recaps everything. So it will help you to remember everything much easier.
Maria focuses on using PDI with files instead of the repository, but she offers a description on how to work with the repository in the appendix of the book.
Chapter 2: You will learn how to reading data from a text file and how to handle header and footer lines. Next up is a description of the "Select values ..." step which allows you to apply special formatting to the input fields, select the fields that you want to keep or remove. You will create a transformation that reads multiple text fields at once by using regular expressions in the text input step. This is followed by a troubleshooting section that describes all kind of problems that might happen in the setup and how to solve them. The last step of the sample transformation is the text file output step.
Then you improve this transformation by adding the "Get system info" step, which will allow you to pass parameters to this transformation on execution. This is followed by a detailed description of the data types (I wish I had all this formatting info when I started so easily at hand). And then it even gets more exciting: Maria talks you through the setup of a batch process (scheduling a Kettle transformation).
The last part of this chapter describes how to read XML files with the XML file input step. There is a short description of XPath which should help you to get going with this particular step easily.
Chapter 3 walks you through the basic data manipulation steps. You set up a transformation that makes use of the calculator step (loads of fancy calculation examples here). For more complicated formulas Maria also introduces the formula step. Next in line are the Sort By and Group By step to create some summaries. In the next transformation you import a text file and use the Split field to rows step. You then apply the filter step on the output to get a subset of the data. Maria demonstrates various example on how to use the filter step effectively. At the end of the chapter you learn how to lookup data by using the "Stream Lookup" step. Maria describes very well how this step works (even visualizing the concept). So it should be really easy for everybody to understand the concept.
Chapter 4 is all about controlling the flow of data: You learn how to split the data stream by distributing or copying the data to two or more steps (this is based on a good example: You start with a task list that contains records for various people. You then distribute the tasks to different output fields for each of these people). Maria explains properly how "distribute" and "copy" work. The concept is very easy to understand following her examples. In another example Maria demonstrates how you can use the filter step to send the data to different steps based on a condition. In some cases, the filter step will not be enough, hence Maria also introduces the "Switch/Case" step that you can use to create more complex conditions for your data flow. Finally Maria tells you all about merging streams and which approach/step best to use in which scenario.
In Chapter 5 it gets really interesting: Maria walks you through the JavaScript step. In the first example you use the JavaScript step for complex calculations. Maria provides an overview of the available functions (String, Numeric, Date, Logic and Special functions) that you can use to quickly create your scripts by dragging and dropping them onto the canvas. In the following example you use the JavaScript step to modify existing data and add new fields. You also learn how to test your code from within this step. Next up (and very interesting) Maria tells you how to create special start and end scripts (which are only executed one time as opposed to the normal script which is executed for every input row). We then learn how to use the transformation constants (SKIP_TRANSFORMATION, CONTINUE_TRANSFORMATION, etc) to control what happens to the rows (very impressive!). In the last example of the chapter you use the JavaScript step to transform a unstructured text file. This chapter offered quite some in-depth information and I have to say that there were actually some things that I didn't know.
In the real world you will not always get the dataset structure in the way that you need it for processing. Hence, chapter 6 tells you how you can normalize and denormalize data sets. I have to say that Maria took really huge effort in visualizing how these processes work. Hence, this really helps to understand the theory behind these processes. Maria also provides two good examples that you work through. In the last example of this chapter you create a date dimension (very useful, as everyone of us will have to create on at some point).
Validating data and handling errors is the focus of chapter 7. This is quite an important topic, as when you automate transformation, you will have to find a way on how to deal with errors (so that they don't crash the transformation). Writing errors to the log, aborting a transformation, fixing captured errors and validating data are some of the steps you go through.
Chapter 8 is focusing on importing data from databases. Readers with no SQL experience will find a section covering the basics of SQL. You will work with both the Hypersonic database and MySQL. Moreover Maria introduces you to the Pentaho sample database called "Steel Wheels", which you use for the first example. You learn how to set up a connection to the database and how to explore it. You will use the "Table Input" to read from the database as well as the "Table Output" step to export the data to a database. Maria also describes how to parameterize SQL queries, which you will definitely need to do at some point in real world scenarios. In next tutorials you use the Insert/Update step as well as the Delete step to work with tables on the database.
In chapter 9 you learn about more advance database topics: Maria gives an introduction on data modelling, so you will soon know what fact tables, dimensions and star schemas are. You use various steps to lookup data from the database (i.e. Database lookup step, Combination lookup/update, etc). You learn how to load slowly changing dimensions Type 1, 2 and 3. All these topics are excellently illustrated, so it's really easy to follow, even for a person which never heard about these topics before.
Chapter 10 is all about creating jobs. You start off by creating a simple job and later learn more about on how to use parameters and arguments in a job, running jobs from the terminal window and how to run job entries under conditions.
In chapter 11 you learn how to improve your processes by using variables, subtransformations (very interesting topic!), transferring data between transformations, nesting jobs and creating a loop process. These are all more complex topics which Maria managed to illustrate excellently.
Chapter 12 is the last practical chapter: You develop and load a datamart. I would consider this a very essential chapter if you want to learn something about data warehousing. The last chapter 13 gives you some ideas on how to take it even further (Plugins, Carte, PDI as process action, etc) with Kettle/PDI.
In the appendix you also find a section that tells you all about working with repositories, pan and kitchen, a quick reference guide to steps and job entries and the new features in Kettle 4.
This book certainly fills a gap: It is the first book on the market that focuses solely on PDI. From my point of view, Maria's book is excellent for anyone who wants to start working with Kettle and even those ones that are on an intermediate level. This book takes a very practical approach: The book is full of interesting tutorials/examples (you can download the data/code from the Pakt website), which is probably the best way to learn about something new. Maria also made a huge effort on illustrating the more complex topics, which helps the reader to understand the step/process easily.
All in all, I can only recommend this book. It is the easiest way to start with PDI/Kettle and you will be able to create complex transformations/jobs in no time!
You can purchase Pentaho 3.2 Data Integration: Beginner's 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. -
CodeIgniter 1.7 Professional Development
RickJWagner writes "CodeIgniter is a multi-purpose, open source PHP web application framework that can dramatically reduce the amount of coding required in developing a full-featured website. This book promises to introduce the reader to the most productive APIs and demonstrate their usage with minimal code snippets. In that regard, I think the book lives up to its promise." Read on for the rest of RickJWagner's review. CodeIgniter 1.7 professional development author Adam Griffith pages 300 publisher Packt Publishing rating 9/10 reviewer RickJWagner ISBN 1849510903 summary For advanced PHP developers who wish to use CodeIgniter to make their development easier, quicker, and more fun. The first chapter covers CodeIgniter's MVC framework, which provides a way for a programmer to logically partition code so it's easier to maintain. For those of us who aren't accomplished PHP coders, this chapter also contains a PHP style guide, which I thought was a nice feature. By the way, the code snippets throughout the book are clean and easy to read -- the author must have followed his own advice on code style.
The second chapter is an introduction to some of the more productive libraries you'll find in CodeIgniter. Here you'll find some excellent advice on how to take timing metrics in your application, how to secure it, and how to accomplish routine activities like retrieving data from the user's request. Other 'web topics' are addressed here, like how to manipulate the session, how to manage emails and file uploads, and much more.
Chapter 3 handles form inputs and databases. As is common throughout the book, the reader is given minimal technical overview. What you'll find instead is a very brief explanation of what's about to be covered, then a few very readable source lines that demonstrate use of CodeIgniter in action. If this book were your only resource, I'm sure there would be times where you didn't find enough material to get everything done you wanted to do. But if you have a web browser (and Google) handy, a book of this type can be an effective index to help you find the parts of a framework you want to leverage.
The next few chapters cover user authentication and application security. I found these to be a little spotty -- heavy in some places, light in others. Still, the material was useful and not difficult to read or understand.
A nice chapter on tips for building a large-scale application was next. I found this one interesting -- many of the ideas were well-known, but a few had not occurred to me before. I liked reading it. Next up was a chapter on Web Services. I didn't take the time to test the provided code for this chapter, but I would like to sometime. If it works as I hope it will, I may have a new way to stand-up test web services!
The final two chapters are on extending CodeIgniter (it's great that the library authors institutionalized this!) and donating code back to the community.
So who is this book for? The book itself tells you it's for expert PHP coders, but I don't believe that's exactly right. Given the easy-to-read nature of the book and the light treatment given to some of the meatier topics, I'd say this book is about right for a novice-to-intermediate-level PHP coder. I haven't done a lot in PHP, yet I found the code reading very easy.
If I had a wish for the book, I'd wish for a little more depth in the harder topics and maybe some quick overviews for a few topics. (Diagrams accompanying the overviews would be nice, too. This book has few illustrations except for screenshots.)
All things considered, I'd recommend this book to coders who are getting started with PHP and CodeIgniter. It's easy to read and will get the reader pointed in the right direction for solving many web problems.
You can purchase CodeIgniter 1.7 professional 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. -
Windows 7: The Missing Manual
r3lody writes "It took me a little while after Windows 7 became available before I gave up my Windows XP desktop and purchased a new laptop with Windows 7 Home Premium pre-loaded. Like those who endured the change to Windows Vista, I found myself floundering around a little trying to figure out all of the new bells and whistles Microsoft had added to its operating system. Windows 7: The Missing Manual by David Pogue is meant to address the needs of people like me. The book, while readable by beginners, is written for users with some acquaintance with Windows. Advanced users will find the book too simplistic, but users up to the intermediate level will find it a handy reference to the new features in all of the flavors of Windows 7." Keep reading for the rest of r3lody's review. Windows 7: The Missing Manual author David pogue pages 904 publisher Pogue Press rating 8/10 reviewer r3lody ISBN 0596806396 summary This book illuminates its subject with reader-friendly insight, plenty of wit, and hardnosed objectivity for beginners as well as veteran PC users. Writing for the multiple levels of Windows 7 is handled by including a little sub-heading "cheat sheet" after each major heading. Most will have "All Versions", but you may see a subset like "Home Premium ? Professional ? Enterprise ? Ultimate". Handling multiple levels of users is a little more difficult. The book is written for advanced beginners to intermediate users, but beginners to Windows have "Up to Speed" sidebars added to help them understand concepts regular Windows users already know. More advanced users have "Power User's Clinic" sidebars to provide additional information.
Windows 7: the missing manual is organized into 8 parts, comprising 27 chapters and 4 appendices.
After an introductory section describing the book's layout, Part One deals with the Windows 7 desktop. Comprised of 5 chapters, Part One gives the basics of manipulating windows, programs, and files. Chapter 1 describes the Start menu, jump lists (frequently used documents) and the Run command. Next comes Explorer, the Taskbar, and general window controls. Most of chapter 2 is devoted to the eye candy provided by Aero. The third chapter discussing searching and organizing files follows that, with a good discussion of the much-improved Windows Search. Chapter 4 covers personalization (wallpaper, color and sound themes, screensavers and desktop icons), and the last chapter of part 1 explains the ways you can get help (Microsoft's Help system, Remote Assistance, and getting help from Microsoft).
Part Two uses 3 chapters to cover Windows 7 Software. After talking about opening and closing programs, opening and closing documents, and dialog boxes, David Pogue explains how to install and uninstall software, as well as handling compatibility issues. Speech recognition and gadgets got thrown into this chapter, but seem a little out of place. The next chapter discusses various freebie applications supplied with Windows 7, and those available as part of Windows Live Essentials. Most of those are explained in sufficient detail to use, but a few are deferred to later chapters. This part is closed out with rather brief coverage of Control Panel.
The next 5 chapters comprise Part Three, which is devoted to Windows 7 Online. After chapter 9 explains how to get hooked up to the Internet, chapter 10 is dedicated to Internet security. Microsoft Security Essentials, the Action Center, as well as Windows Firewall and Windows Defender are all covered, along with methods of protecting your privacy while you surf. This all leads into the grand tour of Internet Explorer 8, which is talked about in detail in chapter 11. The last two chapters go over Windows Live Mail and Windows Live Services.
Part Four is the media-centric portion of the book. David broke the discussion into three broad chapters: Windows Live Photo Gallery, Windows Media Player, and Windows Media Center. Windows Live Photo Gallery is Microsoft's challenger to Google's Picasa. While Picasa is more mature, Photo Gallery is not shabby by any means, and chapter 14 gives excellent explanations on how to get the most from the program. The next chapter goes over Windows Media Player, which has been around for a long time. There have been some minor changes to it, including streaming media to other computers and handling of more types of audio and video files. Windows Media Center was originally designed for the Media Center Edition PC, but is now available for any version of Windows 7 from Home Premium on up. You get a lot of information on how to set it up and use it for all sorts of media. You'll also find out how to use your PC as a DVR (assuming you have a TV tuner card or USB tuner).
The next part is all about hardware and peripherals. First printing, then Windows Fax and Scan, and finally general device handling are each given their due. The third and final chapter of Part Five covers laptops, tablets, and touchscreen computers, and their special capabilities and limitations.
One thing all computer users need to handle are the inevitable problems. Part Six covers various maintenance and trouble-shooting topics across three chapters. First, general maintenance and speed tweaks, followed by an in-depth discussion of disks, compression and encryption, and finally a chapter on backup, restore and trouble-shooting. All have just enough information to be useful, and not too much to absorb.
The last main part covers networking and homegroups. Windows is the most useful when it's part of a network, and Part Seven explains how to connect it and use it. After discussing setting up accounts, workgroups and domains have their own chapters, so home and office users can focus on what they need. This part ends with chapters on sharing files and remote control (including VPNs and Remote Desktop).
There is a set of 4 appendices that comprise Part Eight. Included are how to install and upgrade to Windows 7, how to use Regedit, and my favorite two chapters – Where'd It Go?, and the Master Keyboard Shortcut List.
Overall, the book does assume you've at least seen a previous version of Windows, as a lot of text explains how Windows 7 is different. I personally would have preferred the author keep the focus on Windows 7 and less on the differences from prior versions. There are a lot of attempts at humor. On the plus side, it keeps the tone of this fairly large book accessible to the novice to intermediate user. On the minus side, the occasional joke usually seems out of place.
I found Windows 7: the missing manual a valuable reference to the many offerings in Microsoft's latest incarnation of Windows. While the writing style varies from simple reference to the occasional attempt at light-hearted guidance, it is a comprehensive, informative and (most importantly) useful manual of the ins and outs of using Windows 7 in all its flavors.
You can purchase Windows 7: The Missing Manual 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! 1.5 Beginner's Guide
TimKrause writes "I just recently received Packt's new Joomla! 1.5 Beginner's Guide by Tiggeler. If you're new to Joomla!, this is one of the best titles out there in terms of helping you get started with your first (perhaps second or third) Joomla! site. Tiggeler does a nice job covering all of the basics: everything from downloading and installing Joomla on a server, configuring it, and confirming the installation to working with and then removing the sample data that Joomla provides. The book lives up to its promise by including a chapter that promises the reader they'll have a site up and running in about an hour. Based on my own experiences, I suspect that, for most intermediate developers, Tiggeler is right; for beginners, expect to take a little more time." Read on for the rest of Tim's review. Joomla! 1.5: Beginner's Guide author Eric Tiggeler pages 380 publisher Packt Publishing rating 9/10 reviewer Tim Krause ISBN 1847199909 summary If you want to build and maintain your own web site, the Joomla! Beginner's Guide is perfect for you. One of the challenges that I observe with many new Web developers is struggling to understand how to develop enough sample content for one's site in order to make adjustments to the site template, and define it's structure, before adding remaining content and functionality. Tiggeler actually does a nice job carefully moving back and forth between creating content, and giving it structure. In doing so, it's also important to note that this book isn't about theory, or just reading, it's about doing. Every section includes a "Time for action" that walks site owners through doing what was explained on their own site. For more adventurous site owners, there's also a "Have a go hero" activity that is much less directed, and which provides additional (but appropriate) challenges.
Tiggeler starts out with the basics of downloading and installing Joomla. If you're going to use this book, you'll either need Web hosting (preferably Linux) or the expertise to install a flavor of XAMPP on a local computer. Either aren't necessarily difficult (most Web hosting offers 1-click installation of Joomla, making it as easy as a click of a button), but require thinking about Web design differently than with static HTML pages.
In any Joomla! book, there are a couple of must-haves for me, and Tiggeler does a nice job discussing them. The include: SEO, metrics and site security. Under site security note that JoomlaPack has been replaced with Akeebo Backup. It's the same great functionality, but with a new name (and a new subscription-based version that offers enhanced options). It's important to note here that Tiggeler is not only thorough in covering the basics, but often provides more advanced direction, and discusses any of the more technical issues which a developer might run into when installing a component, for example.
The book also includes screenshots that make it very easy for the reader to follow along. In fact, I found myself trying out a number of things on my own site as I read. The screenshots and directions were all accurate and correct.
Once you get comfortable with everything Tiggeler has to offer, including the very basics of component and module installation and configuration, I'd recommend that you turn to some of Packt's other titles, like Joomla 1.5 — Multimedia by Walker for additional guidance on learning the more detailed ins and outs of specific types of components. Joomla Cash is another option, and discussions key e-commerce components like VirtueMart.
Nevertheless, what sums this title up best for me is Chapter 4: Web Building Basics: Creating a Site in an Hour. I was suspicious at first, but am confident that with Tiggeler's guidance, it's quite possible to build your first basic Joomla! Web site in about an hour. That's an excellent premise, and the book delivers on it well.
If you're looking for a beginner to intermediate book, there aren't many other alternatives available. O'Reilly has a titled called Using Joomla! by Severdia and Crowder, that was published earlier this year. At the time, I was pretty impressed with it, but I think readers will find Tiggeler to be both more direct and more focused in his approach. For example, Severdia and Crowder devoted a chapter in their book to Joomla 1.6. It was interesting, but largely academic given that 1.6 is still in beta and not something most of us will be working with.
I teach Web Design, including a course on Web Content Management Systems (Drupal, Joomla and WordPress) and have literally read dozens of these types of books in the past year or so. I also teach a capstone course where my students create Joomla-based sites for local non-profit organizations. We have completed sites for nearly 100 clients in the past two years. Currently, Joomla 1.5 Beginner's Guide is what I recommend to new Joomla! site owners. As a result, I also will begin using the same book in class starting next semester so that students are familiar with what their clients will be reading.
Tim Krause is an Assistant Professor of Computing and New Media Technologies at the University of Wisconsin — Stevens Point. He writes regularly about Joomla and Web Content Management systems.
You can purchase Joomla! 1.5 Beginner's 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. -
Ancient Cave Art May Depict Giant Bird Extinct For 40,000 Years
grrlscientist writes "Recently studied Australian Aboriginal rock art may depict a giant bird that is thought to have become extinct some 40,000 years ago, thereby making it the oldest rock painting on the island continent. The red ochre drawing was first discovered two years ago, but archaeologists were only able to confirm the finding two weeks ago, when they first visited the remote site on the Arnhem Land plateau in north Australia. 'Genyornis was a giant flightless bird that was taller and heavier than either the ostrich or emu. It had powerful legs and tiny wings, and probably closely resembled ducks and geese, its closest living relatives. ... Interestingly, Genyornis bones have been excavated in association with human artifacts in Cuddie Springs in the Australian state of New South Wales. It is likely that humans lived alongside these birds, and some scientists think that humans may have contributed to their extinction." Jamie recalled that in the essay "A Lesson from the Old Masters," in the volume Leonardo's Mountain of Clams and the Diet of Worms, Stephen Jay Gould thanks our ancestors who drew Irish Elk on cave walls for "providing the only possible evidence for a hump that would otherwise have disappeared into the maw of lost history." -
Django 1.1 Testing and Debugging
johnmccollum writes "A wealth of tools are available to debug and test Django applications, but knowing when and how to use these resources can intimidate the new user. Django 1.1 Testing and Debugging, by Karen M. Tracey, aims to walk the user through the process of creating a web application from scratch, ensuring that the resulting code is bug-free and ready for production." Keep reading for the rest of John's review. Django 1.1 Testing and Debugging author Karen M. Tracey pages 409 publisher Packt Publishing rating 9/10 reviewer John McCollum ISBN 978-1-847197-56-6 summary Building rigorously tested and bug-free Django applications In a way, Django makes it deceptively easy to write a dynamic web application. With a few lines of code, you can have an fully functional application up and running in a short space of time, and complex applications take less time than ever to develop. Inevitably, though, bugs will creep in to the development process, and the professional developer will want to make sure that their application is as bug-free as possible before launching.
The book opens with a simple question: "How do you know when code you have written is working as intended?" The answer, of course, is that you test it. But if you're not a cowboy coder, you'll want to leverage the full power of Django's automated testing framework for best results. In the course of this book, the author develops a full web application, from start to finish, and describes how each section would be tested and debugged.
The author's intended audience for this book is perhaps one that is relatively new to Django. Ideally, the reader will have a functioning installation of Django, will have worked through at least the tutorial, and may well have written a couple of applications. This book would also be excellent for someone migrating to Python from another language, or moving into MVC frameworks for the first time. Crucially, the book doesn't just explain how to test, it also explains when and what to test too, so it serves as an ideal introduction into testing in general. There are many code examples and screenshots, and each line of code is fully explained.
The book kicks off with an examination of doctests and unit tests. Their relative pros and cons are explained in some depth, and the author does a great job in this section of discussing exactly what you should be testing, initially beginning with data models. She then moves on to more advanced unit testing strategies and applications, such as testing views and customizations of the admin area.
One of Python's greatest strengths is its ecosystem, and the following chapters cover some of the other tools you might want to integrate into your project. Django-coverage provides reporting on how much of your code is covered by tests, and Twill is a package that essentially replaces Django's test client to provide enhanced functionality — particularly for working with forms. Both packages have fully explained and in-depth examples to work through. (Code downloads are available at Packt Publishing's web site for the terminally lazy!)
With the testing section of the book complete, the author moves on to the debugging section of the book. Starting with the very basics (setting up Django in debug mode), the book then takes a detailed look at the Django debug page. This is something that I could see being useful for many new users — the debug page contains a wealth of information (and not all of it is always entirely relevant, if not outright misleading), so learning to understand this page is crucial to your success as a Djangonaut.
The book then takes a tour of the excellent django-debug-toolbar, before moving on to what was, for me, the most valuable chapter of the book: "When you don't know even know what to log: Using Debuggers." This chapter introduces the PDB (Python Debugger) library.
Like many others, I suppose, Django was my first introduction to Python. For that reason, my knowledge of the standard library is perhaps not as strong as it could be. For me, learning about the different ways of using the debugger was the highlight of the book, and something that will probably change the way I develop with Django.
The book concludes, of course, by taking the application into a production environment. And in line with the latest advice, that means setting up the site using Apache and mod_wsgi. In keeping with the theme of the book, the most common issues in deployment are identified and resolved.
This book weighs in at over four hundred pages, and its greatest strength is its wide scope. Although the basics of testing in Django are easy to understand, it's another thing entirely to see an entire application built from the ground up with testing at the forefront. As I mentioned before, the focus is as much on developing a testing and debugging strategy as it is on the technical aspects.
From a more technical point of view, the subject matter ranges from beginner to advanced. From writing the most basic doctests to debugging multi-process race conditions, the difficulty level increases incrementally, and no important details are skirted over. The prose is well-written and easy to read throughout.
If I had one gripe about the book, it would be that in places, it goes into a little too much detail. There's a section on using the Django web site (the bug tracker, the mailing list etc.) that I could have done without entirely. Although it might be useful for some users, the site is pretty self-explanatory and doesn't really warrant the attention it gets, in my opinion.
You shouldn't let that put you off though — this really is an excellent exploration of the topic. In addition, Packt Publishing will make a donation to the Django project for every book sold, so in purchasing this book, you'll be indirectly helping the project financially too.
This book is worth a place on any Django developer's bookshelf.
You can purchase Django 1.1 Testing and Debugging from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Drupal 6 Attachment Views
Trevor James writes "Green's book is without a doubt the definitive practical guide to using the Views 2.x module in Drupal 6, and to creating complex and dynamic page, block, and attachment-based views for your Drupal site. One big plus to this book's structure is that Green uses a real "live" production website project as a guide (he states early on that he was working on the site build for the client while writing the book and that the client approved of using the site build as the book's main example) — all of the chapters and subsequent tutorials are focused on building a site for a company that specializes in hiring out contractors and subcontractors. It's nice to see real-world examples being used in a computer tutorial book, especially one focused on Drupal and Drupal Views. The data Green is accessing is real data and this helps to engage the reader and show the multitude of real situations that a developer will get involved with when developing Drupal Views." Read on for the rest of Trevor's review. Drupal 6 Attachment Views author J. Ayen Green pages 300 publisher Packt rating 9/10 reviewer Trevor james ISBN 1849510806 summary If you are a Drupal developer of any level and you are waiting to explore Attachment Views, then this book is for you. Green introduces us to Drupal 6.x Views in Chapter 1 by creating a page View. Green points out how a Views panel relates directly to the SQL statements being run on the backend by Drupal, something I have not seen done in any online tutorial or book — he maps out the panel View and shows, for example, that the Sort Criteria in your Views interface matches your SQL "ORDER BY" statements. A nice touch.
Green also shows us how to Analyze the views we create to test their configuration before previewing the View. This is another trick I was not aware of (and I use Views heavily in the work I do) so I'll emphasize here that the book covers the Views interface exhaustively. Every detail of the interface and building page and attachment Views is covered. Green tackles building Views using Arguments in both Chapters 1-2 and does it in a method that demystifies Arguments and makes them much easier to understand.
The book shows methods of leveraging the Views interface to preview your View data and content without having to leave the Views screen — in chapter 2 Green shows us how to test our attachment View by previewing the Arguments we've added directly in the Views live preview area.
Another nice surprise in this title is that the author covers many other Drupal components besides Views. In chapter 2 Green dives right into Drupal theming showing us how to create template files for our Views and add PHP and CSS to tweak and manipulate our Views display output. So right here you're not just getting a book on using Views but also some basic instruction on how to build theme template files and add code to the tpl files.
In Chapter 3 Green moves into a detailed tutorial on creating a module. First he shows us the core Drupal Contact form (Contact module) and we build a simple contact form. Next he explains that we can extend this simple contact form by building a custom module to add custom fields to our form — for example adding fields to collect address information and also tweaking the labels for the core Contact form. Green explains in detail how to build a module and how to use Drupal's form_alter hook to "alter" our Contact form. It's the best description and explanation of the form_alter hook I've read. Again Green gives us much more here than simple Views building — he shows us how to build a module in Drupal. Finally bringing Views back into the discussion we learn how to glue all of the parts we have — the contact form, custom contact fields from our module, a CAPTCHA field, and an embedded Gmap using the embed_gmap module — into a View and then display this view on our site to show multiple Drupal components on one page. We end up building a dynamic Contact Us Web page that contains a map, contact information and a Contact form. Amazing stuff.
For the first 3 chapters alone I recommend this book to anyone just starting to use the Drupal Views module, any Drupal developer who is interested in theming Views, and any Drupal user who is just starting to build their own custom modules. The book covers so much terrain in the first 3 chapters it's a definite must have on anyone's Drupal bookshelf.
Chapters 4-8 of Green's Drupal 6 Attachment Views contains the brunt of discussion and tutorials on building Views to support various content output. These chapters will give developers a good amount of practice building Views since Green emphasized rebuilding a View for the practice vs. simply exporting and importing your View code. I agree with this method. It might be easier to export and import your code but you'll start to understand the inner workings of View arguments and relationships if you build them from scratch each time you need to configure one.
In chapter 4 Green shows us how to override View settings so your attachment View does not conflict with your page or block View. Green also points out here that we can configure Views for multiple audiences and target the View to specific roles such as anonymous users or logged in site admins. In this chapter we create a management role-based View for our admin users to access.
In chapter 5 Green shows us how to create complex Views using attachments to display Bio content of our company's employees. He returns to a discussion of theming showing us how to theme the output of our View, this time focusing on theming content to surround and display next to an image. View relationships are introduced in this chapter so that we can filter specific jobs to specific project managers who are in charge of the job — this is based on using a node reference field in our content type. Again a nice description and tutorial on how to use CCK fields in our View output.
I'll stress here that the entire book (but mostly in these Views intensive chapters) contains a nice balance of screenshots and descriptive text. The screens are important as it's always nice to have the visual aid to accompany the tutorial bullet points and instructional material. In chapter 6 we create another complex 3-view composite display similar to the one built in chapter 5. Again Green stresses practice makes perfect when it comes to using and building Views in Drupal.
Chapter 7 contains a interesting take on how to enhance and theme a simple "About Us" Web page. I liked the use of Views in this chapter to make a basic Drupal page more dynamic and interactive. Green's expertise is apparent in this chapter as he takes something so basic and static and turns it on its head (and takes it completely out of the box) to show you how you can engage static content better by building it using the Views module. This chapter is a gem in the book and one that clients should read — it will give clients ideas about how to take static content and make it vital content on their site. About Us pages do not need to be boring.
Chapter 8 focuses on building simple administrative control panel using Views. Again Green challenges us as Drupal developers to step out of the box and build useful and custom management tools for our clients.
Chapter 9 shows us how to build role specific menus outside of Views using the Drupal menu and block system. Green diversifies here and begins the excellent discussion in these last two chapters of Drupal's administrative functionality outside of the Views module which has up to this point been the focus of the book. Green gives a tutorial on how to create a "peek-a-boo" login block. What's that you ask? Read this chapter to get the full rundown — it's functionality that will impress your client — using Javascript and an API. Good stuff here. Finally a discussion of adding a new theme region to your Drupal theme (always good to know how to do) and a final look at the Views module, creating a current Jobs/News block.
Chapter 10 wraps this excellent title up by showing us some of Drupal's core functionality that always ends up on the "punch list" in our projects — stuff like:
* Setting the admin theme
* Enabling clean URLs
* Error reporting
* File system
* Input formats
* Logging
* Performance
* ... and more
Read Chapter 10 for sure and then show it to your lead admin/project manager on the client side since it's a great cheat sheet for administering Drupal.
Green had published an opus here on Drupal Views and Drupal 6.x in general. I'll enjoy working through this book in more detail and practicing his Views attachment problems in my own work.
You can purchase Drupal 6 Attachment Views 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 Design of Design
asgard4 writes "Coming up with sound, elegant, and easy to implement designs is not a trivial matter, as Fred Brooks, author of the classic book The Mythical Man-Month, acknowledges in his latest book The Design of Design. In many disciplines — especially in software development — the design process and how to produce good designs is relatively poorly understood. Teaching the design process to students is even more difficult. In the form of opinionated essays, Brooks attempts to summarize what we know about the design process, how it has changed over time, and how we can produce better and more elegant designs. Brooks has decades of experience designing large systems and is well known for his involvement in the design of IBM's OS/360. Even though Brooks is a computer scientist, the book applies equally well to many other disciplines outside of software development that have a formal design process, such as architecture. A lot of his examples come from other engineering disciplines and architecture. But of course he presents the obligatory OS/360 case study as well." Read on for the rest of Martin's review. The Design of Design: Essays from a Computer Scientist author Frederic P. Brooks, Jr. pages 432 publisher Pearson Education rating 8/10 reviewer Martin Ecker ISBN 0201362988 summary Inspiring new book by Fred Brooks The book is divided into six parts, the first three of which I consider the most relevant and most interesting. In part one, Brooks starts out with a discussion of models for the design process. In particular, he presents his take on how the traditional Rational Model (or the Waterfall Model — its offspring that is better known to computer scientists) is not sufficient to achieve greatness in design because it has a too simplistic and idealistic view of the design process. Brooks then proceeds to discuss better, more iterative models for designing, for example, Boehm's Spiral Model used in software development, which much of the newer so-called agile methodologies are based on. He argues that it is important to have a clear, concise model that can be accompanied by an easy to understand graphical representation, such as a diagram, in order to be able to teach the design process to novice designers.
Part two of the book is about collaboration and team design. On large projects there will usually be multiple designers who are forced to work together to produce a single, coherent design. The major stumbling block in team design is achieving conceptual integrity. Brooks suggests that the most important way of achieving this is by empowering a single software architect who has a high-level overview and can make the final call on different, competing design alternatives. I totally agree with this from my own experience of working on large projects where multiple people held design responsibilities. In this part of the book, the author also has a timely chapter on telecollaboration and on the impact of modern technologies, such as videoconferencing via the internet, on team design.
Part three, titled Design Principles, contains various essays on budgeting, constraints, and user involvement in the design process. There is also some interesting material on what Brooks calls exemplars in design, i.e. the reuse of previous designs as a whole or in part in creating new designs. My favorite chapter in this section of the book is the one on good style. I find that a good design doesn't just need to be coherent and functional, it also needs to be elegant. Brooks's definition of design style is quite good in my opinion: "Style is a set of different repeated microdecisions, each made the same way whenever it arises, even though the context may be different". Well put.
Part four of the book, in which the author outlines his dream software system for designing houses, is the by far weakest part of the book for me. The presented "design" of the dream system is simply a list of high-level features without going into any detail, which is pretty pointless in my opinion. Part five gets more interesting again with two essays on great designers and how to foster an environment at a company to make designers great. In particular, I like the idea of having designers "eat their own dog food", i.e. forcing them to use the end products of their designs out in the wild (maybe in form of a sabbatical at one of the system's customers). The book concludes with seven chapters on various case studies. While these are certainly interesting, they don't contain any additional essential thoughts on the design process that weren't already presented in the previous parts of the book.
The Design of Design is an excellent book from one of the pioneers in computer science. Brooks's writing style is as elegant and enjoyable as ever. While he dates himself in some of his examples, the overarching ideas of the book are timeless and important. Not many books have been written about the design of the design process itself and this book is a valuable addition. It is mostly aimed at designers and people who have spent some time reflecting on the design process itself. The casual reader and people who are more concerned with implementing designs rather than creating the designs themselves might find it somewhat intangible. However, even designers in disciplines other than computer science or software development can gain a lot from the insights in this book.
You can purchase The Design of Design: Essays from a Computer Scientist from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Taylor Momsen Did Not Write This Slashdot Headline
Hugh Pickens writes "David Carr writes that headlines in newspapers and magazines were once written with readers in mind, to be clever or catchy or evocative, but now headlines are just there to get the search engines to notice. Hence the headline for this story that includes a prized key word for one of the 'Gossip Girls' — just the thing to push this Slashdot summary to the top of Google rankings. 'All of the things that make headlines meaningful in print — photographs, placement, and context — are nowhere in sight on the Web,' writes Carr. Headlines have become, as Gabriel Snyder, the recently appointed executive editor of Newsweek.com, says, 'naked little creatures that have to go out into the world to stand and fight on their own.' In this context, 'Jon Stewart Slams Glenn Beck' is the ideal headline, guaranteed to pull in thousands of pageviews. And while nobody is suggesting that the Web should somehow accommodate the glories of The New York Post's headlines in that paper's prime, some of its classics would still work. 'Remember "Headless Body in Topless Bar," perhaps the most memorable New York Post headline ever? It's direct, it's descriptive, and it's oh-so-search-engine-friendly. And not a Taylor Momsen in sight.'" -
Programming Clojure
eldavojohn writes "Programming Clojure by Stuart Halloway was very near to the perfect book for me. It covers many things common to many Lisp languages while highlighting in moderate detail the things that make Clojure unique and worthy of some attention. The book spends a large amount of time dealing with the intricacies of interfacing fluidly with Java (down to a package rewrite inside a large project). This fits me perfectly as a Java programmer, and I now feel ready to experiment with peppering functional language capabilities into an object oriented language. The book also strives to show how to simplify multithreading through functional programming, which is good because I find multithreading in Java a serious headache that few are good at. Programming Clojure, released in May 2009, is currently the only book out there devoted to Clojure, and the introduction is written by the language's creator, Rich Hickey, who says, 'What is so thrilling about Stuart's book is the extent to which he "gets" Clojure.' The book earns its place on the Pragmatic Bookshelf by guiding the user through rewriting a part of Ant into a new build tool called Lancet — adding to the project what you just learned about Clojure at the end of each chapter." Keep reading for the rest of eldavojohn's review. Programming Clojure author Stuart Halloway pages 304 publisher The Pragmatic Bookshelf rating 8/10 reviewer eldavojohn ISBN 978-1-934356-33-3 summary A firm definition of Clojure via examples coupled with the beginnings of actually programming Clojure. First, a lot of you are probably wondering what Clojure is and asking me why you should care at all about it. Well, Clojure is a functional programming (FP) language that runs on top of the extremely pervasive Java Virtual Machine and in doing so seems to offer a simpler way of multithreaded programming. It belongs to the family of languages that are Lisps and as a result this book covers a lot of remedial material that is common to other Lisp languages. If you're a serious lisp programmer, you'll be able to skip some of this book (the intro will guide you). Clojure has rarely been mentioned on Slashdot with the resulting comments revealing largely confusion or considering it a buzzword. It's going to be hard to write this review about the book instead of the language being that 99% of what I know about Clojure comes from this book. If you work through this book linearly, you must also use the command line read-eval-print loop (REPL) that, similar to Ruby's IRB, allows you to get hands on with Clojure and Halloway's examples.
Both Hickey and Halloway are very active in Clojure development. In fact, Halloway has a video out on types and protocols, new developments in Clojure 1.2 since the book went to print. Halloway does a good job at providing examples, keeping the book pragmatic and showing you the "wrong" way before incrementally showing you how to correctly accomplish various goals in Clojure. But he loses two points on this review for two reasons. One is that he over evangelizes about Clojure. It would lend a lot more credibility to everything else he says if he would just relent and abstain a bit from painting Clojure as the best language for any task. This ties into my second point which is the fact that books on programming languages are supposed to give the reader two very valuable things: knowledge of when to use the language and knowledge of when not to use the language. Programming Clojure is lacking in the latter--this is not a unique problem as most books about a language really sell their language. All too often in my professional career I see a solution and think, "Wow, that really was not the right tool for the job." (I'm looking at you, Java) Clojure definitely has its strengths and weaknesses despite very little evidence of the latter in this book although I was directed to a QCon presentation where the author speaks more about where Clojure excels in real life.
That said, the book is a great fit for the object oriented Java developer who does not also code a lisp-like language regularly. I say that because Chapter Two deals with reviewing all of the facets of Clojure--most of which are found in other Lisp languages which might be seen as remedial to a proficient Lisp developer. However, before you skip it entirely, there are important notes that Halloway injects into these chapters ranging from how not to do things in Clojure to the minute differences and implications they hold. Chapter Five dives into the fundamentals and features of functional programming in Clojure. This chapter was especially useful to me as I'm not used to languages featuring things like lazy sequences, caching of results or tail-call optimization. Working through the examples in Chapter Five really opened my eyes to some of the more powerful aspects of FP. Like how an infinite sequence can easily be handled by Clojure and its laziness allows you to only pay for what you need from that sequence. While definitions of infinite sequences are also possible in Haskell or Python, Clojure brings this capability to the JVM (not that anything is preventing a more verbose Java library from handling such structures).
Chapter Three focuses a lot on Clojure's interaction with Java and does a great job of showing you how to rewrite part of your Java project into Clojure and run it on the JVM. This includes calling Java from Clojure, creating and compiling Clojure into java classes, handling Java exceptions in Clojure and ends with the beginning work in Lancet (the build tool the book strives to create using what we learn in each chapter). It also contains a bit on optimizing your performance when working with Java in Clojure. This theme continues through the book as Halloway knows that one of Clojure's main selling points is that it can be so much faster than Java if you're willing to put in the extra work and planning to utilize pure functional programming.
In Java, everything is an object. In Scheme, everything is a list. Well in Clojure, the main staple is sequences which brings us to Chapter Four: Unifying Data with Sequences. While this chapter succeeds in teaching how to load data into sequences, how to consume data from sequences and how to force evaluation of lazy sequences, it felt like one of the weakest chapters in the book. This is all necessary in learning Clojure but Halloway skimps on examples and could stand to add some more examples on what is and isn't seq-able, seq-ing on various things and performing functions on various things.
Multicore chips are all the rage these days. And right now it seems that developers are by and large content with coding single threaded applications. But that may change in the future when the user expects more than a few cores in usage. In the introduction, Halloway argues a few reasons why we all should use Clojure and one of those reasons happens to be the somewhat sound logic that we will all have cores coming out of our ears in the near future. That means that as a developer you have the option to spawn more threads which means coordination of threads which means you will be forced to do the dirty dance of concurrency. Chapter Six is entirely devoted to this and, honestly, I reread a lot of this chapter as there are several update mechanisms and models that you can use to manage concurrency in Clojure. Unsurprisingly there is no silver bullet for concurrency even in Clojure. This book has but a handful of figures and their formatting leaves much to be desired but the two in this chapter are necessary references for deciding if you should use refs and software transactional memory, atoms, agents, vars or classic Java locks. This is a potent chapter that ends with a snake game implementation in Clojure demonstrating some basic concurrency. While Clojure protects you from some classically complex issues and may make concurrency vastly more succinct, it still requires a lot of thought and planning. Halloway provides good direction but clearly hands on experience is a necessity in this realm.
Chapter Seven focuses entirely on macros and is somewhat disheartening in that it presents an extremely powerful feature of Clojure that is also very complex. Halloway gives two rules and an exception for Macro Club. The first rule is: "Don't Write Macros." The second rule is: "Write Macros if That Is the Only Way to Encapsulate a Pattern." The exception is you can also write macros if it makes calling your code easier. Halloway does a good job of explaining the basics of macros in Clojure and breaks them down via a taxonomy into categories and examples of macros in Clojure. Macros are a necessity when you're trying to augment Clojure by adding features to it or if you are creating a Domain-Specific Language (DSL). Macros in Clojure do seem easier than macros in most other Lisp languages. At the end of Chapter Seven, you create a basic DSL for Lancet which was helpful even though I was left feeling helpless in the face of macros. Despite the complexity of macros in Chapter Seven, Eight's multimethods are similar to Java polymorphism and was much easier to wrap my head around than macros. Multimethods are used very infrequently (seven times in the five thousand lines that compose the Clojure core).
Chapter Nine is unfortunately less than twenty pages and deals with "Clojure in the Wild." You would think that a book in the series of Pragmatic Programmer would have more pragmatism than the features of a language with Lancet but let's face it--Clojure is a relatively young language. Nine covers automated tests, data access and web development. The automated testing is a short section on Clojure's test-is packaging. The database stuff appears to be little more than wrappers around the already mature JDBC. The web development consists of an intro to Compojure which is similar to web.py and Sinatra. Compojure shows a lot of promise in reducing the amount of code one needs to write a basic web application. It lacks the feature set and support that Rails has with rapidly building CRUD applications but holds a lot of potential to be flushed out into something similarly powerful. Halloway says his introductions to these projects should "whet your appetite for the exciting world of Clojure development" but I think a more accurate description is that these brief brushes with functional projects leaves the reader ravenously blinded by hunger for more.
Some final thoughts on the book: I caught only two very minor typos in the book. It's all English and code. There were no pictures or illustrations in this book except for one on page 96 in which a tiny drawing appears named Joe who asks a question about vectors. Oddly enough, I didn't find Joe on any of the other three hundred pages. It was very easy to work through this book from cover to cover and the example code was very instrumental in my understanding of Clojure. As a Java monkey, rereading sections seemed a requirement although the book is concise enough for me to enjoy in my free time over one week. Halloway cites mostly websites and utilizes tinyurl to reference blogs like Steve Yegge's blog and frequently he references Wikipedia. Only three of his many citations are other printed books (although one of them is Gödel, Escher, Bach: An Eternal Golden Braid). Halloway's greatest strength is the engaging examples (like the Hofstadter Sequence) that he picks and provides to the user and I hope that future editions of the book build on this as well as expand on the growing base of Clojure projects out there. His github is rife with both instructive and pragmatic examples that could stand to be included in a future book.
Some final thoughts on the language: Clojure holds a lot of potential that is yet to be realized. I cannot say yet whether the succinct syntax offers a good balance between quick coding and readability. To the uninitiated, the code can look like a jumble of symbols. Yes, we escape the verbosity of Java and the kingdom of nouns but is what Clojure offers (a neighboring kingdom of verbs) better? While Clojure is concise, it requires a lot of keywords which required a lot of usage look up when starting. Clojure code is potent and powerful. A mere five thousand lines of Clojure code create your engine--the core of the language. I assume this brevity is due to ingenious reuse that Clojure can offer but I would hate to be the person to maintain that code if I was not the author. What's better is that this code is quickly conjured at the REPL if you wish to read it yourself or augment a feature. A sage coworker who has seen much more than I in this business of software development recommended Clojure to me. He was right that it is a very interesting and innovative language but in my opinion it has a long way to go before it becomes the next Ruby or Java. Clojure needs an equivalent to Ruby on Rails and it's fighting an uphill battle against all the developers like myself that left college with so much object oriented coding and so little functional programming (although Scheme is my alma mater's weed out course). If you find yourself stagnating and are thirsty for some continuing education in the form of a stimulating challenge, I recommend Clojure (and this book on Clojure). Hopefully Clojure's full potential is realized by the community and it finds its deserved place in many developer's tool sets as the right tool for some jobs.
You can find Programming Clojure in three DRM-free formats and hard copy from the publisher's site. For a sample of the author's writing and to get a feel for how he injects Clojure code into it, check out his blogs on his company's website.
You can purchase Programming Clojure from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Matplotlib For Python Developers
Craig Maloney writes "Ever since there was a collection of numbers, it seems that invariably someone will want a graph of those numbers. There are literally hundreds of different styles of graphs, and almost as many programs and tools to make those graphs. Matplotlib, a library and toolkit for the Python language, provides an easy and effective way to make some impressive graphics with little more than a smattering of Python. Matplotlib for Python Developers is equally impressive at distilling the core set of features of Matplotlib in a way that shows the reader how to get the most out the Matplotlib toolkit." Read below for the rest of Craig's review. Matplotlib for Python Developers author Sandro Tosi pages 291 publisher Packt Publishing rating 9/10 reviewer Craig Maloney ISBN 978-1-847197-90-0 summary A comprehensive overview of the powerful Matplotlib Python library Matplotlib for Python Developers begins with the customary introduction to the Matplotlib library. It includes where to download Matplotlib, as well as brief installation instructions for both Linux, Macintosh, and Windows platforms. The book then quickly moves to the next chapter, where the basic library functions are presented, via the interactive iPython shell. Each section of the chapter introduces a new part of the graph, with items like titles, grid lines, and labels being explained clearly and concisely. Also briefly presented are other useful libraries like numpy, as well as the various back-ends that Matplotlib supports. Chapter 3 continues the even pace, presenting more plot styles, and plot types, including polar graphs. These two chapters cover the fundamentals of Matplotlib very well, with each step clearly marked by what the graph should look like once completed.
The next chapter introduces more advanced plotting concepts that Matplotlib is capable of handling. The chapter begins with the three ways that Matplotlib may be used (The pyplot module, pylab, and the Object Oriented interface). From there, the book delves into subplots, multiple figures, additional axes, logarithmic axes, date plotting, contour plots, and image plots. Also included are sections on using LaTeX and TeX with Matplotlib, both for exporting graphs, as well as using TeX inside plots via Mathtext. By the end of the chapter, I felt very comfortable with the environment and the capabilities of Matplotlib, both as an interactive environment, and as a module for my own programs.
The next four chapters cover integrating Matplotlib with GTK+, QT4, wxWidgets, and web-based environments. The chapters for GTK+, QT4, and wxWidgets each begin by presenting a basic overview of the toolkit, and why one might want to use that particular toolkit. Next, the book shows how to embed a Matplotlib figure in a window, both with static and real-time data input. The book then shows how to use the toolkit's builder with Matplotlib (Glade for GTK+, QT Designer for QT4, and wxGlade for wxWidgets. The chapter on web development veers slightly from this format by showing several examples of using CGI and mod_python with Matplotlib before showing how to use Matplotlib with Django and Pylons.
The last chapter pulls together some "real world" examples together for the grand finale. The examples clearly show how Matplotlib would work for such plotting Apache web logs, fitting curves, and plotting geographic data. The geographic data plotting uses an additional module called basemap, which allows for plotting precisely on a map. This example floored me with the amount of power that Matplotlib possesses.
Overall, I found this book to be informative, without a lot of fluff. The organization of the book sometimes dipped into a chaotic presentation of "oh, look at this", but overall the author kept a very even pace, with clearly defined goals and clean resolution of those goals. Matplotlib for Python Developers is definitely a book that I would pick up to refresh my memory for using Matplotlib. The asking price is a bit steep for book that is just shy of 300 pages, but overall I highly recommend it for anyone looking to get started with this exceptional library. I'd also recommend it for anyone looking for alternatives to some of the other plotting packages available. Matplotlib is quite powerful, and Matplotlib for Python Developers makes this power very accessible.
You can purchase Matplotlib for Python Developers from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Hacking Vim 7.2
briancarper writes "Vim is an open-source text editor with a power and flexibility matched only by the steepness of its learning curve. As the author of this book states, 'Vim Can Do Everything' but configuring it to do so is sometimes daunting. Hacking Vim 7.2 aims to help the average Vimmer get the most out of customizing Vim, for fun and productivity." Read on for the rest of briancarper's review. Hacking Vim 7.2 author Kim Schulz pages 244 publisher Packt Publishing rating 8 reviewer briancarper ISBN 1849510504 summary Customizing and scripting Vim 7.2 Vim has an overwhelming number of features. Its built-in help system and documentation are comprehensive and easy to navigate once you know what you're looking for, but knowing where to start is sometimes very difficult. The best you can hope for in a book is a broad outline to point the way toward features that you didn't know much about. Hacking Vim 7.2 achieves this goal.
No topic is covered in nearly the depth you'll find in the official documentation (or even on the Vim Wiki), but every topic is covered in enough detail to let you know that a feature exists and to point you in the right direction to begin using it. Most helpfully, throughout the book are references to things to look up in Vim's help system, as well as links to various relevant scripts.
This is not a book for an absolute Vim beginner; some familiarity with Vim is assumed. And for a Vim fanatic, much of the material may be common knowledge for you already. But any seasoned Vimmer will tell you that there are always things to learn about this editor, and I think nearly everyone will learn something from this book. For someone who uses Vim and is looking to master it, this book is a great starting point, though you'll still need to dive into the official reference material to really cement your knowledge.
The book starts on an odd note. Chapter 1 is a history of vi and the various vi clones released over the past couple decades. This information is interesting trivia and serves to give credit to programmers who paved the road to Vim, but it doesn't really help anyone "hack Vim" in any way. The book probably could've done without this chapter.
Chapter 2 deals with customizing the overall look and feel of Vim. How and where to edit vimrc is covered, with brief attention given to cross-platform issues. It covers the basics (changing font faces and colors, customizing menus and toolbars), as well as pointing out some more obscure settings, like highlighting the cursor row and column (creating a kind of "cursor crosshair"), and using the match feature to highlight multiple search terms at once. This chapter is a good foundation for later chapters and a good introduction for anyone who has never edited their own vimrc.
Chapter 3 is about text navigation. Sadly, the book doesn't go into as much detail on movement commands as I would've liked. The ability to move around and manipulate text quickly in Normal Mode by combining counts and motions/operators is one of Vim's most unique and powerful features, but it only gets a few paragraphs here.
There are some interesting key mappings provided, for example how to move up and down between "virtual" lines when lines are soft-wrapped. Search is covered briefly, both plain text search and multi-file search via vimgrep, but there's little information about Vim's powerful regular expressions, which I thought was a shame. Marks are discussed, both normal "hidden" marks as well as visible "signs", the latter being a feature I've never used.
Chapter 4 is about "production boosters" and covers a wide variety of topics. Much of the chapter is devoted to "templates" and "snippets", which allow you to build skeletons of commonly-used source code (with fill-in-the-blanks markers) that can be re-used when editing new files. A system for using these templates is built from scratch using Vim script, providing a clever and useful example of scripting in action.
Auto-completion is covered in a lot of detail. Some custom key mappings are provided to help make "omni-completion" in Vim a bit easier to invoke. This chapter also very thoroughly covers Vim's multiple copy/paste registers and how they work. Recording and using macros, pointed out as one of Vim's more overlooked features, gets a good, lengthy example.
"Undo branching" in Vim is wonderful, but difficult to understand. Chapter 4 gives a simple, step-by-step example of why it's useful and how it works. This chapter also briefly discusses folding, vimdiff, netrw (editing files remotely via SSH and other protocols), and ctags. There's lots of good stuff in this chapter and you're almost certain to learn something useful.
Chapter 5 covers text formatting, both using built-in Vim commands and by piping text through external tools like par and tidy. A lot of space is devoted to using Vim to prettify plaintext, for example by centering titles on a line, adding ASCII-art dashes for headers and making bulleted lists. If you edit plaintext in Vim often, this is probably a great chapter, but I didn't find much use for most of it.
For programmers, the book discusses the different indentation styles available in Vim and very briefly shows how to write your own indentation functions, and how to indent and reformat blocks or whole files of code all at once. "Paste mode" also gets a passing mention. Personally I think a programmer reading this book would've benefited from much more detail about Vim's myriad indentation and text-wrapping options and how they work together, as this can be one of the most frustrating parts of Vim to configure correctly.
I had high hopes for Chapter 6 and 7, which deal with Vim scripting, but I was largely disappointed. Chapter 6 deals with scripting basics, and is essentially a beginner's language tutorial. It explains which variable types exist in Vim script, how if/then/else works, how for- and while-loops work, how function parameters operate, and so on, but anyone who knows a modern scripting language will learn these things quickly without much effort. There's also some basic information about how to write a syntax-highlighting script from scratch, but there's not really enough information to allow you write one for a real programming language.
Chapter 7 is supposed to be about "extended scripting" topics, but serves largely as a style guide. It details how to structure a script to check for compiled-in features and Vim version number. This chapter touches briefly on using SID and PLUG to namespace functions, but the explanation and example left me puzzled. How to use the debugger and how to make Vimballs are both explored, and the book points out that you can use Perl, Python and Ruby to script Vim without going into much detail or giving solid examples.
If you're looking for any advancing information on writing your own functions in Vim script, you're mostly out of luck here. Previous chapters in the book do include some useful and practical functions, but those functions are never really taken apart or explained in detail.
Finally there are two appendices, one of which lists a bunch of games you can play in Vim (again this could've been left out of the book and I wouldn't have missed it), as well as examples of using Vim as a mail, chat, and Twitter client. There's also a feature-by-feature comparison of Vim to MS Visual Studio, showing that many of Visual Studio's abilities can be provided in Vim given the proper scripts. I thought it was an interesting demonstration that Vim really can do everything, just in case the reader had any doubts at this point. The last appendix is a style guide for keeping your vimrc clean, mostly via common sense and splitting your configuration into multiple files.
Overall, stylistically the book is a bit dry and humorless, but it's easy enough to read and it gets its information across clearly. There were a few typos and editing errors, including a few rather glaring typos in some code examples, but overall the author seems extremely knowledgeable about Vim. The best parts of the book are where the author says "this was useful to me personally, so here's how I do X". This book is clearly written by someone who uses Vim all the time, and most of the information provided is practical and immediately usable.
I do feel the book should've gone into more detail in many areas. At 244 pages, the book is short and gives a rather shallow view of many of Vim's features. But the book hits all the right notes and leaves few features entirely unexplored.
I'd recommend this book to any person who uses Vim and wants to explore features they may have been missing. There's nothing in this book you won't find in Vim's built-in documentation, but this book lays everything out in an easy-to-read format, and should serve as a good starting point to customizing and mastering Vim.
You can purchase Hacking Vim 7.2 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
When Internet Radios Get Affordable
DeviceGuru writes "Grace Digital Audio has just released a new device that functions like an Internet radio tuner in a whole-house audio system and is being sold at a surprisingly affordable price point. The Solo Wi-Fi Receiver works in tandem with Reciva's Internet radio station selection web service, provides excellent Pandora support, and also supports optional Internet services such as Live365, MP3tunes, Aupeo, and Sirius. It has built-in buttons and a display for easy control, comes with a dedicated IR-remote, and is supported by a free iPhone remote access/control app. We hear a lot about the high-end Sonos gear, but at just over $100, this little gadget seems like a breakthrough in cost-effective Internet radio, much as the Roku Netflix player broke ground in low-cost Internet video streaming." -
CMS Made Simple 1.6
cnymike writes "CMS Made Simple 1.6: Beginner's Guide by Sofia Hauschildt, recently published by Packt Publishing, is intended for new users of the open source content management application, CMS Made Simple (CMSMS). True to its title, the book delivers in all respects and provides a solid foundation from which to grow as you explore the rich possibilities of building sites with CMS Made Simple. The author, Sofia Hauschildt, is a consultant, programmer, and tutor and has a gift for communicating in a straightforward, readable manner. The technical level of writing never exceeds that which could be easily understood by a neophyte. The book does assume that the reader has some knowledge of HTML and CSS." Read on for the rest of cnymike's review. CMS Made Simple 1.6: Beginner's Guide author Sofia Hauschildt pages 364 publisher Packt Publishing rating 9/10 reviewer cnymike ISBN 1847198201 summary a practical, hands-on book based around a case study website I was first introduced to CMS Made Simple five years ago. I had a need to begin the development of a CMS-based website, and over the years I have explored many products, including WordPress, Drupal, Joomla, Website Baker, e107, and a slew of other open source applications. After trying many, I settled on CMS Made Simple to build many of the sites because of its ease of installation and operation.
The available documentation for CMSMS has been sparse however. The CMSMS web site has a wiki and user forum, but the wiki is not always up-to-date or complete. The user forum is an option for getting technical problems or other questions answered, but it is not the best place to ask questions if you are truly a neophyte. There is an expectation that you have a certain fundamental understanding of how CMSs work. The developers have clearly stated that CMS Made Simple is geared to web developers and not so much to neophytes who need a lot of hand-holding and who need relatively basic questions answered.
This book is the much-needed introduction to CMSMS. The approach taken by the author is exactly the approach needed if you were explaining how to use something to someone who has absolutely no knowledge of it. The learning takes place via the construction of a "case study" web site. You are taught how to install CMSMS and then how to plan your site, beginning with the creation of pages and navigation. The author even takes the time to explain how to customize TinyMCE (the WYSIWYG editor) to the level you need.
The methodology used in this book is straightforward and effective. As each topic is introduced, you are told what you will accomplish. Next, the instructions for accomplishing the task are given with ample use of screenshots when needed. As you work through the task, you are given additional tips and suggestions that help you fully appreciate what you are doing. Once the task has been completed, you are then given a summary of what just happened. Pop quizzes appear throughout the book to test your knowledge of what you were just taught. This type of repetition is one of the reasons the book is so effective. It super-charges the learning process. You learn by doing.
The author goes into surprising detail on many topics that give you a depth of understanding that you otherwise would not get by just trying to learn by yourself. For instance, in Chapter 4 — Design and Layout, the author discusses in a very concise manner how the Smarty template engine works. Various examples of how to harness the power of Smarty are given and before you know it, you've learned a great deal about Smarty that will greatly assist you in ultimately designing your own templates or modifying templates from other sources. Furthermore, an excellent section devoted on how to adapt templates from other platforms to CMSMS gives you the skills needed to accomplish that task. Having this knowledge opens the door to being able to adapt the huge number of templates , both paid and free, to your use on a CMSMS installation.
Core Modules are the essential modules that come with the CMSMS package. You learn about how these modules function and how to modify them in ways that let you adapt them to your specific needs. The author also discusses a number of third-party modules that give you additional features such as a photo Gallery or Newsletter.
Later in the book, more advanced topics are introduced. Some of the topics include how to make multi-lingual websites, how to translate core and third-party modules into a different language and how to create additional page layout capabilities by using extra page attributes.
Leaving no stone unturned, the book also discusses SEO practices, canonical URL's, how to avoid duplicate page content issues such as when you incorporate printer-only versions of your pages and much more. It is really surprising how much information is packed in to this relatively slim book.
There are many instances of code in the book that you need to type as you work through the exercises. Since there is no CD of these code snippets included with the book, the author has thoughtfully made available from the publisher website, a zip archive of the code.
To my knowledge, there currently is no other introduction to using CMS Made Simple. This book should quite frankly be required reading to anyone thinking of building a website with CMSMS. It will greatly accelerate your ability to successfully install, build and deploy a website based on CMSMS. The book is completely efficient in the way the information is presented and will give you a well-rounded perspective on using CMSMS. The book is designed with beginners in mind but even someone who has worked with CMSMS for a few years is likely to discover nuggets in this book that will be beneficial to them. The one thing this book is not, however, is a reference book. It is better to be used as a tutorial.
I have more computer books in my bookshelf than I care to count but this book is what I would consider a top-shelf book. It is easily digested, amazingly comprehensive and the only book you really need to get up and running with CMS Made Simple.
You can purchase CMS Made Simple 1.6: Beginner's 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. -
The Laidoff Ninja
walmass writes "My first reaction on seeing the book was, 'Oh no, another book with "Ninja" in the title.' But in this case, the authors have established a case for that: they explained that the first ninjas were peasants who could not take the abuse from the samurai anymore and how they used everyday objects as weapons." Keep reading to see what walmass has to say. The Laidoff Ninja author Craig Brown and Javed Ikbal pages 278 publisher CreateSpace rating 9/10 reviewer walmass ISBN 1451558848 summary Learn techniques that helped hundreds of people survive unexpected unemployment The authors are co-founders of The Layoff Support Network, which seems to be a collective knowledge-sharing site for people looking for jobs, and the authors say that the book distills the knowledge from the website collected over the past 2 years. The authors also started off by stating that this is not just a book about finding a job; this is also a book about surviving until finding a job. I think The Laidoff Ninja (henceforth, "LON") fares well on these claims.
The pre-ramble is listed as section zero (0) — perhaps not surprising considering the two authors are techies: information security is their day job. Keep that in mind when we look at what they manage to extract out of LinkedIn.
One thing I liked about this book right out of the gate is what the authors (or their editor?) decided to call "Quick-shot" guides. Instead of traditional table of contents, they have provided a listing of topics they thought might be interesting to the following types of readers:
- Job seekers with work experience.
- Recent graduates with limited work experience.
- People who are feeling "cash strapped."
- People who are feeling overwhelmed and emotionally distraught.
Considering the last bullet, I was not really surprised to see a section titled "Ninja Psychiatry." The authors made it clear that they do not have any formal training in Psychiatry and are not licensed to practice psychology, psychiatry or any mental health related profession. They then proceeded to dispense advice on feelings of Loss, Depression, Anxiety, Financial Worries and how to deal with rejection after interviews. The section ends with an admonition to say no to drugs, and encouragement to say yes to humor.
There are lots of "Guerrilla this" or "Ninja that" related to layoffs and job hunting, but I don't think I have come across any other book that addresses the mental aspects of being unemployed.
The next section, "Survival" contains a chapter titled "Pull money out of your butt." Crude but effective, and while whole books have been written about making money on eBay, LON addresses this in a practical way.
Frankly, I was a bit surprised to see LON come out and suggest people should not commit crimes when they are desperate for money. I think this would be obvious to any rational person.
There are some tips about maximizing your available financial resources by delaying payment on some utility bills. While legally OK, I question the morality of providing such advice to readers.
Part 4, "Getting a Job" is where the book begins to read like a traditional book, but there are some surprises and hidden gems there. The sections begin with a job-applications toolkit that recommends free email services, OpenOffice and other technological free-bees that would be required for a job-searcher. These are items that the typical Slashdot reader find amusingly basic, but would certainly be useful for seekers who have been out of the hunt for a while.
Part 5, "Finding opportunities" focuses heavily on LinkedIn. It contains a useful exercise where a job-seekers "needs and wants" are sorted in a "value sort" to determine what type of job would be suitable. But in the next breath, the authors suggest folding away the values-list and taking a job (any job) that will pay the bills. I fail to understand this contradictory advice, and wish they would make up their mind.
The LinkedIn content is useful, but only to a new user of LinkedIn. Experienced LinkedIn users may miss the nuggets buried among these basic facts.
Facebook, Twitter and Myspace are also covered. The well-known but often ignored warnings about being careful with what one posts on one's social networking profiles are posted here.
There is a scathing chapter on recruiters. While certain good qualities of recruiters are mentioned, it seems the authors generally believe that recruiters are uncaring commission-hounds that just want to place a candidate and don't care about individuals. The brutal honesty was refreshing, and I'd be curious whether a majority of Slashdot readers would agree or disagree with the authors.
If you consider that stress and anxiety for a jobless person comes from being, well, jobless, then Part 6, "Preparing for the battle" is the most important section in the book. It covers the basics like resumes, cover letters and elevator pitches, etc.
The next chapter is "Reconnaissance" and this is where the hacker background of the authors finally shows up. They show, with examples, how to find the name and email address of recruiters and HR people at practically any company. The theory being, if you can directly contact the HR people at a company, your resume will not be lost in the 1000 other resumes that people send in. There is just one problem with this theory being put into practice. The book assumes, and does not make abundantly clear, that without building up your network first to some reasonable degree this isn't easy to do. But after I have spent a few hours inviting people and joining groups as the book suggested, I was indeed able to pull up the names of some recruiters at Apple and Google. That accomplished, based on the techniques suggested in the LON, I was able to figure out their email addresses and email them. I hope spammers and marketing droids will not read this book and find out these techniques.
For example, I did not know that one could search Facebook by email and zero in on any individual. It is also a violation of my social norms to approach strangers on Facebook about jobs, but the authors provided guidance and specific examples on how to do that, and also when to step back and look for alternatives.
But some of the techniques, such as querying "whois" records to find out the email address format used by a particular company may not be for the average non-technical Joe, and also seem to skirt ethical boundaries without exactly stepping over the line.
This chapter alone is probably worth the price of the book
The book is a good value at 278 pages and the authors have not done any "white space tricks" to make it seem bigger. A laid-off person would probably appreciate the price/performance of this book.
Overall, "The Laidoff Ninja" is an extremely valuable resource on dealing with the mental stress and anguish that may come from being laid off. It presents creative and novel ways of finding jobs by leveraging social media. The book is a tool in itself that can help the reader survive and prepare for the battle that is a job-search, and do it in a highly effective way.
This book is an excellent value if you need help dealing with the stress of unemployment, or want an edge in reaching hiring managers or recruiters at potential employers. This book is not meant to teach you how to write your resume or cover letter. It will work for novice and experienced candidates alike, although the LinkedIn tricks would definitely favor a more technical reader. I highly recommend it.
You can purchase The Laidoff Ninja from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
jQuery Cookbook
Michael J. Ross writes "Like all major programming languages, JavaScript can be extended in functionality through the use of libraries, such as jQuery, which is currently seeing tremendous popularity and enhancement in the Web development community. Designers and developers who want to learn how to use jQuery for creating rich user interfaces through client-side JavaScript are advised to begin their journey to jQuery proficiency by reading one of the many books dedicated to this powerful JavaScript resource — such as jQuery Cookbook: Solutions & Examples for jQuery Developers." Read below for the rest of Michael's review. jQuery Cookbook author Various authors pages 480 pages publisher O'Reilly Media rating 9/10 reviewer Michael J. Ross ISBN 978-0596159771 summary An extensive collection of solutions to jQuery problems. This book was published by O'Reilly Media on 19 November 2009, under the ISBN 978-0596159771, and is authored by no fewer than 19 contributors — all quite knowledgeable of JavaScript and jQuery — and edited by one of those contributors, Cody Lindley. On the publisher's page for the book, visitors can read the book's description, table of contents, and errata, of which there are 22 as of this writing, although none have been confirmed by the authors or publisher. Visitors can also download all of the sample code used in the book, in addition to the eight code demos for Chapter 13. Lastly, prospective buyers can purchase the print version of the book, the electronic one (in PDF, ePub, and Mobi format), or the two combined at a considerable discount — or read the book as part of Safari Books Online.
jQuery Cookbook's 480 pages are organized into 18 chapters, covering a wide range of topics: the basics, element selection, utilities, dimensions, effects, events, forms, plug-ins, user interfaces, theming, Ajax, data formats, and testing. Lindley starts off the first chapter, titled "jQuery Basics," by presenting the advantages, philosophy, and organization of jQuery. Readers will likely chuckle at his suggestion that they memorize the jQuery API outline, which comprises two pages. The many code snippets are quite helpful, but they are needlessly long, partly because most of them contain far more HTML elements than are needed to illustrate the point, and also because each snippet contains the DOCTYPE and head tags, among others — often taking up more lines on the page than does the code pertinent to the topic at hand. This pointless and space-wasting redundancy is seen also in a few of the chapters that follow. As well, some of the passages in the first chapter's narrative are oddly phrased, frequently requiring a rereading of the material, while others could be made more concise. Additionally, some of the sample code contains bugs, which fortunately are detailed on the errata page mentioned earlier. The second chapter, "Selecting Elements with jQuery," presents numerous techniques for specifying elements within the DOM. The only obvious blemish in the material is in section 2.4, where the author refers to animated elements, but with absolutely no explanation as to what that means; countless new readers may assume he is referring to animated GIFs. Nonetheless, these two chapters form a helpful foundation for the rest of the manuscript.
The third chapter, "Beyond the Basics," gets off to a questionable start with the assertion that "jQuery can [] extend jQuery to infinite possibilities," which sounds like a line wisely rejected for the movie Toy Story. Yet the discussion continues on a solid footing, as it covers more advanced techniques for working with selected elements. Some of the discussion overlaps material presented in the previous two chapters, but it is always worthwhile to hear critical concepts explained from a different perspective. However, section 3.8, which briefly introduces jQuery plug-ins, is out of place; that material should be folded into Chapter 12, which focuses on that topic. The fourth chapter may be brief, but it explains several jQuery utility methods. Most of the code snippets use a format of "(function($) (jQuery);" — whose usage and advantages are not explained in this chapter, nor any earlier ones. This points up one of the key downsides of having almost every chapter of a programming book written by separate authors: readers can be confused or misled by disparities in coding practices, especially when the reasoning behind them is not given. The title of the fifth chapter, "Faster, Simpler, More Fun," is a bit misleading, because the authors don't explain how to make one's jQuery programming simpler or more fun, but they do provide a great deal of information on troubleshooting, performance optimization, and jQuery coding practices, including those pertaining to progressive enhancement, accessibility, and unobtrusiveness. Section 5.19 lacks a figure showing the menu being discussed, but that's the only obvious flaw.
The remaining chapters are dedicated to more specific aspects of jQuery programming, including the important topics of page layout as well as element positioning and sizing, discussed in Chapter 6. The subsequent chapter delves into effects, which is one of the more exciting topics in the jQuery realm. Even though a portion of the readers may be put off by the trickiness of the code, the material does demonstrate some of the powerful capabilities of jQuery effects — which in conjunction with HTML5 may easily encroach on areas of client-side programming formerly dominated by Adobe Flash. Throughout Chapter 7, most if not all places where the author refers to the "mouse," he apparently means the "mouse pointer." Events play a critical role in JavaScript software, and even more so for code that is mostly jQuery — thus the value of chapters 8 and 9, which examine basic and advanced event handling. The next pair of chapters discuss a variety of techniques for enhancing HTML forms, from scratch and through the use of jQuery plug-ins. The sample source code is better commented than what is seen elsewhere in the book, and the explanations are quite good. The subsequent chapter focuses on jQuery plug-ins, beyond their usage within HTML forms, and briefly explains how to create your own plug-ins and how to perform unit testing on them.
Because JavaScript is primarily a client-side technology, it should come as no surprise that jQuery can prove an outstanding tool in crafting user interfaces for Web sites and Web-based applications. Chapters 13 through 15 explore such topics as drop-down menus, sliding panels, rotating images, modal windows, tooltips, the jQuery UI, and how to style jQuery UI widgets, a.k.a., theming. No Web interface is an island, and over the years there have emerged a number of data formats and protocols for utilizing those formats for transmitting information between browsers and servers — such as Ajax, XML, JSON, and JSONP — covered in Chapter 16. Finally, the last two chapters of the book are geared more to testing and deployment, and less so to interface design and development. The topics covered include techniques for persisting data in the browser, managing large amounts of code and data for major software projects, automating the unit testing of jQuery code, testing callbacks and user actions, grouping and selecting tests, and more.
Overall, jQuery Cookbook starts off with some basics, and only then moves on to higher-level concepts and related use cases. However, the book is ostensibly aimed at beginners and intermediate JavaScript programmers, but the former group may find the ideas difficult to grasp fully, despite the introductory chapters — because some of the techniques are fairly advanced, they involve terminology unfamiliar to anyone new to jQuery, and some of that terminology is not explained. On the other hand, the recipes are generally well written and clear, supplemented with properly tested and working code. Consequently, anyone who takes the time to work through the examples patiently, should be well rewarded.
Because of its coverage of a wide range of topics, jQuery Cookbook can be used not only as a learning aid, but in some respects also as a reference — and in this regard the book's index will be quite useful. In light of the considerable length of the manuscript, reading it from stem to stern would involve an investment of time — especially if one were to work through all of the examples and try them out in one's own development environment — quite easily, in fact, since all of it can be downloaded from the publisher's site. Most of it, however, is organized as plain text files, and not HTML files; and no reason is provided for this annoying choice.
In terms of the layout and appearance of the text and figures, one flaw is that in countless lines throughout the book, the words are jammed together, making it difficult to read the text rapidly. In fact, some of these lines almost look like single words. This is also seen in the subheads, an excellent example of which can be found on page 149: "Solution2:ChangingthehrefAttributeoftheStylesheetThat'sResponsible." Unfortunately, the same is true for much of the source code, but in a different sense: Operators and variables are jammed together, clearly illustrating the need for whitespace in making code more readable. Some of the code is excessively long (noted earlier), and the authors are inconsistent as to whether their JavaScript is placed at the end of the body element or in the header element. Nonetheless, the sample code is generally of good quality.
There is another aspect related to not only this book but all other computer programming books for which individual chapters are written by different authors: jQuery Cookbook does not seem to be a single book, but instead a collection of books that were bundled together because of a common thread, namely, jQuery. This leads to some of the problems mentioned earlier, such as discrepancies in coding techniques and formatting — from which the beginning reader is supposedly learning best practices. On the other hand, the multi-author approach makes it possible for each major subject area to be handled by one or more writers who are expert in that particular area — which in turn results in a better product overall, even if one or two of the chapters are noticeably weaker than the others.
The book contains a number of copyediting flaws not listed on the aforementioned errata page: "elevated" should instead read "alleviated" (page 12); "or [its] alias" (13); "could change" should read "could be changed" (26); "jQuery('a')removeAttr('title')" is missing a "." (30); "'blue')" is missing a terminating ";" (50); "season in" should read "season" (56); "was contained" should read "is contained" (144); "position: absolute" in the narrative should not be broken between two lines (156); "great[er] than" (157); "equal[-]sized panels" (160); "only running" should read "only runs" (165); "still support[s]" (168), "#source5txt" should read "#source4txt" (217); and at this point I stopped recording errata. Also, in countless places in most of the chapters, semicolons are used where dashes are called for, and vice versa. O'Reilly's copyeditors should have detected and fixed those errors prior to publication.
Yet most of these blemishes are of little significance. What really counts is the overall value provided to the reader: Usable for both learning and reference, jQuery Cookbook delivers a tasty buffet of programming essentials, best practices, illustrative examples, optimization tips, and other information of value to JavaScript developers who wish to spice up their Web creations with jQuery.
Michael J. Ross is a freelance website developer and writer.
You can purchase jQuery Cookbook: Solutions & Examples for jQuery Developers from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Fatal System Error
brothke writes "As computing and technology has evolved, so too have the security threats correspondingly evolved. The classic Yankee Doodle virus of 1989 did minimal damage, all while playing a patriotic, albeit monotone song. In 2010, aggressive malware now executes in stealth mode, running in the background with an oblivious end-user, and antivirus software that can’t detect it." Read on for the rest of Ben's review. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet author Joseph Menn pages 304 publisher PublicAffairs rating 8/10 reviewer Ben Rothke ISBN 978-1586487485 summary Non-fiction cyber-thriller with super analytical advice Cybercrimes have evolved using increasingly sophisticated techniques, and the resulting financial losses are staggering. Many criminal cyber gangs are well organized and resourceful and their ability to recover after new defenses have been deployed make it a challenge for those on the right side of the law.
Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is an excellent book billed as a non-fiction cyber-thriller, and describes the cyber gangs who operate on the Internet. Author Joseph Menn, a cyber security reporter for the Financial Times, takes the reader into the inner operations of today's cyber-criminal, who use the Internet as their personal mint.
While Willie Sutton never really said that the reason he robbed banks is because that's where the money is; the truth is that today's cyber criminal does know where the money is, and its address is the Internet. They use the net as a means to steal and extort money from businesses and individuals.
The book's protagonist is Barrett Lyon, a highly skilled technical engineer and entrepreneur, who founded companies such as Prolexic, BitGravity and 3Crowd. It was at Prolexic where Lyon developed the software used to fend off the DoS attacks that were bringing some of his client's networks to a standstill.
Lyon, along with the other major character in the book, Andy Crocker, a British policeman, were the 1-2 punch that resulted in the prosecution of a Russian cyber criminal. The fact that the prosecution took place via the Russian judicial system was a surprise to everyone. What was unusual about the prosecution is that criminals in Russia and Eastern Europe often operate with the assistance of corrupt political and police forces. Even though the evidence against the defendant was significant, the ability to secure a guilty verdict was far from a sure thing.
Much of the book deals with Lyon and his working relationship with BetCRIS, a company offering online gambling services, including sports betting, online casino games, online bingo and mobile gambling.
BetCRIS is an off-shore company, operating in the safe havens of the Republic of Costa Rica. In 2003, at the height of the DoS attacks, the BetCRIS website was down for nearly a month. With tens of millions of dollars of gambling revenue at stake, BetCRIS management were desperate for a solution, and they reached out to Lyon.
While Lyon created a first-generation solution to stop the early DoS attacks, the book details how the attackers were able to get around those countermeasures, and how it turned into a cat and mouse game of futility, where Lyon would create a fix, only to be beguiled by a new attack.
In the book, Menn writes about many of the major players in the Internet criminal world. He spends a good amount of time writing about the infamous Russian Business Network (RBN). He notes that little true business was carried out via the RBN; rather it was a front for Internet-based criminal activities in Russia.
Menn does get into some technical details, but not so much so to confuse a non-technical reader. He covers topics such as botnets, DoS and DDoS attacks, cyberwarfare, cyber espionage, and the difficulty in prosecuting the perpetrators.
Menn notes that there are many reasons why Russia and in Eastern Europe are ground zero for cybercriminals. The educational institutions there provide a good source of technical training; combined that with the fact that legitimate job opportunities are often quite limited. Add to the fact that political and law enforcement officials often ignore the cyber attacks again the rich capitalists of the US, the difficulty and challenges with jurisdiction, and you have a perfect storm for the creation of a sophisticated cyber criminal element. Finally, there is a long and established culture of corruption in Russia and in Eastern Europe that adds to the problem.
There are two directions that Fatal System Error takes. The main part of the book is Menn's narrative, which takes up 11 of the book's 12 chapters. These 11 chapters take the reader on an enthralling ride into the inner workings of the cyber-criminal world. Fatal System Error is an enjoyable read on par books such as The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage and Takedown: The Pursuit and Capture of Kevin Mitnick.
Where the book truly stands out is in the final chapter Fixing What's Fixable, and is worth purchasing for that chapter alone. Menn displays his incredibly deep understanding of the underlying issues around computer security and why we are vulnerable. He suggests numerous pragmatic solutions to the crisis, and how to better secure the Internet and networks.
Some of the ideas include significantly greater budgets for information security, more liability against software developers who write insecure code, greater information sharing between the cybercrime agencies in the US and their counterparts in Russia, and more. His on-target analysis of what the US Government can and should do to increase the security of the Internet infrastructure is quite impressive.
Reading the narrative part of the book, many readers will likely be scared to death to connect their computers to the Internet, and to a limited degree, rightfully so. Even with Menn's balanced and compelling account of what transpired, the threat of identity theft and ease of how financial accounts are breached may be too much for some readers many to bear.
If corporate America and the US Government would take Menn's suggestions to heart on how to create a secure Internet infrastructure, many of those security concerns he wrote about could be obviated, and the cyber criminals of Eastern Europe would have to look for different work.
Additional pragmatic ideas that Menn suggests are to legalize and regulate online gambling, more funding to teach safer computing in schools, and for a complete re-engineering of the Internet, in order to build in the necessary security functionality which should have been in there in the first place. As part of the process to re-engineer the Internet, Menn suggests designs that create accountability into the Internet fabric.
Finally, Menn notes that many end-users are not blameless. By not educating themselves on how to securely use the Internet, they are setting themselves up to becoming victims. He writes that anyone that connects a computer to the Internet needs to have significant security vigilance to ensure that they don't make themselves a victim. It is 2010 and far too many people are still oblivious to the security threats. Many still naively believe that someone from Nigeria really does want to make them richer with tens of millions of dollars worth of gold from their deceased uncle.
Menn shows how the underlying infrastructure of the Internet is significantly more vulnerable than most people realize. Finally, what exacerbates the problem is that those doing the attacks are working much quicker than those who are trying to secure it.
One of Menn's criticisms is that the US Government spends a fraction of what it should on securing its critical technology infrastructure. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is the wake-up call that those in Washington, and those charged with IT need to wake up to. Unfortunately, it is likely those that truly need to read this book, will press the information security snooze button yet again.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Fatal System Error
brothke writes "As computing and technology has evolved, so too have the security threats correspondingly evolved. The classic Yankee Doodle virus of 1989 did minimal damage, all while playing a patriotic, albeit monotone song. In 2010, aggressive malware now executes in stealth mode, running in the background with an oblivious end-user, and antivirus software that can’t detect it." Read on for the rest of Ben's review. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet author Joseph Menn pages 304 publisher PublicAffairs rating 8/10 reviewer Ben Rothke ISBN 978-1586487485 summary Non-fiction cyber-thriller with super analytical advice Cybercrimes have evolved using increasingly sophisticated techniques, and the resulting financial losses are staggering. Many criminal cyber gangs are well organized and resourceful and their ability to recover after new defenses have been deployed make it a challenge for those on the right side of the law.
Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is an excellent book billed as a non-fiction cyber-thriller, and describes the cyber gangs who operate on the Internet. Author Joseph Menn, a cyber security reporter for the Financial Times, takes the reader into the inner operations of today's cyber-criminal, who use the Internet as their personal mint.
While Willie Sutton never really said that the reason he robbed banks is because that's where the money is; the truth is that today's cyber criminal does know where the money is, and its address is the Internet. They use the net as a means to steal and extort money from businesses and individuals.
The book's protagonist is Barrett Lyon, a highly skilled technical engineer and entrepreneur, who founded companies such as Prolexic, BitGravity and 3Crowd. It was at Prolexic where Lyon developed the software used to fend off the DoS attacks that were bringing some of his client's networks to a standstill.
Lyon, along with the other major character in the book, Andy Crocker, a British policeman, were the 1-2 punch that resulted in the prosecution of a Russian cyber criminal. The fact that the prosecution took place via the Russian judicial system was a surprise to everyone. What was unusual about the prosecution is that criminals in Russia and Eastern Europe often operate with the assistance of corrupt political and police forces. Even though the evidence against the defendant was significant, the ability to secure a guilty verdict was far from a sure thing.
Much of the book deals with Lyon and his working relationship with BetCRIS, a company offering online gambling services, including sports betting, online casino games, online bingo and mobile gambling.
BetCRIS is an off-shore company, operating in the safe havens of the Republic of Costa Rica. In 2003, at the height of the DoS attacks, the BetCRIS website was down for nearly a month. With tens of millions of dollars of gambling revenue at stake, BetCRIS management were desperate for a solution, and they reached out to Lyon.
While Lyon created a first-generation solution to stop the early DoS attacks, the book details how the attackers were able to get around those countermeasures, and how it turned into a cat and mouse game of futility, where Lyon would create a fix, only to be beguiled by a new attack.
In the book, Menn writes about many of the major players in the Internet criminal world. He spends a good amount of time writing about the infamous Russian Business Network (RBN). He notes that little true business was carried out via the RBN; rather it was a front for Internet-based criminal activities in Russia.
Menn does get into some technical details, but not so much so to confuse a non-technical reader. He covers topics such as botnets, DoS and DDoS attacks, cyberwarfare, cyber espionage, and the difficulty in prosecuting the perpetrators.
Menn notes that there are many reasons why Russia and in Eastern Europe are ground zero for cybercriminals. The educational institutions there provide a good source of technical training; combined that with the fact that legitimate job opportunities are often quite limited. Add to the fact that political and law enforcement officials often ignore the cyber attacks again the rich capitalists of the US, the difficulty and challenges with jurisdiction, and you have a perfect storm for the creation of a sophisticated cyber criminal element. Finally, there is a long and established culture of corruption in Russia and in Eastern Europe that adds to the problem.
There are two directions that Fatal System Error takes. The main part of the book is Menn's narrative, which takes up 11 of the book's 12 chapters. These 11 chapters take the reader on an enthralling ride into the inner workings of the cyber-criminal world. Fatal System Error is an enjoyable read on par books such as The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage and Takedown: The Pursuit and Capture of Kevin Mitnick.
Where the book truly stands out is in the final chapter Fixing What's Fixable, and is worth purchasing for that chapter alone. Menn displays his incredibly deep understanding of the underlying issues around computer security and why we are vulnerable. He suggests numerous pragmatic solutions to the crisis, and how to better secure the Internet and networks.
Some of the ideas include significantly greater budgets for information security, more liability against software developers who write insecure code, greater information sharing between the cybercrime agencies in the US and their counterparts in Russia, and more. His on-target analysis of what the US Government can and should do to increase the security of the Internet infrastructure is quite impressive.
Reading the narrative part of the book, many readers will likely be scared to death to connect their computers to the Internet, and to a limited degree, rightfully so. Even with Menn's balanced and compelling account of what transpired, the threat of identity theft and ease of how financial accounts are breached may be too much for some readers many to bear.
If corporate America and the US Government would take Menn's suggestions to heart on how to create a secure Internet infrastructure, many of those security concerns he wrote about could be obviated, and the cyber criminals of Eastern Europe would have to look for different work.
Additional pragmatic ideas that Menn suggests are to legalize and regulate online gambling, more funding to teach safer computing in schools, and for a complete re-engineering of the Internet, in order to build in the necessary security functionality which should have been in there in the first place. As part of the process to re-engineer the Internet, Menn suggests designs that create accountability into the Internet fabric.
Finally, Menn notes that many end-users are not blameless. By not educating themselves on how to securely use the Internet, they are setting themselves up to becoming victims. He writes that anyone that connects a computer to the Internet needs to have significant security vigilance to ensure that they don't make themselves a victim. It is 2010 and far too many people are still oblivious to the security threats. Many still naively believe that someone from Nigeria really does want to make them richer with tens of millions of dollars worth of gold from their deceased uncle.
Menn shows how the underlying infrastructure of the Internet is significantly more vulnerable than most people realize. Finally, what exacerbates the problem is that those doing the attacks are working much quicker than those who are trying to secure it.
One of Menn's criticisms is that the US Government spends a fraction of what it should on securing its critical technology infrastructure. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is the wake-up call that those in Washington, and those charged with IT need to wake up to. Unfortunately, it is likely those that truly need to read this book, will press the information security snooze button yet again.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Fatal System Error
brothke writes "As computing and technology has evolved, so too have the security threats correspondingly evolved. The classic Yankee Doodle virus of 1989 did minimal damage, all while playing a patriotic, albeit monotone song. In 2010, aggressive malware now executes in stealth mode, running in the background with an oblivious end-user, and antivirus software that can’t detect it." Read on for the rest of Ben's review. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet author Joseph Menn pages 304 publisher PublicAffairs rating 8/10 reviewer Ben Rothke ISBN 978-1586487485 summary Non-fiction cyber-thriller with super analytical advice Cybercrimes have evolved using increasingly sophisticated techniques, and the resulting financial losses are staggering. Many criminal cyber gangs are well organized and resourceful and their ability to recover after new defenses have been deployed make it a challenge for those on the right side of the law.
Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is an excellent book billed as a non-fiction cyber-thriller, and describes the cyber gangs who operate on the Internet. Author Joseph Menn, a cyber security reporter for the Financial Times, takes the reader into the inner operations of today's cyber-criminal, who use the Internet as their personal mint.
While Willie Sutton never really said that the reason he robbed banks is because that's where the money is; the truth is that today's cyber criminal does know where the money is, and its address is the Internet. They use the net as a means to steal and extort money from businesses and individuals.
The book's protagonist is Barrett Lyon, a highly skilled technical engineer and entrepreneur, who founded companies such as Prolexic, BitGravity and 3Crowd. It was at Prolexic where Lyon developed the software used to fend off the DoS attacks that were bringing some of his client's networks to a standstill.
Lyon, along with the other major character in the book, Andy Crocker, a British policeman, were the 1-2 punch that resulted in the prosecution of a Russian cyber criminal. The fact that the prosecution took place via the Russian judicial system was a surprise to everyone. What was unusual about the prosecution is that criminals in Russia and Eastern Europe often operate with the assistance of corrupt political and police forces. Even though the evidence against the defendant was significant, the ability to secure a guilty verdict was far from a sure thing.
Much of the book deals with Lyon and his working relationship with BetCRIS, a company offering online gambling services, including sports betting, online casino games, online bingo and mobile gambling.
BetCRIS is an off-shore company, operating in the safe havens of the Republic of Costa Rica. In 2003, at the height of the DoS attacks, the BetCRIS website was down for nearly a month. With tens of millions of dollars of gambling revenue at stake, BetCRIS management were desperate for a solution, and they reached out to Lyon.
While Lyon created a first-generation solution to stop the early DoS attacks, the book details how the attackers were able to get around those countermeasures, and how it turned into a cat and mouse game of futility, where Lyon would create a fix, only to be beguiled by a new attack.
In the book, Menn writes about many of the major players in the Internet criminal world. He spends a good amount of time writing about the infamous Russian Business Network (RBN). He notes that little true business was carried out via the RBN; rather it was a front for Internet-based criminal activities in Russia.
Menn does get into some technical details, but not so much so to confuse a non-technical reader. He covers topics such as botnets, DoS and DDoS attacks, cyberwarfare, cyber espionage, and the difficulty in prosecuting the perpetrators.
Menn notes that there are many reasons why Russia and in Eastern Europe are ground zero for cybercriminals. The educational institutions there provide a good source of technical training; combined that with the fact that legitimate job opportunities are often quite limited. Add to the fact that political and law enforcement officials often ignore the cyber attacks again the rich capitalists of the US, the difficulty and challenges with jurisdiction, and you have a perfect storm for the creation of a sophisticated cyber criminal element. Finally, there is a long and established culture of corruption in Russia and in Eastern Europe that adds to the problem.
There are two directions that Fatal System Error takes. The main part of the book is Menn's narrative, which takes up 11 of the book's 12 chapters. These 11 chapters take the reader on an enthralling ride into the inner workings of the cyber-criminal world. Fatal System Error is an enjoyable read on par books such as The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage and Takedown: The Pursuit and Capture of Kevin Mitnick.
Where the book truly stands out is in the final chapter Fixing What's Fixable, and is worth purchasing for that chapter alone. Menn displays his incredibly deep understanding of the underlying issues around computer security and why we are vulnerable. He suggests numerous pragmatic solutions to the crisis, and how to better secure the Internet and networks.
Some of the ideas include significantly greater budgets for information security, more liability against software developers who write insecure code, greater information sharing between the cybercrime agencies in the US and their counterparts in Russia, and more. His on-target analysis of what the US Government can and should do to increase the security of the Internet infrastructure is quite impressive.
Reading the narrative part of the book, many readers will likely be scared to death to connect their computers to the Internet, and to a limited degree, rightfully so. Even with Menn's balanced and compelling account of what transpired, the threat of identity theft and ease of how financial accounts are breached may be too much for some readers many to bear.
If corporate America and the US Government would take Menn's suggestions to heart on how to create a secure Internet infrastructure, many of those security concerns he wrote about could be obviated, and the cyber criminals of Eastern Europe would have to look for different work.
Additional pragmatic ideas that Menn suggests are to legalize and regulate online gambling, more funding to teach safer computing in schools, and for a complete re-engineering of the Internet, in order to build in the necessary security functionality which should have been in there in the first place. As part of the process to re-engineer the Internet, Menn suggests designs that create accountability into the Internet fabric.
Finally, Menn notes that many end-users are not blameless. By not educating themselves on how to securely use the Internet, they are setting themselves up to becoming victims. He writes that anyone that connects a computer to the Internet needs to have significant security vigilance to ensure that they don't make themselves a victim. It is 2010 and far too many people are still oblivious to the security threats. Many still naively believe that someone from Nigeria really does want to make them richer with tens of millions of dollars worth of gold from their deceased uncle.
Menn shows how the underlying infrastructure of the Internet is significantly more vulnerable than most people realize. Finally, what exacerbates the problem is that those doing the attacks are working much quicker than those who are trying to secure it.
One of Menn's criticisms is that the US Government spends a fraction of what it should on securing its critical technology infrastructure. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is the wake-up call that those in Washington, and those charged with IT need to wake up to. Unfortunately, it is likely those that truly need to read this book, will press the information security snooze button yet again.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Fatal System Error
brothke writes "As computing and technology has evolved, so too have the security threats correspondingly evolved. The classic Yankee Doodle virus of 1989 did minimal damage, all while playing a patriotic, albeit monotone song. In 2010, aggressive malware now executes in stealth mode, running in the background with an oblivious end-user, and antivirus software that can’t detect it." Read on for the rest of Ben's review. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet author Joseph Menn pages 304 publisher PublicAffairs rating 8/10 reviewer Ben Rothke ISBN 978-1586487485 summary Non-fiction cyber-thriller with super analytical advice Cybercrimes have evolved using increasingly sophisticated techniques, and the resulting financial losses are staggering. Many criminal cyber gangs are well organized and resourceful and their ability to recover after new defenses have been deployed make it a challenge for those on the right side of the law.
Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is an excellent book billed as a non-fiction cyber-thriller, and describes the cyber gangs who operate on the Internet. Author Joseph Menn, a cyber security reporter for the Financial Times, takes the reader into the inner operations of today's cyber-criminal, who use the Internet as their personal mint.
While Willie Sutton never really said that the reason he robbed banks is because that's where the money is; the truth is that today's cyber criminal does know where the money is, and its address is the Internet. They use the net as a means to steal and extort money from businesses and individuals.
The book's protagonist is Barrett Lyon, a highly skilled technical engineer and entrepreneur, who founded companies such as Prolexic, BitGravity and 3Crowd. It was at Prolexic where Lyon developed the software used to fend off the DoS attacks that were bringing some of his client's networks to a standstill.
Lyon, along with the other major character in the book, Andy Crocker, a British policeman, were the 1-2 punch that resulted in the prosecution of a Russian cyber criminal. The fact that the prosecution took place via the Russian judicial system was a surprise to everyone. What was unusual about the prosecution is that criminals in Russia and Eastern Europe often operate with the assistance of corrupt political and police forces. Even though the evidence against the defendant was significant, the ability to secure a guilty verdict was far from a sure thing.
Much of the book deals with Lyon and his working relationship with BetCRIS, a company offering online gambling services, including sports betting, online casino games, online bingo and mobile gambling.
BetCRIS is an off-shore company, operating in the safe havens of the Republic of Costa Rica. In 2003, at the height of the DoS attacks, the BetCRIS website was down for nearly a month. With tens of millions of dollars of gambling revenue at stake, BetCRIS management were desperate for a solution, and they reached out to Lyon.
While Lyon created a first-generation solution to stop the early DoS attacks, the book details how the attackers were able to get around those countermeasures, and how it turned into a cat and mouse game of futility, where Lyon would create a fix, only to be beguiled by a new attack.
In the book, Menn writes about many of the major players in the Internet criminal world. He spends a good amount of time writing about the infamous Russian Business Network (RBN). He notes that little true business was carried out via the RBN; rather it was a front for Internet-based criminal activities in Russia.
Menn does get into some technical details, but not so much so to confuse a non-technical reader. He covers topics such as botnets, DoS and DDoS attacks, cyberwarfare, cyber espionage, and the difficulty in prosecuting the perpetrators.
Menn notes that there are many reasons why Russia and in Eastern Europe are ground zero for cybercriminals. The educational institutions there provide a good source of technical training; combined that with the fact that legitimate job opportunities are often quite limited. Add to the fact that political and law enforcement officials often ignore the cyber attacks again the rich capitalists of the US, the difficulty and challenges with jurisdiction, and you have a perfect storm for the creation of a sophisticated cyber criminal element. Finally, there is a long and established culture of corruption in Russia and in Eastern Europe that adds to the problem.
There are two directions that Fatal System Error takes. The main part of the book is Menn's narrative, which takes up 11 of the book's 12 chapters. These 11 chapters take the reader on an enthralling ride into the inner workings of the cyber-criminal world. Fatal System Error is an enjoyable read on par books such as The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage and Takedown: The Pursuit and Capture of Kevin Mitnick.
Where the book truly stands out is in the final chapter Fixing What's Fixable, and is worth purchasing for that chapter alone. Menn displays his incredibly deep understanding of the underlying issues around computer security and why we are vulnerable. He suggests numerous pragmatic solutions to the crisis, and how to better secure the Internet and networks.
Some of the ideas include significantly greater budgets for information security, more liability against software developers who write insecure code, greater information sharing between the cybercrime agencies in the US and their counterparts in Russia, and more. His on-target analysis of what the US Government can and should do to increase the security of the Internet infrastructure is quite impressive.
Reading the narrative part of the book, many readers will likely be scared to death to connect their computers to the Internet, and to a limited degree, rightfully so. Even with Menn's balanced and compelling account of what transpired, the threat of identity theft and ease of how financial accounts are breached may be too much for some readers many to bear.
If corporate America and the US Government would take Menn's suggestions to heart on how to create a secure Internet infrastructure, many of those security concerns he wrote about could be obviated, and the cyber criminals of Eastern Europe would have to look for different work.
Additional pragmatic ideas that Menn suggests are to legalize and regulate online gambling, more funding to teach safer computing in schools, and for a complete re-engineering of the Internet, in order to build in the necessary security functionality which should have been in there in the first place. As part of the process to re-engineer the Internet, Menn suggests designs that create accountability into the Internet fabric.
Finally, Menn notes that many end-users are not blameless. By not educating themselves on how to securely use the Internet, they are setting themselves up to becoming victims. He writes that anyone that connects a computer to the Internet needs to have significant security vigilance to ensure that they don't make themselves a victim. It is 2010 and far too many people are still oblivious to the security threats. Many still naively believe that someone from Nigeria really does want to make them richer with tens of millions of dollars worth of gold from their deceased uncle.
Menn shows how the underlying infrastructure of the Internet is significantly more vulnerable than most people realize. Finally, what exacerbates the problem is that those doing the attacks are working much quicker than those who are trying to secure it.
One of Menn's criticisms is that the US Government spends a fraction of what it should on securing its critical technology infrastructure. Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet is the wake-up call that those in Washington, and those charged with IT need to wake up to. Unfortunately, it is likely those that truly need to read this book, will press the information security snooze button yet again.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Fatal System Error: The Hunt for the New Crime Lords Who are Bringing Down the Internet 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! 1.5 Multimedia
Sparky Anduril writes "In this book author Allan Walker writes to inform Joomla! website administrators and developers how to enrich their websites with the inclusion of multimedia. And be in no doubt, this book is not for novices. A decent understanding of Joomla! will be required for you to benefit from this book. But all-in-all, whether you are an experienced Joomla! administrator but fear to go where multimedia gremlins tread, or someone with knowledge of video and audio but having little idea how to integrate that into your Joomla! website, this book will give you a solid understanding and ability to enable you to embed multimedia in your website using a range of techniques and Joomla! extensions." Read on for the rest of Sparky's review. Joomla! 1.5 Multimedia author Allan Walker pages 376 publisher Packt Publishing rating 8 reviewer Sparky Anduril ISBN 1847197701 summary Build media-rich Joomla! websites by learning to embed and display multimedia content I do have one major gripe about this book, however: the author over-utilizes the word utilize, when English has a perfectly utilizable word which actually means what he wants to say, vis. "use." I wish technical writers would keep it simple and utilize the simple word rather than the fancy word which they mistakenly think makes them sound more intelligent! So, moan over, let's plunge into the contents of the book.
Chapter 1 provides an overview of multimedia (what is it?) and Joomla! (why that's needed when the book is aimed at Joomla! admins I don't know!) and then talks about where multimedia may be included in your site. The chapter is a bit repetitive and hence could have been shorter, but provides a useful foundation for what comes next. It also includes a timely reminder about web site accessibility...
Chapter 2 talks about how to manage media on the site — using the Joomla! Media Manager, an ftp program or a Joomla! extension. A bit basic, but in case you're a site admin with little experience in this area it's fairly essential stuff.
Chapter 3 was the biggest surprise of the book, but nonetheless a useful addition. It talks about text. "Text?" I hear you say. "What place does 'text' have in a book about multimedia (apart from as the medium by which information is transmitted to my brain)?" And in fact the first part of the chapter does seem like the author is riding his hobby horse to let us know what he thinks about fonts and CSS and so forth which, while relevant to any web site, are not really relevant to multimedia. But the chapter does include information about available text and typography extensions for Joomla! which will be news to many and may just solve your typographical problem.
And if you buy this book and read up to chapter 3 and complain it's a bit basic and tedious, well, keep on reading. In Chapter 4 we start the real stuff. In fact chapters 4 to 7 are where this book comes into its own. Chapters 4 to 6 cover (in turn) image content, audio and video. Chapter 7 covers collaborating with external sources.
Chapters 4 to 6 have similar structures, each of them dealing with a different class of media. A very useful section of each chapter deals with formats (image, audio and video respectively). Then the author deals with how to include the media in the web site, using in-built features (for images), custom HTML modules and third-party extensions. The section on third party extensions in each chapter quickly presents a number of options, without giving a great deal of detail about how to use each one. And that may be frustrating but is fair enough when in fact there are a whole load of extensions the user can choose from. What this approach leads to is an appreciation of the possibilities, a list of extensions to try out for starters, and hopefully an increasing confidence in the reader that they can try things out for themselves and find something suitable for their needs. The Image chapter covers for example image galleries and slideshows; the Audio chapter includes audio players and audio streaming, podcasts and RSS feeds; the Video chapter includes Video podcasting, players and streaming.
Chapter 7 is all about the "social web": so mostly it's about including media from external sites such as YouTube, Internet radio, social bookmarking and so on. This chapter is primarily a catalog of useful Joomla! extensions you can use to provide a variety of media from a variety of sources.
Chapter 8 is about Joomla! templates and multimedia. The chapter partly seems to serve as an advocate for commercial templates, but does have some interesting content about templates and extensions to provide mobile device access to your web site.
In Chapter 9 the author pulls all this together as he develops a multimedia website using some of the techniques in the book. At the start of the chapter, he describes how to set up a local development server so you can develop and/or enhance a site without breaking the live site. For admins who have been given a fully working site, this is essential information. For many of us, that is how we started and hence we already know how to do local development. The part missing from this section is how to install Joomla! on the local server (he starts to tell it but it really needs a couple more steps to be described — although that information is readily available at www.joomla.org of course). Also, this of all sections suffers from the fact that the author is a Mac-user — I am not trying to start a Mac-Windows war, but the fact of the matter is that the vast majority of users will be Windows users, so he should have provided more information on setting up a WAMP server or XAMPP on Windows.
The code used in the book is also available as a zip file download, in case you're too lazy to type it out again and want to use it exactly as-is from the book, or perhaps more reasonably you want to try out the code or CSS he has suggested and then tweak it to your own need! Would I recommend this book? It depends on whether you want a fast start to solve your media problems. If you have little awareness of how to start, this will help you out. Or if you don't want to spend hours trying out extension after extension this will probably save you a lot of time. If, however, you are really familiar with multimedia and Joomla! and are happy to play with extensions until you find the one you need, then you could save yourself some money and go play.
I have personally found the book to be informative and in some areas opened my eyes to what can already be achieved quite easily using Joomla! 1.5.
You can purchase Joomla! 1.5 Multimedia from amazon.com. Slashdot welcomes readers' book reviews; to see your own review here, read the book review guidelines, then visit the submission page. -
25th Anniversary of Hackers
theodp writes "Sharks gotta swim; bats gotta fly; hackers gotta hack. On the 25th anniversary of Hackers: Heroes of the Computer Revolution, author Steven Levy has penned an interesting where-are-they-now follow up on the original digital revolutionaries for Wired. 'Some of my original subjects,' writes Levy, 'are now rich, famous, and powerful. They thrived in the movement's transition from insular subculture to multibillion-dollar industry, even if it meant rejecting some of the core hacker tenets. Others, unwilling or unable to adapt to a world that had discovered and exploited their passion — or else just unlucky — toiled in obscurity and fought to stave off bitterness. I also found a third group: the present-day heirs to the hacker legacy, who grew up in a world where commerce and hacking were never seen as opposing values. They are bringing their worldview into fertile new territories and, in doing so, are molding the future of the movement.' Here's hoping Google reads this and gets inspired to let Andy Hertzfeld ship whatever the hell he wants!" Glyn Moody pulls out one poignant detail from Levy's account: rms's thoughts of suicide. -
AdvancED Flash On Devices
chuckbatfuturewaredc writes "Flash's ubiquity is in its presence on the vast majority of PC desktops, laptops and netbooks. It is also in a surprising, and growing, percentage of mobile devices. Software developers who want to tap this rapidly expanding market face many challenges that have not existed in the PC world for quite some time. This book is virtually encyclopedic in its review of the pitfalls and dangers for mobile development and how they can be avoided, even for the iPhone. It provides rich information detail on how to address mobile software development now, along with a preview of how it can be done more easily when what is in the oven finishes baking." Keep reading for the rest of chuckbatfuturewaredc's review. AdvancED Flash on Devices: Mobile Development with Flash Lite and Flash 10 author Scott Janousek, Thomas Joos, Elad Elrom pages 744pp publisher Apress rating 8/10 reviewer chuckbatfuturewaredc ISBN 1430219041 summary covers both mobile and device development with Flash Lite, as well as upcoming Flash 10 for smartphones and other non-PC devices. AdvancED Flash On Devices is really four books in one, each dealing with various aspects and ways of applying Flash to mobile devices, which not surprisingly consists of more than just cell phones. The authors provide a good introduction by reviewing the mobile system landscape, which has one noticeable characteristic: It is highly fractured, with several unusual bottlenecks that constrain software development and wider adoption, as well as innovation.
There are two major reasons for this fracturing: The mobile device manufacturers themselves working to protect product differentiation, and the communications providers, primarily the telephone companies. The authors use the euphemism of 'walled gardens' to describe these limitations, but the reality is that they have been around for some time for all sorts of reasons, and are not likely to disappear soon.
Software developers for PCs benefit from a very large set of standards based practices and technical methodologies to develop products for markets that in aggregate make for a reasonably frictionless ecosystem. These do not (yet) exist or cannot be applied to the mobile marketplaces. Flash's ubiquity can be exploited to help establish and expand a common design approach for specific mobile markets, and this book outlines specifically how this can be done. It is also perhaps the best integrating review of the mobile systems market from a software perspective generally, and exploiting Flash particularly.
As the authors clearly demonstrate, a unified code base cannot exist in this arena. Instead, Flash has to be adapted in various ways to accommodate the many device manufacturers. This book shows how that is done, either with overviews, sample code, or using third party tools that, in many cases, are described in some detail. This has resulted in several Flash 'flavors', collectively given the covering name of Flash Lite. All of these use varying subsets of ActionScript2; ActionScript3 is not yet available for mobile devices.
Developing a mobile software product is best done initially with an emulator, of which there are several. All of the major ones are reviewed with details that are most welcome, including screen shots and step by step procedures. Products are then moved to the actual target mobile devices after they work on the emulator, which is the only practical way to validate the design and code. Testing on a device is usually a demonstration of the Heisenberg Uncertainty principal, and the authors provide tips and techniques on how to prepare for and handle problems when in the device's closed environment.
PC developers seldom have to concern themselves with performance or power issues: Memory is plentiful and cheap, disks are cheaper, processors have more than one core, and power is plentiful. None of these are the case in a mobile device, and careful attention has to be paid to resource management and processor demands. The authors outline ways to reduce draining batteries and exhausting memory, as well as tools to help profile performance to optimize resource utilization.
Testing mobile software is addressed in some detail. Mobile devices, particularly cell phones, can't have their hoods opened as readily as can be done with regular PCs, resulting in some unusual testing constraints. Test driven development may be a catch phrase for some, but it is a necessity for mobile software development, and the authors outline specific methods to make sure this is done right.
One interesting aspect of mobile device usage is that they typically are upgraded (i.e., replaced), particularly cell phones, at a much smaller rate than PCs are. Thus, creating better user experiences and richer mobile applications will be applicable for small initial market segments, mainly the high end smart phones and their like. Still, increased horsepower for all mobile devices is inexorable. The authors move the Adobe curtain a bit to show what is being developed for Flash 10, particularly as these improvements relate to mobile devices of all kinds. There is a learning curve in learning how to develop mobile software, and some of this experience cannot be carried forward directly, such as trying to use ActionScript2 conventions in an ActionScript3 environment. Knowing about these will help the prepared to be ready when the parade catches up to them.
One last item is using Flash in the iPhone. Apple's high "Not Invented Here" mentality officially bans Flash from the iPhone. But there is a way to project Flash content in the iPhone, and the book outlines how it is done. That alone is worth the price of this four in one book.
This book is highly recommended for anyone who wants to be successful in exploiting Flash in a mobile environment. It has specific and detailed here and now information that can be used and applied immediately, outlines development, testing, packaging and deployment processes and procedures, and points to a future, based on the proven Flash ecosystem, that will very likely happen sooner than later.
Example code, including complete projects that can be used as design templates, and additional reference material is available on the book's website for download, organized in chapters. Additionally, the publisher maintains a forums section on their website for this and other related books.
This is a large technical book with many topics that are covered in varying levels of detail. It is not light reading, and in some places the writing is a bit rough.
You can purchase AdvancED Flash on Devices: Mobile Development with Flash Lite and Flash 10 from amazon.com. Slashdot welcomes readers' book reviews — to see your own review here, read the book review guidelines, then visit the submission page. -
Ubuntu on a Dime
AussieNeil writes "If IBM had adopted Unix for its Personal Computer and supported open source so *nix desktops were the now the norm, how hard would it be to convince the population to switch to Microsoft Windows? In Ubuntu on a Dime — The Path to Low-Cost Computing, James Kelly shows how easy it is to build a computer and install a complete software suite for US$200 excluding monitor, keyboard, and mouse. You can't even buy the operating system and anti-malware protection for Microsoft Windows for that, let alone have any money left over for hardware and productivity software! Then when you install the software, you have the paradigm of having to restart the computer to complete software installation and you have to learn how to practice safe computing while budgeting for annual anti-malware software license renewals!" Read on for the rest of AussieNeil's review. Ubuntu on a Dime author James Floyd Kelly pages 280 publisher Apress rating 9/10 reviewer AussieNeil ISBN 1-4302-1972-6 summary takes you on a tour of the very best, but low-cost hardware, while only using zero-cost software in each of the many categories that matter to the typical PC user. Alternate histories aside, Ubuntu on a Dime is a tribute both to the skills of the author and to the decades of effort by those that have developed user friendly software and hardware, so that this 280-page book gives anyone with a reasonable level of self-confidence the recipe to build their own computer, install all the software needed for common activities, and quickly become productive.
James Kelly, spends just 30 pages in the first chapter explaining how to purchase the required computer parts and assemble a Ubuntu PC or "U-PC" computer and does it in a relaxed, easy-to-follow style. Mind, the task is simplified by choosing a motherboard with integrated sound and video, but that is exactly what you'll find in the standard corporate office PC. (Personally, I would have recommend purchasing a SATA hard drive to avoid the not-touched-on master/slave complications of using a shared IDE cable for the hard drive and CD/DVD drive.) The book is illustrated throughout with frequent, excellent screen shots as the author steps you through hardware assembly, then operating system and application installation, configuration, and use.
In chapter 2, the author explains how to install the Ubuntu operating system and keep it updated. Wisely, he has chosen the Long Term Supported 8.04 version, but has omitted mention of the different Ubuntu support periods. He has also missed an opportunity here to expand on the growing list of Ubuntu variants, in particular Kubuntu, which I would see as an easier migration choice for those familiar with Microsoft Windows.
Chapter 3 is dedicated to a definition of what the author means by "free software" and covers the costs (including the relevant security risk costs) associated with the four software categories; Pay-to-Use, Open Source, Cloud Computing, and Freeware. The remaining 9 chapters look at how to use free software — software either included in the default Ubuntu installation, or available via cloud computing — to complete common computing tasks.
In chapter 4, email using Evolution is covered and word processing, spreadsheets, and presentations using the OpenOffice.org suite is covered in chapters 5 to 7. The Cloud Computing Google Docs Office Suite alternative, with the advantages of everywhere access to your documents and collaborative working is covered in chapter 11. Web browsing using Firefox is covered in chapter 9, with most of the chapter dedicated to finding and installing useful add-ons. Google gets another couple of chapters when photo management with Picasa is covered in chapter 8 and Google Email and Calendar configuration and use are explained in chapter 10. The last chapter looks at a few other useful applications found in Ubuntu: Calculator, Text Editor, Notes, Disk Burning, Movie Playing, and Music Playing. The three appendices cover the computer parts list, three ways to obtain an installation disk for Ubuntu, and finally a bibliography of web sites, books, and must-have apps so you can extend the use of your new Ubuntu PC. The 9-page index is fairly comprehensive, considering the wealth of illustrations throughout the book.
I liked this book because it covered tasks seen daunting by many (PC building, operating system and software installation, configuration, and upgrading) in an light, easy-to-follow manner, supported with excellent illustrations. Further, the author covers a lot of ground without overwhelming the reader, taking you to a level where you can start using your computer productively and showing you how to use help files and online resources to extend your use of your excellent hand-built investment. While extolling the benefits of open source software, he hasn't labored the point. Vendor lock-in costs associated with proprietary office suites aren't mentioned, nor are the lower security risks associated with open source usage.
If you are looking for a way to reduce your computing costs, or know someone that would appreciate a gift that can help them achieve this, then Ubuntu on a Dime is well worth considering — particularly for anyone that gets satisfaction from learning via do-it-yourself.
You can purchase Ubuntu on a Dime: The Path to Low-Cost Computing from amazon.com. Slashdot welcomes readers' book reviews. To see your own review here, read the book review guidelines, then visit the submission page. -
Print-On-Demand Publisher VDM Infects Amazon
erich666 writes "In recent months a flood of so-called books have been appearing in Amazon's catalog. VDM Publishing's imprints Alphascript and Betascript Publishing have listed over 57,000 titles, adding at least 10,000 in the previous month alone. These books are simply collections of linked Wikipedia articles put into paperback form, at a cost of 40 cents a page or more. These books seem to be computer-generated, which explains the peculiar titles noted such as 'Vreni Schneider: Annemarie Moser-Pröll, FIS Alpine Ski World Cup, Winter Olympic Games, Slalom Skiing, Giant Slalom Skiing, Half Man Half Biscuit.' Such titles do have the marketing effect of turning up in many different searches. There is debate on Wikipedia about whether their 'VDM Publishing' page should contain the words 'fraud' or 'scam.' VDM Publishing's practice of reselling Wikipedia articles appears to be legal, but is ethically questionable. Amazon customers have begun to post 1-star reviews and complain. Amazon's response to date has been, 'As a retailer, our goal is to provide customers with the broadest selection possible so they can find, discover, and buy any item they might be seeking.' The words 'and pay us' were left out. Amazon carries, as a Googled guess, 2 million different book titles, so VDM Publishing is currently 1/35th of their catalog, and rapidly growing." -
Print-On-Demand Publisher VDM Infects Amazon
erich666 writes "In recent months a flood of so-called books have been appearing in Amazon's catalog. VDM Publishing's imprints Alphascript and Betascript Publishing have listed over 57,000 titles, adding at least 10,000 in the previous month alone. These books are simply collections of linked Wikipedia articles put into paperback form, at a cost of 40 cents a page or more. These books seem to be computer-generated, which explains the peculiar titles noted such as 'Vreni Schneider: Annemarie Moser-Pröll, FIS Alpine Ski World Cup, Winter Olympic Games, Slalom Skiing, Giant Slalom Skiing, Half Man Half Biscuit.' Such titles do have the marketing effect of turning up in many different searches. There is debate on Wikipedia about whether their 'VDM Publishing' page should contain the words 'fraud' or 'scam.' VDM Publishing's practice of reselling Wikipedia articles appears to be legal, but is ethically questionable. Amazon customers have begun to post 1-star reviews and complain. Amazon's response to date has been, 'As a retailer, our goal is to provide customers with the broadest selection possible so they can find, discover, and buy any item they might be seeking.' The words 'and pay us' were left out. Amazon carries, as a Googled guess, 2 million different book titles, so VDM Publishing is currently 1/35th of their catalog, and rapidly growing." -
A User's Guide To the Universe
alfredw writes "Have you ever wanted to buttonhole a physicist at a cocktail party? Do you have the burning desire to sit down with a professor and ask a laundry list of 'physics' questions about time travel and black holes? Do you want to know more about modern physics, but want to do it with pop culture experiments instead of mathematics? If you answered 'yes' to any of those questions, then you're in the target audience for A User's Guide to the Universe: Surviving the Perils of Black Holes, Time Paradoxes, and Quantum Uncertainty." Keep reading for the rest of alfredw's review. A User's Guide to the Universe: Surviving the Perils of Black Holes, Time Paradoxes, and Quantum Uncertainty author Dave Goldberg, Jeff Blomquist pages 304pp publisher Wiley rating 8 reviewer alfredw ISBN 9780470496510 summary A fun, light read about interesting areas of modern physics that will entertain while it educates. A User's Guide to the Universe (hereinafter "A User's Guide") is the physicist's answer to Phil Plait's Death from the Skies!: These Are the Ways the World Will End.... What Goldberg and Blomquist have created is a fun, light read about interesting areas of modern physics that will entertain while it educates. The book assumes very little scientific background on the part of the reader. Those with some knowledge (this is Slashdot, after all) will find the explanations of well-known concepts (the double slit experiment, for example) lucid, direct, brief and entertaining.
A User's Guide covers topics like relativity, time travel, the Standard Model of Particle Physics, and alien life. It does so with a very tongue-in-cheek sense of humor, and footnotes that act as the authors' very own peanut gallery. While this humor lightens up what could otherwise be a few dry areas of discussion, the littering of the text with pop-culture references is bound to make the book feel a bit dated in years to come. For now (March 2010), though, A User's Guide is so fresh you might call it ripe.
Unlike Death from the Skies, this book is well illustrated. The pen-and-ink cartoons are omnipresent, and serve to both illustrate the text, and to take every opportunity for a joke (cheap or otherwise) that presents itself. Overall, I felt that the cartoons were a strong addition to the book, as they can provide a needed laugh in a serious section, or can eliminate the proverbial thousand words when describing an experiment or concept.
The chapter on time travel is a stand-out. It presents several "practical" designs for time machines, which use black holes, cosmic strings or wormholes as components. I am an avid reader of pop-sci books, and I found designs that were new to me. The discussion of the Grandfather Paradox (if you go back in time and kill your grandfather, then you were never born and could never have committed murder) and ways around it are very helpful and present a solid physical framework for thinking about these issues. When the Grandfather Paradox is reformulated using pool balls, instead of thinking humans, it becomes clear that the issues are physical and not metaphysical. Also, the authors helpfully include a chart ranking sci-fi shows and movies for their time travel savvy.
You'll also find a strong and entertaining treatment of inflationary cosmology, including discussions of the evidence behind the theory and a look at some consequences. This book avoids both a heavy technical treatment and a historical look at the development of the theory (see, for example, Alan Guth's The Inflationary Universe for that) and instead dives right in to the juiciest parts. This style is well-suited to the reader who wants the funs bits without all of the baggage.
If you're curious about quantum mechanics, the second chapter contains a one of the best introductions in the field. By asking questions like "can we build a Star Trek transporter?" the authors drive a quick and satisfying tour through the weirdness of the microscopic world. This "evil genius hands-on" approach is this book's most important contribution to pop sci literature, and its most endearing feature. You'll start by looking at Star Trek, but end with the mysteries of the double-slit experiment, wave-particle duality and the uncertainty principle.
Finally, at the end of the book, the authors helpfully include two sets of references: one to the pop sci literature, and one to the technical literature. Many of the best pop physics books of the past are listed, and the bibliography could serve as useful direction to more depth for the interested.
Overall, A User's Guide accomplishes what it sets out to do. It combines a hands-on, question-driven approach to physics with a tongue-in-cheek, pop-culture-based sense of humor. And then it throws on a layer of great cartoons to make the entire package something that most science books aren't: enjoyable. This book is fine, and you may well learn something in the process.
You can purchase A User's Guide to the Universe: Surviving the Perils of Black Holes, Time Paradoxes, and Quantum Uncertainty from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Metaprogramming Ruby
scottl writes "Metaprogramming Ruby is the first book to give an in-depth and readable explanation of how dynamic programming works in Ruby. It is both readable and accurate and will be a valuable resource to intermediate and probably advanced Ruby programmers for some time to come." Keep reading for the rest of scottl's review. Metaprogramming Ruby author Paolo Perrotta pages 261 publisher Pragmatic Bookshelf rating 9 reviewer scottl ISBN 978-1-93435-647-0 summary Metaprogramming Ruby is an excellent introduction to dynamic and metaprogramming using Ruby. It will be useful to intermediate and advanced users of Ruby and potentially even to beginners with some programming experience. Metaprogramming Ruby is not a book for programmers new to Ruby, but would make an excellent follow on book to either Programming Ruby by Dave Thomas, Chad Fowler, and Andy Hunt or The Ruby Way by Hal Fulton. Both of the above books have chapters on or at least mention metaprogramming, but this is the first full length exposition of it. The book itself is broken into two sections and four appendices. In the first section, you (the reader) is paired with a more experienced programmer for a week, a chapter for each day, and as the week progresses you cover different topics in metaprogramming after being given tasks by your boss. The second section has two chapters on the design and implementation of ActiveRecord from Rails as well as a chapter on safe metaprogramming. Finally, there are three very useful appendices and a bibliography. One other note is that the book has the concept of "spells". Each concept as it is discussed in the book will have a spell associated with it. There will be a note in the sidebar with the name of the spell and the third appendix has the spells listed in alphabetical order, a short example of the spell, and a page number linking back to the extended discussion of the spell.
The first chapters are an informal introduction to metaprogramming where the reader, just starting a new job, is paired with Bill, an experienced developer, for a week. Each day is a chapter and each chapter covers a specific topic. The topics, as might be expected, increase in complexity as the week goes on. This more informal style actually works quite well. I had expected to be a bit irritated with the "schtick", but it turns out that Perrotta does not use it to excess. The topics covered here are Monday: The Object Model, Tuesday: Methods, Wednesday: Blocks, Thursday: Class Definitions, and Friday: Code That Writes Code.
Chapter 1 on Monday starts out with you meeting Bill, your experienced pair programmer, on a Monday morning and then goes straight into the Ruby object model. It discusses reopening classes to add additional methods including predefined Ruby classes such as String. It follows up with Monkey Patching (opening an existing class and redefining an existing method) and the pitfalls therein.
In Chapter 2, methods are examined. Perrotta goes over a problem with duplicated code and how to reduce this code by generating and calling code dynamically. He then moves to showing the same example using method_missing(), followed by adding a change to respond_to? to make sure the methods show up.
Wednesday's topic in Chapter 3 covers blocks, lambdas, and procs all of which are really just "callable objects". The chapter starts with a review of blocks. This is followed by a discussion of scopes and how to carry variables through scopes using blocks as closures. Perratto shows how to use instance_eval() to receive blocks and then use them to manipulate scopes. Next, converting blocks into "callable objects", lambdas and Procs, and then calling them later is covered. Finally, there's a short introduction to domain specific languages (DSL) using the the techniques from this chapter.
Chapter 4 or Thursday covers class definitions. A discussion of self and the current class open the chapter. There's also a section on singleton methods and eigenclasses. There are class instance variables, variables that belong to the class and not to a particular object. Examples of class macros, such as attr_reader, attr_writer, and attr_accessor, and how to write them are shown. Finally he covers around aliases where method names can be renamed and then redefined but the original is still available.
The final day of the week, Friday, Chapter 5, goes deep into Ruby metaprogramming with code that writes code. In this chapter, Perrotta shows how to implement an "attr_checked" attribute in a few different ways starting with a kernel method using eval and moving on to passing the validation attributes in a block. Then this gets moved to a class macro (from Chapter 4), and finally moving on to using a module with hooks. This last is a pattern that's seen in many Ruby projects including Rails and two I'm familiar with, Sequel and Ramaze.
The second section, Metaprogramming in Rails, consists of two chapters on ActiveRecord and a final chapter on metaprogramming safely. In the first two chapters, Perrotta takes a tour through
ActiveRecord, the Rails object relational mapper (ORM) and shows how ActiveRecord uses the tips and techniques from the previous chapters. The final chapter on safe metaprogramming discusses how to test metaprogramming and working around and with to make sure that monkey patching doesn't cause problems.
Finally, there are three appendices. The first shows common Ruby idioms that are seen pretty much in all Ruby code. They provide a good review, but I'm not sure how useful they really are for the audience that this book is aimed at. The second appendix is one DSLs. This is also a nice to have, but there's probably not enough to let you program a DSL if you don't have additional help from somewhere. The final appendix really is almost worth the price of the book. It contains a list of metaprogramming "spells". Each of the spells contains a short programming example as well as the page number with the longer explanation. This is incredibly useful when looking at code from any of the major frameworks (some mentioned above) and you don't understand a piece of it. Just by scanning through the spells you can often find a simple version of what you're looking at and then read a longer explanation.
All in all, this is one of the better, more readable programming books that I've read in a long while. Perrotta keeps it to around 250 pages including the appendices and it's packed full of useful information. As I noted above, this book is highly recommended as a second Ruby book. The presentation of metaprogramming is both enjoyable and useful and the book itself is well written.
You can purchase Metaprogramming Ruby from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Insomniacs, the Phantoms of the Internet
theodp writes "Ever since she was a toddler, freelance writer Lily Burana has been a Stay Up Late kind of girl. When her kindergarten teacher asked students 'What time do you go to bed?,' young Lily felt compelled to lie rather than rat out her own mother by saying, 'Oh, between midnight and 1 a.m.' She still suffers from insomnia, but has discovered that Facebook is the Promised Land for the awake and alone. She finds comfort in the company of others who, like her, live counter to the conventional rhythm of a sunny-day world." -
Design and Evaluation of Central Control Room Operations
brothke writes "In aviation today, technically advanced airplanes present a unique paradox. Technically advanced airplanes, in theory, have more available safety, and the outcome should be that there are fewer accidents. But without proper training for their pilots, they could be less safe than airplanes with less available safety. The FAA found that without proper training for the pilots who fly them, technically advanced airplanes don't advance safety at all. The reason is that technically advanced airplanes present challenges that under-prepared pilots might not be equipped to handle." Read on for the rest of the review. Human Factors in the Design and Evaluation of Central Control Room Operations author Neville Stanton, Paul Salmon, Daniel Jenkins, Guy Walker pages 446 publisher CRC Press rating 10/10 reviewer Ben Rothke ISBN 978-1439809914 summary Invaluable reference that can be used for the design, assessment, evaluation an operations of NOCs and SOCs In the IT world, staff members are often expected to install, configure, maintain and support technically advanced software. Companies often buy huge infrastructure software, such as CRM, ERP, PKI, identify management, intrusion detection and more, without first understanding how to make them work in their complex environment. Management often is oblivious to the fact that just because they can buy and install the software that it will not work on its own. The reason why so many large software deployments fail miserably is that the IT staff often doesn't have the proper training, support and assistance that they need.
Human Factors in the Design and Evaluation of Central Control Room Operations is a fantastic book that shows what it takes to ensure support staff work and operate together, in a formal and efficient manner. The book integrates the topics of human factors and ergonomics to create an incredibly valuable tome. The book details the interactions between people and their working environment, and shows in depth how the work environment can and must be designed to reduce errors, improve performance, improve the quality of work, and increase the work satisfaction of the workers themselves.
While the book was written primarily for control room settings, it is relevant for those in IT if they have any involvement in remote support, security operation centers (SOC) and network operation centers (NOC).
While the book is of value to anyone involved in operation, those who will find the most value are those charged with the management and operations or large groups or operations. If they have management support to deploy the formal methods detailed in the book, they will find that they can create significantly higher levels of customer and end-user satisfaction.
The authors note that all SOC and NOC's have a common feature in that the people operating them are often remote from the processes that they are monitoring and controlling, and the operations function on a 24/7 basis. The many demands of remote and continuous operation place special considerations on the design of the SOC and NOC. The output of the book is that it can be used to effectively to design these operating centers.
The books presents a comprehensive and all-inclusive on the topic of human factors on the following 14 topics: competencies, training, procedures, communications, workload, automation, supervision, shift patterns, control room layout, SCADA interfaces, alarms, control room environment, human error, and safety culture. Each chapter includes extensive diagrams and flowcharts to show how the processes develop.
The book also provides a highly analytical approach to each topic. It details the required processes and procedures necessary to make each subject area work. The book is not only based on the four author's expertise; they quote heavily from other experts and their research.
Chapter 2 opens with the observation that the safe and efficient operation of operating centers and control rooms is dependent upon the competence of the operators working within them. It details how to create competence assessments to ensure that staff is capable of carrying out their tasks safely and efficiently by assessing their skills and knowledge. The authors stress that it is not acceptable for organizations to assume that their staff are competent based on only their exposure to training and experience. They suggest that organizations create a program to determine those competence levels.
Chapter 3 goes into detail about how to create effective training programs to ensure worker competence. The benefit of a trained worked is that they can yield higher productivity and provide better service. Well-trained workers often have better morale and produce less errors. The chapter details the importance of a training needs analysis to properly determine what needs to be in the curriculum.
Chapter 4 is on procedures and is particularly important to those working in a SOC or NOC. If consistent and repeatable procedures are created, staff can provide much a more effective and dependable levels of service. Even with the benefits of well crafted procedures, its development process is a complex one involving the identification of all of the tasks that require procedures, a judgment on the level of assistance required, identification of the type or format of procedure required, writing and reviewing the procedures, and obtaining approval for them.
The importance of procedures is underscored when the book notes research that 70% of accidents and incidents within the nuclear power companies occurred when workers failed to properly follow procedures. In the petrochemical industry, 27% of incidents were caused by situations for which there were inadequate or no procedures available.
The percentage of failed IT projects and large software rollout catastrophes is both staggering and appalling. No other sector but IT would tolerate such failures. A book like as Human Factors in the Design and Evaluation of Central Control Room Operations goes a long way to stop that. The book is a rare one in that it both provides all of the factors involved in the problem at hand, and then provides all of the details needed to obviate those problems.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Human Factors in the Design and Evaluation of Central Control Room Operations from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Design and Evaluation of Central Control Room Operations
brothke writes "In aviation today, technically advanced airplanes present a unique paradox. Technically advanced airplanes, in theory, have more available safety, and the outcome should be that there are fewer accidents. But without proper training for their pilots, they could be less safe than airplanes with less available safety. The FAA found that without proper training for the pilots who fly them, technically advanced airplanes don't advance safety at all. The reason is that technically advanced airplanes present challenges that under-prepared pilots might not be equipped to handle." Read on for the rest of the review. Human Factors in the Design and Evaluation of Central Control Room Operations author Neville Stanton, Paul Salmon, Daniel Jenkins, Guy Walker pages 446 publisher CRC Press rating 10/10 reviewer Ben Rothke ISBN 978-1439809914 summary Invaluable reference that can be used for the design, assessment, evaluation an operations of NOCs and SOCs In the IT world, staff members are often expected to install, configure, maintain and support technically advanced software. Companies often buy huge infrastructure software, such as CRM, ERP, PKI, identify management, intrusion detection and more, without first understanding how to make them work in their complex environment. Management often is oblivious to the fact that just because they can buy and install the software that it will not work on its own. The reason why so many large software deployments fail miserably is that the IT staff often doesn't have the proper training, support and assistance that they need.
Human Factors in the Design and Evaluation of Central Control Room Operations is a fantastic book that shows what it takes to ensure support staff work and operate together, in a formal and efficient manner. The book integrates the topics of human factors and ergonomics to create an incredibly valuable tome. The book details the interactions between people and their working environment, and shows in depth how the work environment can and must be designed to reduce errors, improve performance, improve the quality of work, and increase the work satisfaction of the workers themselves.
While the book was written primarily for control room settings, it is relevant for those in IT if they have any involvement in remote support, security operation centers (SOC) and network operation centers (NOC).
While the book is of value to anyone involved in operation, those who will find the most value are those charged with the management and operations or large groups or operations. If they have management support to deploy the formal methods detailed in the book, they will find that they can create significantly higher levels of customer and end-user satisfaction.
The authors note that all SOC and NOC's have a common feature in that the people operating them are often remote from the processes that they are monitoring and controlling, and the operations function on a 24/7 basis. The many demands of remote and continuous operation place special considerations on the design of the SOC and NOC. The output of the book is that it can be used to effectively to design these operating centers.
The books presents a comprehensive and all-inclusive on the topic of human factors on the following 14 topics: competencies, training, procedures, communications, workload, automation, supervision, shift patterns, control room layout, SCADA interfaces, alarms, control room environment, human error, and safety culture. Each chapter includes extensive diagrams and flowcharts to show how the processes develop.
The book also provides a highly analytical approach to each topic. It details the required processes and procedures necessary to make each subject area work. The book is not only based on the four author's expertise; they quote heavily from other experts and their research.
Chapter 2 opens with the observation that the safe and efficient operation of operating centers and control rooms is dependent upon the competence of the operators working within them. It details how to create competence assessments to ensure that staff is capable of carrying out their tasks safely and efficiently by assessing their skills and knowledge. The authors stress that it is not acceptable for organizations to assume that their staff are competent based on only their exposure to training and experience. They suggest that organizations create a program to determine those competence levels.
Chapter 3 goes into detail about how to create effective training programs to ensure worker competence. The benefit of a trained worked is that they can yield higher productivity and provide better service. Well-trained workers often have better morale and produce less errors. The chapter details the importance of a training needs analysis to properly determine what needs to be in the curriculum.
Chapter 4 is on procedures and is particularly important to those working in a SOC or NOC. If consistent and repeatable procedures are created, staff can provide much a more effective and dependable levels of service. Even with the benefits of well crafted procedures, its development process is a complex one involving the identification of all of the tasks that require procedures, a judgment on the level of assistance required, identification of the type or format of procedure required, writing and reviewing the procedures, and obtaining approval for them.
The importance of procedures is underscored when the book notes research that 70% of accidents and incidents within the nuclear power companies occurred when workers failed to properly follow procedures. In the petrochemical industry, 27% of incidents were caused by situations for which there were inadequate or no procedures available.
The percentage of failed IT projects and large software rollout catastrophes is both staggering and appalling. No other sector but IT would tolerate such failures. A book like as Human Factors in the Design and Evaluation of Central Control Room Operations goes a long way to stop that. The book is a rare one in that it both provides all of the factors involved in the problem at hand, and then provides all of the details needed to obviate those problems.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know.
You can purchase Human Factors in the Design and Evaluation of Central Control Room Operations 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 Python, 4th Edition
thatpythonguy writes "Learning Python is a well-written book by an experienced Python trainer that has served the Python community well since the first edition was published in 1999. Now, at its fourth edition, this book by Mark Lutz arguably continues to be Python's bible." Read on for the rest of Ahmed's review. Learning Python, 4th Edition author Mark Lutz pages 1216 publisher O'Reilly Media rating 9/10 reviewer Ahmed Al-Saadi ISBN 0596158068 summary A hands-on book that will help you be productive with Python 3.0 quickly This book is addressed as an introductory text to programmers new to Python. Although people with no programming experience are not discouraged from reading it, they are warned that time is mostly spent teaching Python, not programming fundamentals. I agree with this picture, though from my own experience and those of others, the book is equally valuable to more experienced Python programmers both as a pseudo-reference and as an introduction to more advanced topics. The critical point here is that the book does not make assumptions about educational or vocational experiences and provides many examples; this renders the book approachable by a large audience.
Both Python 2.6 and 3.x are covered in this edition. However, the latest 3.x line is considered the reference from which variations in 2.6 are discussed when appropriate. This approach is logical; the new Python 3.x presents a major change to the language, but is not sufficiently dominant to warrant exclusive treatment.
This book discusses the Python language and excludes the Python standard and non-standard libraries. The latter are discussed in other places including Lutz's own Programming Python which stands at its third edition at the time of writing of this article. I find this division necessary because of size considerations and, in fact, this division did not exist in the first edition of the book! However, there is one topic that does not seem to fit the language/libraries divide, and that topic is packaging and deployment.
I will argue that there are not many (if any) books that discuss packaging and deployment of Python programs well. I will also argue that this topic should be included in the book being reviewed here since it is so essential to real Python programming. Since Lutz discusses the Python runtime environment, I do not think it detracts from the book's coherence to include a chapter on packaging.It is possible that the proliferation of various packaging and deployment options such as distutils, setuptools, pip, buildout, virtualenv, paver, fabric and others, is the reason for this exclusion. Or it could be that these tools are in a state of major flux that any text will become quickly outdated. If size is the reason for this exclusion, maybe Lutz or someone else can publish 'Packaing and Deploying Python' as a separate volume.
The book starts by building a case for the use of Python. Both the features of the language and its prominent users are discussed to build credibility. Then, the runtime environment is discussed: how to run programs in various ways on various operating systems and language interpreters.
Types and statements, which are at the core of any language, are discussed next. Notably, there is an excellent discussion of the topic of iterators and generators (also discussed in a later chapter). Functions, modules and classes are then introduced. The text also includes a discussion of general object-oriented programming (OOP) principles which I find to be invaluable as it brings the topic of classes to life.
Exceptions are introduced and discussed in detail. The placement here is appropriate since exceptions are now objects in Python so classes had to be discussed first. This chapter should prove to be especially useful for people migrating from other languages that do not have simple, yet effective, exception-handling constructs.
Finally, four advanced topics are covered: decorators, Unicode, managed attributes, meta-classes. I find the first two to be absolutely necessary for almost any system nowadays, even small ones! The atter two are not as ubiquitous, but should be useful to more experienced programmers.
I should mention here that the discussion of the topics discussed above does not stop at the basics but provides comprehensive coverage. This is evident in the discussion of concepts such as dynamic typing, inheritance order, iterators, generators, comprehensions, and functional programming, among many others. There is even an interlude on documentation and the pydoc library.
Like many programming texts, the book uses small programming examples (appropriately executed in the Python interactive shell). The small examples hope to capture the essence of the topic at hand, and that, it does well within the limitations of a small-scale context. But this fourth edition adds a new chapter on classes (Chapter 27) that contains a more realistic code example presented in a tutorial format.
In addition to examples, each chapter ends with a summary of the chapter's content as well as a quiz on that content. The quiz is immediately followed by its answers for easy reference. I have to admit that I do not use any of these two features, so I will not be able to comment on their efficacy.
Like many O'Reilly books, this is a well-written, coherent, and beautifully type-set book. I highly recommend it to anyone who wants to, or already does, program using python. It should help the novice in the transition to an excellent programming language or, otherwise, make an already familiar environment more powerful in the hands of veterans.
Ahmed Al-Saadi is a Software Analyst who works for a Montreal Python house. He wrote his first lines of code on a Sinclair ZX Spectrum+, though unfortunately not in Python at the time.
You can purchase Learning Python, 4th 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. -
Blender 3D Incredible Machines
terrywallwork writes "Things have been moving along lately on the Blender 3D book front; a friend of mine informed me that Allan Brito released a new book called Blender 3D 2.49 Incredible Machines. I had previously reviewed one of Allan Brito's other books Blender 3D — Architecture, Buildings and Scenery, which covered the Architectural Visualization side of using Blender 3D. This new book takes a very different approach to teaching the use of Blender 2.49. It does this by taking the reader through the modeling, texturing and lighting of 3 different objects, those objects being: a futuristic gun, a futuristic spaceship (steam-punk styled) and finally a robot. Read below for the rest of Terry's review. Blender 2.49 3D Incredible Machines author Allan Brito pages 316 publisher Packt Publishing rating 7 reviewer Terry Wallwork ISBN 1847197469 summary Blender 3D book on the processes of studio model creation and display with various external renders. The introduction in the book states that the reader requires no previous experience of Blender to make use of the book. However further on in the book it is said that the book is not a beginners book and that many things will not be described in detail as the reader is expected to know the basics of how to use Blender in terms of its interface and various buttons and keypresses. After having read the entire book I would say that a beginning Blender user would be able to understand most of the book as most of the time things such as key presses and the basics of how to use Blender are explained in a way a new user to Blender would be able to follow.
The book is organized so as to be read from cover to cover and slowly progress from easy tasks to harder tasks. If you have some intermediate experience with Blender then I think the progression is well graded and will help the reader to quickly progress through the book. If you are a complete beginner some sections of the text will get a little confusing at times but with a bit of re-reading they should be understandable.
One thing that I did notice right away was the awful grammar of the text. This is most likely because English is not Allan Brito native language. Sometimes the grammar issues get in the way of understanding what task he is trying to accomplish. This does not happen often but I did find myself re-reading paragraphs to get his meaning. Now it is important to point out that I am not blaming Mr Brito for the grammar issue, the editors of the book however should have a serious talking to.
I bought the ebook version and that is what I am using to base this review on, this caused me a slight problem because the ebook mentioned some resources and graphics that were available to download from the Packt site, however on going to site the resources are not available for download (yet). As luck would have it though the EBook PDF file had good screen shots and so I was able to copy the resources directly from my PDF reader. Hopefully the site will be updated to have the resources available from the book.
I am also pleased that packt publishing has removed password protection and you can copy and select parts out of the ebook. They do however plaster your address on every page border which is irksome and if i was a pirate I could remove it easily but still they are heading in the right direction.
The book tries to present the production of the various objects in a way that is similar to how it would be done in a real production studio. While this may help give a glimpse to Blender newbies about how things are done in a real studio, to be honest those that know more than the basics will know that a lot of steps are missing that would be in a real studio setup.
With a few glaring exceptions most of the vital areas of Blender are covered in just enough detail for the information to be useful to a beginner and a memory jogger for a Blender user with some experience. Notable things that were missing from the book were any kind of use of Blender Compositing features, while this is surprising given the aim of the book, there was really no choice given the page count.
Given what was just said above, what was surprising was some of the topics that were covered, specifically the use of external renders such as Yaf(a)Ray and LuxRender. The book goes into a fair bit of detail on setting up Blender so as to use the external renderers. You won't be a Yaf(a)Ray or LuxRender guru but it gives enough to get you going. I am a Linux Fedora user and had to compile my version of the Renders from source and the book does not cover this, so if you in this position you are out of luck. There is a nice description of progressive renders and how they are different from more traditional rendering systems.
So all in all this is a passable book, useful for the info on External Renders and as a memory jogger for an experienced Blender user.
You can purchase Blender 3D 2.49 Incredible Machines from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
It's 2010; What's the Best E-Reader?
-
The Art of Unit Testing
FrazzledDad writes "'We let the tests we wrote do more harm than good.' That snippet from the preface of Roy Osherove's The Art of Unit Testing with Examples in .NET (AOUT hereafter) is the wrap up of a frank description of a failed project Osherove was part of. The goal of AOUT is teaching you great approaches to unit testing so you won't run into similar failures on your own projects." Keep reading for the rest of FrazzledDad's review. The Art of Unit Testing with Examples in .NET author Roy Osherove pages 296 publisher Manning rating 9/10 reviewer FrazzledDad ISBN 1933988274 summary Soup-to-nuts unit testing with examples in .NET AOUT is a well-written, concise book walking readers through many different aspects of unit testing. Osherove's book has something for all readers, regardless of their experience with unit testing. While the book's primary focus is .NET, the concepts apply to many different platforms, and Osherove also covers a few Java tools as well.
Osherove has a long history of advocating testing in the .NET space. He's blogged about it extensively, speaks at many international conferences, and leads a large number of Agile and testing classes. He's also the chief architect at TypeMock, an isolation framework that's a tool you may make use of in your testing efforts – and he's very up front about his involvement with that tool when discussing isolation techniques in the book. He does a very good job of not pushing his specific tool and also covers several others, leaving me feeling there wasn't any bias toward his product whatsoever.
AOUT does a number of different things really, really well. First off, it focuses solely on unit testing. Early on Osherove lays out the differences between unit and integration tests, but he quickly moves past that and stays with unit tests the rest of the book. Secondly, Osherove avoids pushing any particular methodology (Test Driven Development, Behavior Driven Development, etc.) and just stays on critical concepts around unit testing.
I particularly appreciated that latter point. While I'm a proponent of *DD, it was nice to read through the book without having to filter out any particular dogma biases. I think that mindset makes this book much more approachable and useful to a broader audience – dive in to unit testing and learn the fundamentals before moving on to the next step.
I also enjoyed that Osherove carries one example project through the entire book. He takes readers through a journey as he builds a log analyzer and uses that application to drive discussion of specific testing techniques. There are other examples used in the book, but they're all specific to certain situations; the brunt of his discussion remains on the one project which helps keep readers focused in the concepts Osherove's laying out.
The book's first two chapters are the obligatory introduction to unit testing frameworks and concepts. Osherove quickly moves through discussions of "good" unit tests, offers up a few paragraphs on TDD, and lays out a few bits around unit test frameworks in general. After that he's straight in to his "Core Techniques" section where he discusses stubs, mocks, and isolation frameworks. The third part, "The Test Code" covers hierarchies and pillars of good testing. The book finishes with "Design and Process" which hits on getting testing solidly integrated into your organization, plus has a great section on trying to deal with testing legacy systems. There are a couple handy appendices covering design issues and tooling.
Osherove uses his "Core Techniques" section to clearly lay out the differences between stubs and mocks, plus he covers using isolation frameworks such as Rhino.Mocks or TypeMock to assist with implementing these concepts. I enjoyed reading this section because too many folks confuse the concepts of stubbing and mocking. They're not interchangeable, and Osherove does a great job emphasizing where you should use stubs and mocks to deal with dependencies and interactions, respectively.
The walkthrough of splitting out a dependency and using a stub is a perfect example of why this book's so valuable: Osherove clearly steps through pulling the dependency out to an interface, then shows you different methods of using a stub for testing via injection by constructors, properties, or method parameters. He's also very clear about the drawbacks of each approach, something I find critical in any design-related discussion – let me know what things might cause me grief later on!
While the discussion on mocking, stubbing, and isolation was informative and well-written, I got the most out of chapters 6 ("Test hierarchies and organization") and 7 ("The pillars of good tests"). The hierarchy discussion in particular caused me to re-think how I've been organizing an evolving suite of Selenium-based UI tests. I was already making use of DRY and refactoring out common functionality into factory and helper methods; however, Osherove's discussion led to me re-evaluating the overall structure, resulting in some careful use of base class and inheritance. His concrete examples of building out a usable test API for your environment also changed how I was handling namespaces and general naming.
If you're in an organization that's new to testing, or if you're trying to deal with getting testing around legacy software, then the last two chapters of the book are must-read sections. Changing cultures inside organizations is never easy, and Osherove shows a number of different tools you can use when trying to drive the adoption of testing in your organizations. My own experience has shown you'll need to use combinations of many of these including finding champions, getting management buy off, and most importantly learning how to deal with the folks who become roadblocks.
The Art of Unit Testing does a lot of things really well. I didn't feel the book did anything poorly, and I happily include it in my list of top software engineering/craftsmanship books I've read. All software developers, regardless of their experience with unit testing, stand to learn something from it.
You can purchase The Art of Unit Testing with Examples in .NET from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Cacti 0.8 Network Monitoring
GJdeBoer writes "The book is aimed at people who are managing a network and would like to get insight into the performance of that network. It covers the installation and configuration of the Cacti application. In the preface the book states that it's not necessary to be a Linux Guru to use the book and that exactly is the case. The book builds up your knowledge about Cacti and the necessary steps to configure it for your network, and it teaches you about Net-SNMP and RRDTool, the building blocks of Cacti." Read on for the rest of GJdeBoer's review. Cacti 0.8 Network Monitoring author Dinangkur Kundu, S. M. Ibrahim Lavlu pages 132 pages publisher Packt publishing rating 9/10 reviewer Gert-Jan de Boer ISBN 1847195962 summary This book teaches you to monitor your network, customize the output graph and input source, and take backups As I've been working with Cacti for several years now, my aim was to get a book that describes the best practices for Cacti installations and to get a reference guide for myself. My hope was to get some more knowledge about the inner workings of Cacti and I think although meant for Cacti beginners, the book did a good job at that. I got a more clear idea about the architecture of Cacti which helps me with the integration of Cacti in my client's networks.
The book starts off with an introduction to Cacti. It explains what Cacti is, how the global architecture is and for what purposes it can be used. It also explains the basics of the prerequisite RRDTool. In the next chapter the book explains the installation of the prerequisites. The book then progresses on the installation, configuration and tasks like authentication and authorization of users. We then learn to add devices and assign templates to them.
The last chapters end the book with advanced topics for Cacti users such as Data Management and Cacti Management. It explains how to create your own data and snmp queries to be able to monitor custom devices. Personally, I found these chapters to be the most educational part of the book.
As for this book no advanced knowledge of Linux is needed. It explains the installation steps of Cacti and its prerequisites clearly and with a lot of exemplary screenshots. As Cacti is managed by means of an web interface it is the most clear way to make a point in a book about Cacti. The book is easy to read and I think the book covers the theory needed to install and operate a Cacti server perfectly. As it explains the use of Templates in Cacti and why you should use them, the book helps people build scalable and neat Cacti setups.
As a downside of the book I have found the clear focus being on the Debian side of Linux distributions. All the installation done in the book is by using apt-get, Debian and Ubuntu's package management system, but in the professional Linux world you are seeing more RedHat based distributions then Debian. I would have liked a couple of tooltips on how to install the prerequisites on RedHat or CentOS with the yum package manager or maybe by using source packages for installation. It's not a big downside for more advanced users but for the Linux novices, at who the book targets on, it could be a bit hard to find out the right way to install Cacti on a RedHat or CentOS box. Since the configuration of Cacti is the same on every platform this is only applicable for the installation chapters.
In general the book does exactly what the cover says: "Monitor your network with ease" although I found it a bit short. The book consists of a hundred and ten pages, but since there are a lot of screenshots on the pages there is less text. The book doesn't dive very deep into the inner workings of Cacti. One could argue that is exactly the point of the book: most people don't use that kind of knowledge. I would have liked a bit more insight into the MySQL database behind Cacti and troubleshooting steps for when your graphs stop working.
I think the book is great for people who want to start with Cacti because they want to monitor their network. They can install and operate a Cacti instance very quickly with help of this book without having previous knowledge of Linux. In my field of work I often come in contact with customers who have problems in their network. I always advice them to install a network monitoring appliance like Cacti. Since most of them use Windows networks they often have no experience in configuring a Linux server for Cacti. I think I will recommend this book in the future to these people.
Gert-Jan de Boer ia a self-employed IT Consultant with a company that specializes in Networking, Voice over IP, Storage and Virtualization.
You can purchase Cacti 0.8 Network Monitoring 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 Art of Scalability
Martijn de Boer writes "Creating high performance growing networks is really a special skill managers and network architects should possess to be ready for the future. The Art of Scalability is a book written for these kinds of functions, and prepares you for the present and the imminent future. Scalability is achieved by principles that work on many levels within enterprises, whether it's processes, organizational structure or setting up your project, this book covers it all." Read on for the rest of Martijn's review. The Art of Scalability author Martin L. Abbott and Michael T. Fisher pages 592 publisher Addison Wesley rating 8 reviewer Martijn de Boer ISBN 0-13-703042-8 summary Explains everything from organizational processes to the techniques used to accomplish a scalable high performance project. The sub-title for this book is "Scalable Web Architecture, Processes and Organizations for the Modern Enterprise" which is basically a catchy title for project managers and decision makers. It's just catchy enough to grab the book from a shelf and start digging into the table of contents, which is exactly the spot where you get hooked and decide to get the book. The book is written by two experts on the subject; both of them have a strong background in large corporations dealing with scalability. Throughout the book the authors shine a good light on tools and cases used for making a project scalable.
The book is divided into four sections which follow the process of starting a scalable project. First off you will need to know everything about strategy, organizational structure, the kind of people your organization needs and how to manage your team. The second part focuses on the how's and why's of scalability, aspects of planning for continuity, crisis and incident management. The later chapters in this second part talk about risks, how to value risk and the importance of testing to make educated conclusions about how far to scale your project, a notable mention here is chapter 19 which focuses on trade-offs in development speed or doing things the right way, often an underestimated point in these businesses. Architecting scalable solutions is the third part of the book, mainly taking a more technical approach to the matter. This part talks about containing faults and breaking up applications so they scale well. This goes all the way to scaling the database backend for your application to caching objects and making synchronous versus asynchronous calls to your application.
While most of the book is good for preparation, I think the fourth part of the book crosses the boundary from preparation to being very useful during the process as a fallback to your knowledge. It's titled accordingly "Solving other issues and challenges" and mainly focuses on things you will come across during the first and perhaps even later stages, providing solutions for unforeseen costs of data storage to monitoring your application for user experience, speed and the processes you will have to implement for this.
If you have read this far, and are thinking about how complex scalability really is, then you have found the right book. The clear writing style and detailed writing of numerous pitfalls for such big projects make this book a valuable asset to your knowledge base. It's also written in a challenging way, and between the lines there is also some humor (evident for instance in the reference to Rain Man in chapter 18), making it a fun way to learn or build upon a great skill set needed by organizations in the not so distant future. I feel very positively about the writing style of the book, but despite there being some illustrations there could be some more diagrams of organizational structure and the architecture of projects as I didn't find the illustrations adding much to the context.
The short appendixes to the book are mostly about calculating capacity for cpu power, bandwidth, etcetera. These appendixes actually provide sample calculations which are useful to backup your analysis when you need to make a bill of materials for your superiors and can also be used to better grasp the size of a project. Numbers mostly provide a context for the people above you, and I think these extra pieces of content could have deserved another part in the book, but perhaps it's better off as some food for thought.
Before starting with this book, I had not much prior knowledge about scaling projects other then some technical ideas of implementation. I always hate it when I know I'm just scratching the surface of something, and need to satisfy my urge to learn more about the subject. The Art of Scalability really helped me accomplish that, and provided much more background information then I expected. I was really surprised by the pieces about cloud computing, it's such a buzzword nowadays but the texts give it a real context.
If you are looking to set up a project or are generally interested by the concepts of scalability, then this is the right book for you. It's an appropriate recommendation for most businesses, because this knowledge can only be used to your advantage and just takes a little bit of time to read trough. It's a heavy subject, but once you finish the book you will be able to make a decision about architecture based on a good foundation of background information rooted in real situations.
You can purchase The Art of Scalability from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Sams Teach Yourself HTML and CSS In 24 Hours
r3lody writes "Sams Teach Yourself HTML and CSS in 24 Hours 8th edition, by Julie C. Meloni and Michael Morrison, provides the beginning and intermediate web designer with the tools needed to create standards-based web sites. The major focus of the book is XHTML 1.1 and CSS 2, but HTML 5 and some XHTML 1.0 are discussed. Overall, the presentation and content are very good. One small minus was that the publisher's site did not include downloadable examples from the book. I also found no errata until the latter parts of the book. Published in December of 2009, the 8th edition provides reasonably current information." Read on for Ray's review. Sams Teach Yourself HTML and CSS in 24 Hours (8th edition) author Julie C. Meloni and Michael Morrison pages 456 publisher Sams rating 8/10 reviewer Ray Lodato ISBN 0672330970 summary A very useful text on web page coding using XHTML and CSS. Each "hour" of the book includes a "What You'll Learn in this Hour" section at the beginning, and Q&A, Quiz and Exercises sections at the end. Most chapters also include a "Try It Yourself" section, indicating what you should be accomplishing with your own web site. The examples have color coding for the various tags, comments, etc., and the book's examples work with a number of browsers. Specifically, Apple Safari, Google Chrome, Microsoft Internet Explorer, Mozilla Firefox, and Opera browsers were used to test the examples. If you use the coding standards espoused in the book, your web pages should appear properly formatted across most computers. Handheld browsers are only covered briefly, in the section discussing media-specific style sheets.
Overall, the book is divided into five parts: Getting Started on the Web, Building Blocks of Practical Web Design, Advanced Web Page Design with CSS, Advanced Web Site Functionality and Management, and Appendixes.
Part I: Getting Started on the Web provides the customary introductory material, suitable for beginning users. After describing the seemingly obligatory "history of the web", the first hour concludes with discussions of how to choose a web hosting provider – a topic rarely covered in the books I've read. The second hour teaches how to get web pages uploaded to a web server using FTP, and how to distribute content in a file-based structure without a server. The next two hours then cover the basics of XHTML 1.1 and CSS 2. For both XHTML and CSS, very clear instructions on how to validate your coding help insure that your pages follow the standards.
The next 9 chapters comprise Part II: (Building Blocks of Practical Web Design). This part goes into detail regarding web page coding. Starting with text alignment using paragraph tags and lists, the book has a good collection of text formatting tips using CSS as the preferred style methodology. Tables and links are covered in the next two chapters at a pretty standard level. I found the chapter on using color had a lot of good information, but I believe a beginning user would find it somewhat confusing – especially when hexadecimal notation is introduced.
The next three chapters of this part of the book cover images and multimedia. I liked the focus on getting the right sizing for photos and banners, and the tutorial on how to place the images on the web page (including wrapping text, image maps, and clickable images). I was disappointed in the limited coverage of tiling and GIF animation. The multimedia chapter was a pleasant addition – one I have rarely seen in web design texts. The discussion was tilted toward Microsoft technology, so my testing worked properly only under Internet Explorer at first, however I finally managed to get Firefox to deal with the embedded object. Some information was given for embedding YouTube links, also. I would have liked to have seen more information on the parameters for the WMP object coding. The last chapter in Part II covers frames – both framesets and iframes – with only basic information.
Advanced Web Page Design with CSS is the main topic of Part III. These six chapters dig into the important aspects of CSS alignment. One chapter focuses entirely on margins, padding, alignment and floating, and provides a nice introduction to the full discussion of the CSS box model in the next chapter. Reformatting lists was the principal target of the next chapter, leading to a discussion of navigation bars (horizontal and vertical) in the chapter after that. This is where I started picking up on some irregularities that escaped a review. For example, even though this was supposed to be standard XHTML, I noticed some list item ending tags missing from the examples. Granted, browsers still display the list properly, but this should have been caught before printing.
The last two chapters in this part cover modifying text display using mouse actions, and fixed versus liquid layouts. I liked the mouse techniques to modify a displayed image based on which thumbnail image the mouse is over. It's a simple little method that looks very nice on the page. The liquid layout chapter gave me some problems at first. My attempts didn't work the same under different browsers at first, but when I went back over them while writing the review, they worked just fine. I'm still at a loss to understand what was wrong, so I suspect those starting out may have a similar experience.
The final major part, Advanced Web Site Functionality and Management, wraps up some miscellaneous issues. First, they cover how to create a modified CSS profile to make the web page more print-friendly. The next chapter provides an introduction to JavaScript. Unfortunately, this is where I found some more non-standard XHTML code. Web-based forms are covered only at a high-level in hour 22. The authors do provide examples of each type of form field, with CSS code to neaten up the page, but it appears to be a very cursory handling of the topic.
The final two hours go over the basics of keeping your web site organized, and how to publicize the site on major search engines. The book wraps up with a final part for the two appendixes, containing useful links to further information and a general XHTML and CSS reference.
Teach Yourself HTML and CSS in 24 Hours appears to be a properly authoritative text that would help you create a standards-based web site. Like most texts of this type, it does not reference web design software such as DreamWeaver. Rather, it addresses understanding exactly what code standards-based browsers will handle, and how you can manipulate them to create exactly what you want. The two main disappointments with the book are the obvious errors in the later chapters, and the lack of downloadable examples from the publisher's web site. That said, the content is so worthwhile, I rated it an 8 out of 10.
You can purchase Sams Teach Yourself HTML and CSS in 24 Hours (8th 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. -
Joomla! 1.5 Development Cookbook
Sparky Anduril writes "In Joomla! 1.5 Development Cookbook James Kennard has written an accessible and easy-to-read book to help anyone who is writing (or plans to write) extensions for the popular open source content management system, Joomla! (specifically for version 1.5). It is available as a paperback or PDF eBook." Read on for the rest of Jonathan's review. Joomla! 1.5 Development Cookbook author James Kennard pages 360 publisher Packt Publishing rating 9 reviewer Jonathan West ISBN 978-1-847198-14-3 summary Recipes for developing extensions with Joomla! 1.5 This is not an introduction to writing extensions for Joomla! For example, it does not describe the architecture of extensions, nor does it suggest how you should go about designing or developing extensions. The book does not claim to do this and you will need to look elsewhere if you need introductory material on that subject.
What this book does provide however is a number of "recipes" that developers can use to solve common problems when developing extensions for Joomla! As such it is a very useful resource that can be used in two ways: the inexperienced developer will want to read through the entire book chapter by chapter, to understand the issues they will need to consider. The more experienced developer will want to use this book as a reference book, dipping in when they encounter a particular problem or face a particular task.
The first thing to say is that (perhaps unusually for a software developer) James can write! His English is clear and I cannot imagine anyone having any complaints about his grammar. This means that despite being a technical reference the book is a pleasure to read.
Each recipe is laid out in the same format (as you would expect from any good cookbook!) The title of the recipe is followed by an explanation of the problem or task. "Getting ready" lays out what you must do before getting to the body of the recipe. "How to do it..." is laid out as a set of code statements with a brief explanation. "How it works..." provides more explanation on why to do what the recipe says, often accompanied by example data. "There's more..." lays out additional things to consider, perhaps more you can do with the recipe or alternative ways of achieving the same end. Where they are alternatives, James is generally very careful to explain the pros and cons of each approach. "See also" provides a cross-reference to related recipes in the book.
The first chapter is an essential introduction to getting involved in the Joomla! open source community through JoomlaCode.org. James explains how to create a new project and manage that project. The chapter concludes by explaining the use of TortoiseSVN for managing the source code of your project. I found that the explanation of the top-level folder structure and the use of branches within SVN was particularly illuminating.
The next two chapters provide further general background: chapter two provides recipes to ensure your extensions remain secure and chapter three describes how to work with the database. While James does not explain the underlying security issues (e.g. he does not describe what SQL injection is and why it may comprise security), the recipes provided (that address keeping your SQL safe, ensuring filenames and folders are safe and that you ensure that request data does not pose a threat) are easy to follow and I was able to work out why they should be used. The chapter on Working with the Database explains how to construct and execute SQL queries and the use of the Joomla!-specific JTable object. While I am familiar with working with SQL, this chapter was an eye-opener to me as it shows very clearly how working with the database under the Joomla! framework is different from conventional approaches, and how the JTable object makes it very easy to manipulate the database.
The remaining chapters of the book each focus in on a particular area. James covers the following topics: "The Session and the User", "Multilingual Recipes", "Interaction and Styling", "Customizing the Document", "Customizing the Backend", "Keeping it Extensible and Modular", "JObjects and Arrays", "Error Handling and Reporting", "Files and Folders".
The range of topics covered is such that it will ensure you at least think about some issues that otherwise may never have crossed your mind. For example, you may not have considered it necessary to make your extension available in other languages, but in the chapter on "Multilingual Recipes" James shows that it is incredibly easy to make your extension language-aware, so even if you're not going to provide a Slovakian or Sanskrit translation you can at least ensure that your extension will support those languages (should someone out there want to do the translation work for you — which is often what happens with Joomla! extensions).
A brief summary of the content of each chapter, with a few highlights picked out, follows:
"The Session and the User": recipes cover how to use session data and how to find out information about the current user (whether guest or logged in), restricting user access based on privilege and using a user's parameters.
"Multilingual Recipes": how to ensure your extensions can support other languages, and also how to provide a translation (if you're gifted that way!)
"Interaction and Styling": applying CSS, Javascript, Ajax and MooTools to enhance your extension. This does not cover what CSS is and how to style a page, but rather how to ensure you plug CSS into your pages correctly using Joomla!
"Customizing the Document": ways of modifying the response by working with the Joomla! JDocument object. The most interesting recipes cover how to create PDF and RSS or Atom feeds from your component. This chapter is a little hard to get into as so little context is provided, but it is assumed that the reader will already have that context from a fuller knowledge of how Joomla! extensions are designed and developed.
"Customizing the Backend": provides a useful set of recipes so you can customize the backend (or administration element) of your component. James covers useful items such as disabling the menu bar (needed if the user is currently editing the configuration, so they cannot for example logout when half-way through an operation), creating a filter header (like the article filtering by section/category in the in-built content component) and how to enable tabular data to be ordered (by licking on the table header).
"Keeping it Extensible and Modular": looks at how to use Component Based Development the make it easier to develop and ensure extensions are more flexible. One very useful recipe shows you how to write a search plugin for your component; a further set of recipes describe how to manage component parameters (enabling your users to configure the behavior of your component through the backend).
"JObjects and Arrays": "Error Handling and Reporting": "Files and Folders": The final three chapters cover some fundamental concepts and provide recipes that explain how to manipulate data, manage errors and deal with files and folders.
I personally have extensive experience of building web sites using Joomla! but have no experience in developing extensions. However as a software professional I have several years experience of software development, and will find this book very useful as I start to become more involved in developing extensions for Joomla!
You can purchase Joomla! 1.5 Development Cookbook from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
OpenGL Programming Guide 7th Edition
Martin Ecker writes "The Red Book, also known as the OpenGL Programming Guide published by Addison-Wesley Professional, returns in its seventh edition, now covering OpenGL up to and including version 3.1. The Red Book, so called because of its deep red cover, is the most-well known, authoritative introduction to the OpenGL graphics API. In this review I want to take you on a whirlwind tour through the pages of this book to see what it has to offer." Keep reading for the rest of Martin's review. OpenGL Programming Guide (Seventh Edition) – The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 author Dave Shreiner, The Khronos OpenGL ARB Working Group pages 883 publisher Addison-Wesley Professional rating 8/10 reviewer Martin Ecke ISBN 0-321-55262-8 summary The Red Book remains the authoritative guide to OpenGL. The Red Book is aimed at the beginning to intermediate graphics programmer that is not yet familiar with OpenGL. It assumes a basic background in computer graphics theory and working knowledge of the C programming language. Just as the previous edition of the book, the seventh edition is incredibly comprehensive and thorough. It contains explanations of pretty much every feature OpenGL has to offer, even the more obscure and rarely used ones. This is good in the sense that it's a fairly complete book, but it can also be somewhat overwhelming for a beginner when confronted with a book that weighs in at almost 900 pages. However, the good news is that the material is presented in a logical progression and even a novice will get up to speed with the basics of OpenGL after reading only the first few chapters of the book. Some of the early chapters in the book contain a few more advanced sections mostly explaining new features that got introduced with OpenGL 3.1. These sections are conveniently marked as advanced and can probably be skipped on a first read-through of the material.
The first chapter gives a brief introduction to the basic concepts of OpenGL and describes the rendering pipeline model used in the API. GLUT, a cross-platform library that allows easily creating OpenGL applications, is also shortly discussed together with a program that shows GLUT in action. The following chapters proceed to explain the basic geometric primitives, such as lines and polygons, supported by OpenGL and how to render them in different positions and from different viewpoints using the various OpenGL matrix stacks. Also the basics of using colors, lighting, framebuffer blending, and fog are discussed.
Chapter seven contains a description of display lists, a unique and with OpenGL 3.1 deprecated feature of OpenGL that allows to store OpenGL API calls for efficient multiple uses later on in a program. Chapter eight then moves on to discuss what an image is for OpenGL, and most notably covers pixel buffer objects, a somewhat recent addition to OpenGL. The discussion of images in chapter eight brings us straight to chapter nine on texture mapping, one of the largest and arguably most important chapters in the book. Everything you need to know about textures is discussed, from specifying texture images in uncompressed and compressed form to applying textures to triangles using the various kinds of supported texture filters. Also depth textures and their application in the form of shadow maps and – new in the seventh edition – floating-point textures and texture arrays added in OpenGL 3.0 are presented.
In chapter ten the authors discuss the buffers that make up the framebuffer, such as the color buffer, depth buffer, and stencil buffer. This chapter summarizes some of the things already presented in the earlier chapters and then describes the various framebuffer operations in more detail. Chapter eleven and twelve are on the tools provided by GLU, the GL utility library, in particular tesselators, quadrics, evaluators, and NURBs. GLU is nowadays rarely ever used in production code, so these chapters mostly demonstrate just how complete the Red Book is in its coverage of OpenGL. This also applies to chapter thirteen on selection and feedback, which are rarely used features, mostly because of the lack of hardware acceleration in today's GPUs.
Finally, chapter fourteen is a collection of topics that didn't fit into the other chapters, such as error handling and the OpenGL extension mechanism. Additionally, this chapter presents various higher level techniques and tricks, for example how to implement a simple fade effect, how to render antialiased text, and some examples of using the stencil buffer. The final chapter of the book is a discussion of the OpenGL Shading Language (GLSL, for short). In the seventh edition this chapter has been updated to version 1.30 and 1.40 of GLSL, as required by OpenGL 3.0 and 3.1, respectively. Even though the OpenGL API functions required to use GLSL are presented, this is only a rough overview of how programmable shaders are used in OpenGL. For a more detailed description of GLSL the reader is referred to the book "OpenGL Shading Language. Third Edition" also called the Orange Book.
The book closes with quite a few appendices on the order of operations in the OpenGL rendering pipeline, the state variables that can be queried, the interaction of OpenGL with the operating system-specific windowing systems, a brief discussion of homogeneous coordinates as used in OpenGL, and some programming tips. Also a reference of the built-in GLSL variables and functions is included.
The book contains a large number of images and diagrams, all of them in black and white except for 32 color plates in the middle of the book. The illustrations are of high quality and generally help make the explained concepts and techniques easier to understand. Most of the color plates depict spheres, teapots, and other simple geometric objects, so they aren't overly eye-catching but do serve their purpose of showing what can be achieved with OpenGL.
With OpenGL 3.1 deprecating many older API features of OpenGL in favor of more modern alternatives, the seventh edition of the Red Book seems to have a bit of a split personality at times. If you're only interested in functionality not deprecated in 3.1 you can skip entire chapters, such as the chapter on display lists or fixed-function lighting. Of course, the knowledge of matrix stacks and how to use transformations is still relevant, but the corresponding OpenGL functions have been deprecated in favor of doing all the transformation math in the vertex shader or, what most people have been doing anyway, using your own matrix structures/classes on the CPU. The situation is similar for many of the other deprecated features (such as fixed-function lighting, color index mode, immediate mode, ...) that are still described in the book. I think the time is right to combine the Red Book with the Orange Book, removing any discussion of deprecated features, to have a book that focuses solely on the modern approach to graphics programming, which is mostly based on shaders. I can only hope such an OpenGL 3.1-only focused book will see the light of day soon.
All in all, the Red Book remains the definitive guide to OpenGL. Apart from being a good introduction, it also contains many interesting tips and tricks that make the experienced OpenGL programmer come back to it often. If you've read through the Red Book and the Orange Book in their entirety you pretty much know everything there is to know about OpenGL.
The author has been involved in real-time graphics programming for more than 10 years and works as a professional game developer for High Moon Studios in sunny California.
You can purchase OpenGL Programming Guide 7th 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. -
The Social Media Marketing Book
brothke writes "The fact that President Barack Obama has over 7 million Facebook fans, and First Lady Michelle Obama over 650,000 fans, are confirmation that social media has come of age. That is a far cry from former President Bush's comment in 2006 that he used the Google. While it is relatively easy for the President to get millions of followers, the challenge for businesses of all sizes is how to use social media to get fans and followers, and use them to drive business." Read below for the rest of Ben's review. The Social Media Marketing Book author Dan Zarrella pages 224 publisher O'Reilly Media rating 9/10 reviewer Ben Rothke ISBN 978-0596806606 summary Excellent introduction to social networks and the marketing opportunities on the social web Many spam messages recently have such enticing subjects as 'Make Money on Twitter' or 'Be a Facebook Money Machine'. While those are clearly scam emails, the truth is that social media is a tidal wave. The challenge for everyone, how to get in front of that wave.
At about half the size of a regular book at 224 pages, The Social Media Marketing Book is lean to begin with. Given that about half of its pages are screen prints, one would think that such a book is a sparse approach to the topic. But the book is indeed a highly-tactical guide of significant value to any individual or organization looking to get into social media.
Many are looking to get into social media for either themselves or their business, but are clueless on how to do that. For those, the book provides an easy to understand and implement guide to using the major social networks. This includes information on Twitter, Facebook, MySpace, LinkedIn.
The book does a good job of showing the difference between different social media sites, such as pure networking (LinkedIn, Facebook), media sharing (YouTube, Flickr), blogs, microblogging, and bookmarking (Reddit, Delicious, Digg) and more.
While others would take three times the books length to make their point, Dan Zarrella is able to do that succinctly and to the point. His real-world experience in the social web is evident throughout the book. It is clear the author is one who is enmeshed in the topic in which he is writing. A lot of books show the promise of what social networks can do, but do not show how to get it done; this book does and shows what it can, and can't do.
The book(TM)s organization places an emphasis on practical use and readability. For the social media newbie, the first two chapters provide a superb synopsis of the history, protocols, and content strategies around social media. The introduction to social media provides the reader with an overview of the use, history, definition, and description of the various types of social media. Each chapter is full of actionable items that the reader can put to immediate use. The book is zero theory and complete actionability around social media.
Zarrella has also done significant research on what makes for a successful social media presence. In chapter 3 on Twitter and microblogging, he writes of the importance of an effective Twitter bio. In the chapter, he also looks at the relationship the content of a user's bio has on the number of followers a user has. He also writes about the relationship between follower number and gender and family roles. For those looking to make the most of Twitter, his paper The Science of ReTweets is a great resource.
Another benefit of The Science of ReTweets and this book is that Zarrella has not a single high-level suggestion that is impossible to put into practice. All of his advice is based on solutions that work. Zarrella's analytical marketing approach is based on science, statistics, experimentation and real data. Quite a novel concept in the world of marketing.
Throughout the book, there is good advice and it tells you what works and does not work. The book is easy to read and it makes significant use of screenshots, which are meant to give the reader a specific visual explanation of the steps they need to take.
In the section on Facebook, Zarrella makes an observation that is crucial to ones success for a business use of Facebook. He notes that for businesses, the best social media marketing is always going to be done by your fans, not by you. He notes that nearly every company engaged in social media marketing should have a Facebook page, as it can often serve as a central place for the integration of others parts of a campaign.
In chapter 8, on the topic of forums, he reiterates the importance of fans, writing that a business should not underestimate the power of networks of niche forums to drive impressive numbers of visitors to your site. Once again, the best promotion comes not from the business, but from its fans.
One of the mistakes far too many companies have made, and which the book strongly advises against, is the use of forum marketing services. These organizations promise a lot but rarely deliver results. They use myriad bogus accounts to create a false buzz on behalf of the business they are trying to promote. Such an approach only serves to wreck the reputation of the business due to the zero value they post from bogus accounts.
While getting into the social web is important, chapter 10 is the books most important chapter, on the topic of strategy, tactics and practice. A mistake many make is in thinking a social web presence alone is enough, which is far from the truth. The chapter details all of the intricacies of strategy, tactics and practice to make it work. The chapter notes that strategy and tactics are inseparable, and that any successful social network presence will require both.
In an interview, Zarrella observed that the biggest challenge in social media is learning how to incorporate social media into their daily work and life. With Twitter for instance, there are many good marketers who don't Tweet that much, or do for a little while and then stop. It's a marathon, not a sprint and the savvy businesses are going to have the best results when they can learn to integrate social media with what they are already doing.
Overall, The Social Media Marketing Book is an extremely valuable resource on understanding and applying social media for both the individuals, and business. The book is a great introduction that can help you to get started. Once done, you can move onto the next level. Hopefully, Zarrella is working on that book now.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know .
You can purchase The Social Media Marketing 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. -
The Social Media Marketing Book
brothke writes "The fact that President Barack Obama has over 7 million Facebook fans, and First Lady Michelle Obama over 650,000 fans, are confirmation that social media has come of age. That is a far cry from former President Bush's comment in 2006 that he used the Google. While it is relatively easy for the President to get millions of followers, the challenge for businesses of all sizes is how to use social media to get fans and followers, and use them to drive business." Read below for the rest of Ben's review. The Social Media Marketing Book author Dan Zarrella pages 224 publisher O'Reilly Media rating 9/10 reviewer Ben Rothke ISBN 978-0596806606 summary Excellent introduction to social networks and the marketing opportunities on the social web Many spam messages recently have such enticing subjects as 'Make Money on Twitter' or 'Be a Facebook Money Machine'. While those are clearly scam emails, the truth is that social media is a tidal wave. The challenge for everyone, how to get in front of that wave.
At about half the size of a regular book at 224 pages, The Social Media Marketing Book is lean to begin with. Given that about half of its pages are screen prints, one would think that such a book is a sparse approach to the topic. But the book is indeed a highly-tactical guide of significant value to any individual or organization looking to get into social media.
Many are looking to get into social media for either themselves or their business, but are clueless on how to do that. For those, the book provides an easy to understand and implement guide to using the major social networks. This includes information on Twitter, Facebook, MySpace, LinkedIn.
The book does a good job of showing the difference between different social media sites, such as pure networking (LinkedIn, Facebook), media sharing (YouTube, Flickr), blogs, microblogging, and bookmarking (Reddit, Delicious, Digg) and more.
While others would take three times the books length to make their point, Dan Zarrella is able to do that succinctly and to the point. His real-world experience in the social web is evident throughout the book. It is clear the author is one who is enmeshed in the topic in which he is writing. A lot of books show the promise of what social networks can do, but do not show how to get it done; this book does and shows what it can, and can't do.
The book(TM)s organization places an emphasis on practical use and readability. For the social media newbie, the first two chapters provide a superb synopsis of the history, protocols, and content strategies around social media. The introduction to social media provides the reader with an overview of the use, history, definition, and description of the various types of social media. Each chapter is full of actionable items that the reader can put to immediate use. The book is zero theory and complete actionability around social media.
Zarrella has also done significant research on what makes for a successful social media presence. In chapter 3 on Twitter and microblogging, he writes of the importance of an effective Twitter bio. In the chapter, he also looks at the relationship the content of a user's bio has on the number of followers a user has. He also writes about the relationship between follower number and gender and family roles. For those looking to make the most of Twitter, his paper The Science of ReTweets is a great resource.
Another benefit of The Science of ReTweets and this book is that Zarrella has not a single high-level suggestion that is impossible to put into practice. All of his advice is based on solutions that work. Zarrella's analytical marketing approach is based on science, statistics, experimentation and real data. Quite a novel concept in the world of marketing.
Throughout the book, there is good advice and it tells you what works and does not work. The book is easy to read and it makes significant use of screenshots, which are meant to give the reader a specific visual explanation of the steps they need to take.
In the section on Facebook, Zarrella makes an observation that is crucial to ones success for a business use of Facebook. He notes that for businesses, the best social media marketing is always going to be done by your fans, not by you. He notes that nearly every company engaged in social media marketing should have a Facebook page, as it can often serve as a central place for the integration of others parts of a campaign.
In chapter 8, on the topic of forums, he reiterates the importance of fans, writing that a business should not underestimate the power of networks of niche forums to drive impressive numbers of visitors to your site. Once again, the best promotion comes not from the business, but from its fans.
One of the mistakes far too many companies have made, and which the book strongly advises against, is the use of forum marketing services. These organizations promise a lot but rarely deliver results. They use myriad bogus accounts to create a false buzz on behalf of the business they are trying to promote. Such an approach only serves to wreck the reputation of the business due to the zero value they post from bogus accounts.
While getting into the social web is important, chapter 10 is the books most important chapter, on the topic of strategy, tactics and practice. A mistake many make is in thinking a social web presence alone is enough, which is far from the truth. The chapter details all of the intricacies of strategy, tactics and practice to make it work. The chapter notes that strategy and tactics are inseparable, and that any successful social network presence will require both.
In an interview, Zarrella observed that the biggest challenge in social media is learning how to incorporate social media into their daily work and life. With Twitter for instance, there are many good marketers who don't Tweet that much, or do for a little while and then stop. It's a marathon, not a sprint and the savvy businesses are going to have the best results when they can learn to integrate social media with what they are already doing.
Overall, The Social Media Marketing Book is an extremely valuable resource on understanding and applying social media for both the individuals, and business. The book is a great introduction that can help you to get started. Once done, you can move onto the next level. Hopefully, Zarrella is working on that book now.
Ben Rothke is the author of Computer Security: 20 Things Every Employee Should Know .
You can purchase The Social Media Marketing 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. -
Amazon Kindle To Get Apps and EA Games
Lanxon writes "Amazon currently encourages publishers and authors to sell their books and magazines digitally, but the upcoming Kindle Development Kit (KDK), which goes into beta next month, says Wired, will allow software developers to create a variety of different applications. Amazon has already confirmed a Zagat guide for restaurant reviews from Hallmark and a selection of word games and puzzles, such as Sudoku, from Sonic Boom. EA Mobile is also set to release games on the Kindle."The kit itself is expected to be available next month. -
Python Essential Reference 4th Ed.
stoolpigeon writes "It has been ten years since David Beazley wrote the first edition of Python Essential Reference. The book has proven itself as a valuable resource to Python developers and has been kept current over those ten years, with the fourth edition coming at an interesting time for Python. Python 3 was a major release that broke backwards compatibility. Python 3 has been around for a year now. That said, the current download page at the official Python site states, 'If you don't know which version to use, start with Python 2.6.4; more existing third party software is compatible with Python 2 than Python 3 right now.' Beazley, in keeping with the pragmatic roots of a reference that sticks to what is 'essential,' has removed the coverage on features from 2 that were removed from 3. At the same time, the primary focus for new features that came with 3 is limited to those that have been back-ported to 2. This approach, born out of a desire to keep the reference relevant, provides a blended approach that is above all else practical." Read on for the rest of JR's review. Python Essential Reference 4th Ed. author David M. Beazley pages 738 publisher Addison-Wesley rating 9/10 reviewer JR Peck ISBN 978-0-672-32978-4 summary A definitive guide to the core Python language and the essential parts of the Python library. The end result of that choice is a reference document consisting of those parts of Python that are shared between versions 2 and 3. This is a significant portion of the language and I think this approach is really what will give this reference more traction than many of the other guides that focus purely on 3. I think that those are valuable and over time the balance will shift but as of right now, for a little while to come, this book takes the most realistic approach. That feels very fuzzy, but I have no idea how long it will be until Python 3 truly is the dominant version and Python 2 is truly put to bed.
If I had to guess how Beazley's Python Essential Reference has held in there over the years, the key would be that there is a lot of what a developer needs and very little of what she doesn't need. There is a twenty-four page tutorial introduction, but this is not a guide on how to program or how to use Python for beginners. An experienced programmer could probably use this reference to shift to Python as a new language, but someone completely new to writing code would probably not want to start here. A quick look at the table of contents shows that an explanation of the language itself is covered in under 200 pages. Extending and embedding Python also get their own section, but close to 400 pages is given to the Python library.
An inevitable question is what one will gain with this reference over the online documentation. A good example to see how things vary is to look at chapter nineteen, Operating System Services and the online documentation for Generic Operating System Services. The online documentation is very thorough, and covers each piece of the library starting with os and io, building from there. While every facet is documented much of it is rather brief. For example section 16.2.3. Raw File I/O is a very straightforward listing of the very low level functionality available via io.FileIO. In contrast, looking at the 3.1.1 Docs for Raw IO shows that parameters for FileIO changed with that version. Looking to the documentation for 2.7a1 Raw File I/O shows that these changes are being back-ported to Python 2.
In Python Essential Reference none of this hunting down changes and checking to see if they are coming to 2 are necessary. Beazley shows them in his documentation. This is the strength of his choice on how to handle these types of situations. On top of that, Beazley provides more than the online documents by including four paragraphs of additional information on Raw I/O and when its use is appropriate. This added content is probably available googling around for it, but then I have to take the time to check dates on posts to see if things are still current and in general just hope that things are accurate. I have never read a technical book that was completely error free, and there are probably at the very least some typos in Python Essential Reference, though I haven't caught any of them on my read through or use of the book yet. But the important thing is that I don't expect the book to be perfect, rather I value it for being a known quantity. I am aware of just when the material was compiled, who put it together and I have it all in one place.errno symbols is not exhaustive and oddly enough is not ordered alphabetically. Beazley provides two lists for errno symbols. They are provided in alphabetical order, have a description and are grouped as POSIX error codes and Windows error codes. A quick glance at these tables in a skimming of the book might lead one to believe that this is just a simple quick grab from already available sources, but that isn't the case. There is real value added even here.
The index is solid. It would seem that one should be able to take this for granted with a technical reference but I've seen some sad exceptions. Between the thorough index and the detailed table of contents I've never had to spend more than a few seconds looking for what I need. This is the result of those tools as well as the fact that this is not an exhaustive reference. After initially reading through the book for this review, I've taken some time just to use it day to day, as I doubt many will be reading it from front to back. I don't use Python professionally. I'm purely a hobbyist when it comes to programming, but I've found that if I want to get the most out of the time I do have to play with personal projects, I want this book close. I'm not cranking out code that fast to begin with and so I need all the help I can get. I've found that Beazley seems to have hit that sweet spot where he gives enough information to get me where I need to be without bogging down in too many details or the things that I just don't need to know. I imagine this proper balance of information is due to Beazley's extensive experience with Python and that of Noah Gift the technical editor for the book.
I've mentioned repeatedly that I approve of how the shift between Python 2 and 3 has been handled. Beazley hasn't completely integrated everything and left some of the unique new features of 3 out in the cold. There is an appendix that deals specifically with Python 3. It is short but does have some value. New features, common pitfalls for those making the move from 2 to 3 and how to run both at the same time in a single environment are covered. This is helpful and keeps my desk a little neater, though I think if I were going to be spending extensive time working with Python 3 then I would probably want to have another reference on hand.
If you are a week-end hacker like me, or someone that is writing Python on the clock, I think that this compact reference is very useful. I don't have any trouble running across huge technical books that do come in handy for any project that requires something heavy. I also see a lot of little books that seem to be quickly produced summaries of what is already out there, spending most of their short content on fluff. Every so often though, someone hits that sweet spot of concise usefulness. Beazley did this with Python Essential Reference and this new edition continues that history in strong fashion.
You can purchase Python Essential Reference 4th 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. -
ModSecurity 2.5
Martijn de Boer writes "For a long time now Apache's webserver software has been serving up the Web. Because Internet usage is still growing every day, securing your growing number of servers has become very important. ModSecurity 2.5 has been written to illustrate and educate you the ease of use and inner workings of the ModSecurity module for the most widespread webserver." Read below for the rest of Martijn's review. ModSecurity 2.5 author Magnus Mischel pages 280 publisher Packt rating 9/10 reviewer Martijn de Boer ISBN 1847194745 summary shows you how to secure your web application and server The cover reads “Prevent web application hacking with this easy-to-use guide” and sticks with this claim to provide you with a good pathway to secure your webserver. The book is aimed at system administrators ranging from enthusiasts running a webserver at home to your friendly administrators at a large company. Most of the book requires only familiarity with using the linux shell and basic Apache configurations, but earlier encounters with some technicalities like regular expressions may be of help during your reading.
Throughout the chapters the author takes you from the different methods of installing ModSecurity and the basics of creating your first rules to the discovery and reporting of your possible intrusions. Generally providing solutions for example geolocating the origin of the hack, and automatically scanning uploaded files for viruses, the authors background in Internet Security makes this book a valuable asset to your bookshelf.
In the chapters found later in the book, the author shows how to use tools to fingerprint your server and provides you with recipes on how to prevent these methods of gathering information about your server. There is also a lot of information about the impact of rules on the performance of your server. Because the impact is different in every situation, you will be guided around some tools to measure the performance and you will learn how to interpret this data.
Chapter 5 talks about Virtual Patching, a method of preventing misuse by intercepting bad traffic and creating a set of rules for this. This chapter is by far the best piece of information I have found on how this actually works, and how you implement such rules and configuration, and why you should use the method of virtual patching in your situation. Basically the author takes out all the question marks you will have about this method of quickly applying rules and provides a case which is fully illustrated with a lot of background information about the process of finding a insecure piece of code to solving this with a set of rules.
When Packt Publishing contacted me if I would like to review another book for them, I picked this one out of the new releases because using ModSecurity has never been a priority for me. After seeing the title and table of contents I realized that you can never start too early to dive into this subject, and start preventing misuse before it causes more trouble then you can handle, trouble always finds you at the worst times. The author has divided the book in logical chapters, and the depth of information builds up equally from beginning to end. For instance, the second chapter takes you through the basics of regular expressions, but because you will encounter them during rule creation Appendix B will educate you with all specifics of creating those expressions.
As a developer running local test servers, I have found this book very interesting and a great resource on a for me grey area of server security. I am pleasantly surprised by the clarity of the book, the writing style makes you really want to dive into your webserver to apply your newly gained insight to ModSecurity.
You can purchase ModSecurity 2.5 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 JQuery 1.3
Michael J. Ross writes "Of all Web technologies, JavaScript may have the most checkered past — first heralded as a powerful object-oriented language for jazzing up Web pages, but later condemned as a source of spammy pop-up windows and horrid animations polluting websites everywhere. Yet during the past several years, Web designers and developers are increasingly using JavaScript unobtrusively, for client-site interactivity — as a supplement to server-side functionality, not a replacement, and built upon standards-compliant (X)HTML and CSS. As a result, the once-derided language is now enjoying a true resurgence in interest and use. This has been bolstered by the proliferation of JavaScript libraries, of which jQuery is clearly the front runner. Web programmers seeking to get up to speed on this exciting resource can turn to Learning jQuery 1.3: Better Interaction Design and Web Development with Simple JavaScript Techniques." Keep reading for the rest of Michael's review. Learning jQuery 1.3 author Jonathan Chaffer, Karl Swedberg pages 444 pages publisher Packt Publishing rating 9/10 reviewer Michael J. Ross ISBN 978-1847196705 summary A detailed introduction to this popular JavaScript library. Written by Jonathan Chaffer and Karl Swedberg — two veteran Web developers based in Grand Rapids, Michigan — Learning jQuery 1.3 was published on 13 February 2009, under the ISBN 978-1847196705, by Packt Publishing, which kindly provided to me a copy of the book for review. There is a publisher's Web page for the book, where readers can order print or PDF versions of the book (or both, at a sizable discount); contact Packt Publishing with questions or feedback; read more information about the book, the authors, and the table of contents; and download a free sample chapter (the fourth one, titled "Effects") in PDF format. Readers who want to follow along with the authors' discussion, should note that all of the sample code used in the book can be downloaded from its support page. There is also a link for reading the reported errata, of which there are eleven, as of this writing. (The erratum for page 40 is incorrectly listed twice.)
The book begins with a foreword by John Resig, the creator of jQuery. What follows is over 400 pages of information, organized into eleven chapters and four appendices, covering all of the major topics related to jQuery, after a quick-start chapter: selectors, events, effects, DOM manipulation, AJAX, tables, forms, shufflers and rotators, plug-ins, online resources, development tools, and closures. The book has all the ingredients to serve as a full introduction to jQuery for experienced Web programmers, because it assumes no prior knowledge of jQuery (or any other JavaScript libraries); but it does assume that the reader comprehends the basics of HTML, CSS, and JavaScript — thus not wasting time by teaching these prerequisites skills, as is attempted in some other Web programming books.
The first chapter may be brief, but it is sufficient to present the major features of jQuery, its advantages versus raw JavaScript, and a quick history of its various releases after it was first mentioned by John Resig in August 2005. In addition, the reader is shown where to obtain the library, how to add it to a Web page, and a few of its basic capabilities. In the given example, multiple HTML paragraph elements are styled using just three lines of code; yet the power of jQuery would have been demonstrated even better had the authors also shown the equivalent raw JavaScript needed to perform the same functionality.
The next four chapters present the basics of jQuery upon which everything that follows is built. Readers are introduced, in Chapter 2, to the jQuery syntax for accessing individual elements and groups of elements on a Web page, using the $() factory function, CSS selectors, and jQuery's own custom selectors. As with all of the chapters that follow, several examples are used to illustrate the core ideas. The ability to intercept and react to events on a Web page — such as a user clicking on a particular link — is an essential part of client-side interactivity, and is the topic of the third chapter. But first the groundwork is set by learning how to control when code is executed, how to utilize multiple scripts on a page, and how to use jQuery with other JavaScript libraries. Then a style switcher example is used to demonstrate the "this" keyword, shorthand event methods, and compound events, as well as event capturing, bubbling, objects, targets, propagation, delegation, namespacing, and other topics. Unfortunately, the screenshots are of little help, largely because the black-and-white images fail to show user feedback, such as green backgrounds on hover, and even bolded link text. Chapter 4, which covers jQuery effects, begins by explaining how to programmatically discover and save attribute values, for later use; then it explains how to hide and show HTML elements, fade them in and out, toggle their settings, create simple custom animations, invoke effects sequentially using queuing, and queue effects on different elements using callback functions. The fifth chapter shows how to easily add and remove elements and their attributes from the DOM, and even create a new DOM structure from scratch. Most of the sample code is well explained, except for the fourth line in the insertAfter() snippet on page 96, which is not clear at all. Also, the sample text that consumes the bulk of pages 98 and 99, should be replaced with something much shorter, partly because it would be easier to locate the "span" tags within the text. This chapter, like the previous one, concludes with a "nutshell" summary that is quite helpful — and would be even more so if it listed, next to each jQuery method, the corresponding page number.
Asynchronous JavaScript and XML (AJAX) is a combination of technologies that is seeing more widespread use every year, as developers discover the advantages of dynamic Web page interactivity without the reloading of the page each time, which of course slows down the process for the user. The sixth chapter shows how to utilize AJAX, from a jQuery perspective, with explanations and examples of the four major approaches that involve static data files, including a handy summary of when each approach would be most appropriate. Also explored are the dynamic AJAX strategies, including GET and POST requests. The authors should have mentioned that, in order to make functional the "E" and "F" dictionary entries in the example, the reader will need to load the index.html file using a Web server, and not as a static HTML file, so the calls to "e.php" and "f.php" will work. By the way, anyone confused by the reference to jQuery Reference Guide, on page 146, should be aware that it is the title of a book written by the same authors as this one.
With the seventh chapter, the authors transition from what they consider to be the tutorial portion of the book, and begin to demonstrate how the reader can utilize the earlier basics for improving Web page functionality — in this case, working with tables. The authors make good use of code snippets and screenshots to show how one can do table sorting, row striping, row highlighting, and other capabilities independent of — and in conjunction with — server-side equivalents. The subsequent chapter consists of a similar survey of jQuery goodness, but applied to forms — specifically: styling, client-side validation, auto-completion of search entry fields, and input masking (with an emphasis upon numbers). The sample HTML is a model of quality markup, except for the wrapping of checkbox input elements inside of label elements, which is noncanonical and can make it problematic to properly align all the checkboxes in a form vertically, for all browsers. Chapter 9, titled "Shufflers and Rotators," demonstrates how to create a rotator for RSS newsfeed headlines, and an image carousel featuring image enlargement with transition. Readers interested in testing out the sample code — and possibly even modifying it — should be aware that, for chapters 7 through 9, the sample code within the downloadable archive is not stored in chapter-named directories, but instead combined into an application, in the "bookstore" directory.
The last two chapters of the book are devoted to jQuery plug-ins — using those created by others, and developing one's own. In Chapter 10, to illustrate the high-level ideas, the authors focus on and recommend a number of specific plug-ins built for handling forms, advanced effects, widgets, tables, images, and charts, as well as some theming resources. In the subsequent chapter, the authors show how to develop plug-ins of varying complexity, including those that implement new global functions, implement new jQuery object methods, and extend the jQuery selector engine; the chapter wraps up with advice on how best to distribute newly-created plug-ins.
All of the chapters end with summaries, which, given the detailed and technical nature of the material within each chapter, do not add any value to the book, and could be excised without loss. The four appendices offer some valuable information: numerous online resources for readers seeking reference material; development tools for the most popular Web browsers; details on JavaScript closures; and a quick reference for the jQuery selector expressions and all of the methods. The weakest part of the book, the index, is inadequate — missing important terms, such as "animation," "callback," "iteration" (or "iterator"), and "toggling."
The following errata have yet to be listed on the book's support page: "Let[']s" (page 23), "page [is] loaded" (page 40), "if Normal was" (should read "if Normal were"; page 61), ", though" (should read "though,"; page 80), "user the $() factory function" (page 113), "slices with be" (page 283), and "though[,] there" (page 340). In the errata listed on the support page, the entry for parseFloat refers to page 74, but the error actually occurs once on page 69 and twice on pages 70, 71, and 79. In the six screenshots on pages 253 through 257, the shipping totals are incorrect. Nevertheless, the number of errata per page is far less than what is found in most computer books, especially those from Packt Publishing.
The generous amount of sample code should be quite helpful to the reader, because for most programmers, we learn best by example. However, there are many instances where a line of code is unnecessarily wrapped to a second line, even though there is plenty of room at the end of the first line to accommodate the portion of code forced down; pages 82 and 217 have glaring examples of this. The same premature wrapping is seen in some of the text, such as on pages 210 and 311.
The authors as a whole do an admirable job of explaining the central ideas. The explanations are generally clear, which is absolutely critical for a topic like jQuery that can be overwhelming to anyone unfamiliar with it — and not just as a result of the somewhat cryptic syntax (which admittedly is unavoidable), made worse by chaining and especially by the nesting of anonymous functions. Even a cursory glance through the book should make evident that the authors put a lot of effort into writing it, reflected not just in its substantial length, but also the number of examples they created for the book, and the functionality contained therein.
With its thorough coverage of key jQuery topics — from the basics to plug-in development — Learning jQuery 1.3 is an information-packed resource that can help Web developers learn how to take their JavaScript programming to the next level.
Michael J. Ross is a freelance website developer and writer.
You can purchase Learning jQuery 1.3 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.