Book review: PHP 5 Social Networking
ISBN: 1849512388
ISBN 13: 78-1-849512-38-1
Publisher:Packt Publishing
Author:Michael Peacock

PHP 5 Social Networking cover

Short story: If you are fresh to social networks, this book will get you up and moving. It explains how to build a fully featured social network, based on a custom underlying framework. At the end of the book you will have a functional site, and know the what’s what of social networks. It’s very easy to follow the author, and the code is very readable. New concepts and features are introduced in a way that makes it easy for the reader to keep up.


PS: Packt currently has a 40% off special offer on this book, so I recommend you pick it up via their website!


Slightly longer story: I must admit that I’m having problems seeing the value of rolling your own MVC framework when building applications like this. The main arguments made in favor of going custom is ease of maintenance, licensing and code efficiency. I really don’t buy these, as there are several good frameworks available under the BSD license, which are proven time upon time (Yii, Zend, Code Igniter, Symfony). Not only is the code maintained by teams of highly skilled developers, but also reviewed for security holes and exploits by the less good-mannered of our beloved internet. A *very* important aspect of social networking sites is security, and I feel that the book should spend more time on that subject (maybe including info on cross site scripting and related).
However, the one argument I really do see the value in is the process of learning. Writing a PHP framework is a very valuable exercise, and if you still have that on your TODO-list, this book should serve as a good guide on the way. The framework produced will allow you to keep extending and improving features after you are done with the material covered in the book.

Book review: Expert PHP 5 Tools
ISBN: 1847198384
ISBN 13: 978-1-847198-38-9
Publisher:Packt Publishing
Author:Dirk Merkel

Book cover: Expert PHP 5 Tools

Book cover: Expert PHP 5 Tools

Short version: If you are working with PHP you’ll want to read this book. Covering topics like continuous integration, documentation and unit testing thoroughly it gives an insight of great value to any PHP developer.

Slightly longer version: This book is aimed at developers already working with PHP on a daily basis, or developers which are picking up PHP. It’s main focus is the environment of the PHP developer. Areas like unit testing, continuous integration, application deployment, proper documentation and version control might already be very familiar if you have been working with PHP for a while, but this book covers each of these important areas in detail and with prime examples on do and dont’s. Even if you feel like you are doing quite well I’m sure this book will give you a few “aha!” moments. If you are coming from a hobby-background these areas might not be your strongest suit, and this book will help you get a firm grasp on what a professional PHP setup is all about. The chapter on continous integration is based around phpUnderControl, which is a nice piece of software for this purpouse. However, I would have liked to see other alternatives like for example Hudson. Luckily, moving over to a different CI app is fairly easy after having set up a phpUC installation with the phing/ant configuration.

The book is available both as paperback and eBook from Packt. I’ve been reading the eBook, which worked quite well for me. PS: Convering the PDF to ePub will destroy some of the formatting.

Check out the sample chapter Documentation with phpDocumentor

I have been reviewing some books from  Packt Publishing lately, and I’m now expecting a copy of PHP 5 E-commerce Development in a few days.  I have been looking forward to for a while, as I will be working on a similar project in the near future. Here is the lowdown:

Php 5 eCommerce Development Book Cover

Php 5 eCommerce Development Book Cover

This book will show you how to create your own PHP framework that can be extended and used with ease, particularly for e-commerce sites. Using this framework you will be able to display and manage products, customize products, create wish-lists, make recommendations to customers based on previous purchases, send email notifications when certain products are in stock, rate the products online, and much more.

You can check out the sample chapter Enhancing the User Experience now.

Book review: Papervision 3D Essentials (follow link to buy)
ISBN 1847195725
ISBN 13 978-1-847195-72-2
Publisher: Packt Publishing
Author: Paul Tondeur and Jeff Winder.
This review here is long overdue, but since work got a bit hectic, and I spent some time moving it got pushed back.

Papervision3D Essentials Cover

Papervision3D Essentials Cover

Short version: If you want to get started with Papervision 3D, get this book. It’s a well written, great introduction for people new to Papervision3D, as well as a good reference for more experienced developers. It covers everything from basics to filters, effects and performance topics.

Longer version: Before I started reading this book I had never used Pv3D except looking at some neat demos. I had some experience with OpenGL from way-back, so the basic 3d concepts were not new to me.  As I got started I found that most of what I knew from general 3d graphics development was covered pretty well in the first few chapters. From the basic building blocks, to coordinate systems and primitives. The book starts out with a chapter dedicated to setting up authoring tools for compiling the code created during the book. Both Flash CS3/CS4 and Flex/Flash Builder is covered. After that it deals briefly with some core AS3 concepts before moving on to fundamental 3D subjects. Everything is explained really well, and as the book progresses trough the rest of the chapters it details subjects as drawing primitives, adding materials, setting up cameras and loading external models, then going on with particle systems, external models, filters and effects. A chapter is also dedicated to performance optimization. The book offers a number of good examples, also available on-line.

The authors are clearly very comfortable with the subjects they are covering, and discussing pretty much every topic in a language that makes it easy to follow, also for less experienced developers. In my opinion this is a very well written book that I would not hesitate to recommend to beginning developers as well as experienced.

Book review: Flex 3 with Java (follow link to buy)
ISBN: 1847195342
ISBN: 13 978-1-847195-34-0
Publisher: Packt Publishing
Author: Satish Kore

Flex 3 with Java Cover

Flex 3 with Java Cover

Short version: If you are a Java / PHP developer seeking to get started with Flex, building on your skills as a server-side developer, this book will do you good. If you are new to software development, or just started out I would recommend you check out Essential ActionScript 3.0 by Colin Mook, then come back to this book when you have some experience doing applications with AS3.

Slightly longer version: Some time ago I reviewed Mastering phpMyAdmin 3.1 from Packt Publishing, and since they had some interesting books on Flash / Flex I volunteered to review a few more.
First out is Flex 3 with Java. It’s a 300 page book, dealing with Flex, Java and how you can build solutions using BlazeDS as a backend.
I first checked out Flex back when the Flex 3 beta came out. At that time I was doing PHP with the Prado Framework, and instantly felt like home within the Flex IDE. However, I never took the time to really get into Flex, and my knowledge of ActionScript was pretty limited at the time.
I’ve now been working with AS3 for six months, and I’ve got a pretty solid grip on it. Most of the work I’m doing is pure AS3 (no Flash IDE, no Flex SDK), but I’ve got some very interesting side-projects built on Flex in the works as well.

The book assumes you have no experience with Flex / Actionscript from earlier. Now, it is clearly written for a more tech-savvy audience. You do not need to be a experienced developer to follow the subjects covered, but it will most certainly help to have done some software development before picking it up. The author gets a bit ahead of himself on some topics in the book, but it’s not a big problem. However, I would have liked to see a “who is this book for” section at the beginning, stating that this books is well suited for developers wanting to pick up Flex.
As expected it spends the first few chapters dealing with installation on the Flex SDK / tools as well as a brief but good coverage of AS3 and the basics of MXML.

Going into this book I was expecting the majority of the contents to cover the actual interop between Java and Flex. The book clearly deals with much more than that. Given that I’ve been trough a number of Flex and AS3 books the last months I think I would have preferred a book that was focusing more of it’s energy on the core subject instead of peripheral topics such as styling, packaging and deployment and i18n support. I totally agree that these subjects are important to master, but I think it would have been better if the book focused more on the actual interops topics as mentioned above. For me the books falls a bit between two chairs, as it does not spend enough time on basics to give the complete beginner a deep enough intro to Flex and AS3, yet not enough on the heavier side for the more experienced developer.

Oh, the book is also available as PDF if you prefer that.

Download Chapter 5 – Working with XML

PS: Check back soon as I will have a review of Papervision3D Essentials ready!

Mastering phpMyAdmin 3.1 Cover

Mastering phpMyAdmin 3.1 Cover

Book review: Mastering phpMyAdmin 3.1
ISBN: 9871847197863
Publisher: Packt Publishing
Author: Marc Delisle

I had pretty much forgotten phpMyAdmin when I got a mail from Swati at Packt Publishing asking me to review this book. It’s been a very long time since I last used phpMyAdmin. When I first started out with web development (under Windows) and PHP I was hosted on a shared web host. They had phpMyAdmin installed as their main database management tool. With little to no knowledge on databases I was very happy to be able to do my basic list of operations to get stuff working. Needless to say I was a lightweight user.

Fast forward to today. I’ve moved on to Linux and the way of the command-line as many others, using the MySQL Gui Tools (Query Browser, Administrator) in addition. The tools from MySQL sure have their quirks and bugs, but they have mostly suited my needs for the last years. So, how does phpMyAdmin hold up, and is this the right book to get you started?

The book, written by Marc Delisle, clocks in at 326 pages, split into 18 chapters. The topics range from basic installation and database / table management to the “Multi-Table Query Generator” amd “The Relational System”.

The first few pages of the first chapter explains a bit background info on the software, which is pretty much skim-though-if-interested. More interesting, it covers installation for various platforms. The coverage on the installation parts can be a bit short for new users, but should be sufficient in most cases.

I especially liked chapters 2 and 3. Chapter 2 deals with authentication, which is pretty well covered, and the features are surprisingly extensive. Previously I was a bit reluctant to use phpMyAdmin in a production environment due to the lack of proper authentication, but these added features grants it a new evaluation. In chapter 3 the author spends time explaining the GUI itself and how it can be customized. Some parts of this section will definitely be interesting for people doing web hosting as it allows some branding of the software itself as well as laying down some ‘ground rules’ on the feature set to expose. In addition there are tips on user-centric adjustments for optimizing the work flow for the developer using the software. When using it on a regular basis this information is very nice to have.

Chapters 4 and 5 and 6 deals with database, table and data management. These chapters will probably be skim-trough material for most experienced developers, as the GUI is quite self-explanatory when it comes to these kind of actions. However, it’s worth mentioning that the author points out lots of configuration keys for controlling both the GUI, behavior and again features offered. Nothing is crucial for the lightweight user, but if phpMyAdmin is your main tool for the job you’d want to read these chapters in detail as well.

The coverage of exporting schemas and data is quite well done. Again I was surprised with the list of formats supported by phpMyAdmin. The author takes care to describe the various formats, as well as server-side requirements and how-to’s where applicable.

There is a chapter dedicated to searching, which I do not think needs a whole chapter on it’s own since it’s also very intuitive to use the GUI here. However, the chapter is quite short. The same goes for table and database operations which are also covered. Again I find the GUI clear enough for most of these tasks to be straight forward.

Chapter 11 deals with ‘The Relational System’, which I’ve never heard about. Turns out it’s pretty neat! The author does a good job of covering the tool and it’s features. It takes a bit of extra configuration to get it running (create the phpMyAdmin database). This is basically a tool that lets you work visually with your database, seeing relations between tables etc. I’ve mainly used MySQL Workbench when I’ve had to generate a model based on a database. This is a viable replacement. The chapter dealing with system documentation can come in handy if you like to document your schema.

There is also a chapter dedicated to MySql 5.0 and 5.1 features which may come in handy if you are up to date on that front.

Conclusion
I’ve learned that phpMyAdmin has evolved quite a bit, especially in terms of authentication features and installation scripts. I was quite happy to set up the config by hand, but I think the guided setup script is a quite nice feature to new developers. My impression of phpMyAdmin has definitely changed. I used to view it as a “hobby-developers-tool” for database access, but I’ve come to realize that it offers a wast selection of features that might reduce both time and complexity for database management. For shared web-hosting and development environments it’s a really nice tool to have.

The book does a very good job at documenting phpMyAdmin. Some parts of the application are really too basic to describe in detail in a book, however the author has tackled this nicely by adding references to configuration tweaks and settings which makes these chapters interesting to the more advanced users.If phpMyAdmin is your weapon of choice when it comes to database management you’d definitely want to read this book. If you want to take it for a spin first, check out this sample chapter.