<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ken Guest's online diary &#187; review</title>
	<atom:link href="http://blogs.linux.ie/kenguest/category/review/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.linux.ie/kenguest</link>
	<description>php, linux, pear, mysql etc etc</description>
	<lastBuildDate>Fri, 21 Oct 2011 18:13:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Book Review: jQuery 1.3 with PHP</title>
		<link>http://blogs.linux.ie/kenguest/2009/12/13/book-review-jquery-1-3-with-php/</link>
		<comments>http://blogs.linux.ie/kenguest/2009/12/13/book-review-jquery-1-3-with-php/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 23:46:53 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=292</guid>
		<description><![CDATA[[caption id="attachment_298" align="alignleft" width="100" caption="jQuery 1.3 with PHP"]<a href="http://www.packtpub.com/jquery-1-3-with-php/book"><img src="http://blogs.linux.ie/kenguest/files/2009/12/verens_book.png" alt="jQuery 1.3 with PHP" title="jQuery 1.3 with PHP" width="100" height="123" class="size-full wp-image-298" /></a>[/caption] Before I start this review proper, I need to disclose one nugget of information first: The author, Kae Verens, and I are both currently serving as members of the Irish PHP Users Group Committee and have known each other for quite a few years. If you believe I can remain impartial and objective (as I hope you do - because I am), read on:

This is the first book sent to me from Packt where I wasn't left dizzy from trying to understand just what it is the author was trying to get across. It looks like their proof-reader was awake for this one - totally awesome.

jQuery, as the vast majority of us already know, is a JavaScript library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. In other words it does all the heavy lifting and takes care of cross-browser compatibility issues so you don't have to and thus allows you to focus on the work that you need to do without all those distractions.

"jQuery 1.3 with PHP" is aimed "for PHP application developers who want to improve their user interfaces through jQuery's capabilities and responsiveness". Over the course of ten chapters Verens starts the off with an introduction, then a series of 'Quick Tricks' that almost immediately help you add some measure of "Web 2.0" functionality to what I'd term a "web 0.2 application" rather sharply.
The book ends with a chapter on Optimization - some of which you are bound to already know and some which are complete gems.

In the middle are chapters with mini-projects on tabs and accordians, forms and form validation, file management, calendars (and how to make your own google-calendar-like application), image manipulation, drag and drop and data tables. 
In each case, projects are analysed and the required steps for each are outlined in the simplest terms - no extraneous buzzwords are used or are the projects over-analysed for the sake of pedantry.

I was a little surprised in some places where, for example, the json encoded output was not created via json_encode; but then thought not everyone is going to have PHP 5.2 or greater installed. Thumb forward a few pages and this is mentioned. So all's o k.

It was good to see Kae suggesting use of the PEAR Validate package (or similar) in the Forms and Forms Validation chapter (chapter 4). I had to wonder if there was a PEAR package for creating and shunting down jQuery validation rules to the client - and found that there isn't. That's something to consider for later on, I guess.

The rest of the book is similarly both easy to read and easy to understand - my first port of call for learning how to do something that I'd almost term exotic with jQuery and with PHP in the background is usually Google but that is going to change (actually it already has).

Honestly, I wouldn't be surprised if this books working title was "JQuery and PHP: The HowTo" -  it is that good.
Now, this book is not for learning jQuery - that is not within its remit, but I would heartily recomend "jQuery 1.3 with PHP" by Kae Verens to anyone wanting to utilise jQuery from a PHP background.]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_298" class="wp-caption alignleft" style="width: 110px"><a href="http://www.packtpub.com/jquery-1-3-with-php/book"><img src="http://blogs.linux.ie/kenguest/files/2009/12/verens_book.png" alt="jQuery 1.3 with PHP" title="jQuery 1.3 with PHP" width="100" height="123" class="size-full wp-image-298" /></a><p class="wp-caption-text">jQuery 1.3 with PHP</p></div> Before I start this review proper, I need to disclose one nugget of information first: The author, Kae Verens, and I are both currently serving as members of the Irish PHP Users Group Committee and have known each other for quite a few years. If you believe I can remain impartial and objective (as I hope you do &#8211; because I am), read on:</p>
<p>This is the first book sent to me from Packt where I wasn&#8217;t left dizzy from trying to understand just what it is the author was trying to get across. It looks like their proof-reader was awake for this one &#8211; totally awesome.</p>
<p>jQuery, as the vast majority of us already know, is a JavaScript library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. In other words it does all the heavy lifting and takes care of cross-browser compatibility issues so you don&#8217;t have to and thus allows you to focus on the work that you need to do without all those distractions.</p>
<p>&#8220;jQuery 1.3 with PHP&#8221; is aimed &#8220;for PHP application developers who want to improve their user interfaces through jQuery&#8217;s capabilities and responsiveness&#8221;. Over the course of ten chapters Verens starts the off with an introduction, then a series of &#8216;Quick Tricks&#8217; that almost immediately help you add some measure of &#8220;Web 2.0&#8243; functionality to what I&#8217;d term a &#8220;web 0.2 application&#8221; rather sharply.<br />
The book ends with a chapter on Optimization &#8211; some of which you are bound to already know and some which are complete gems.</p>
<p>In the middle are chapters with mini-projects on tabs and accordians, forms and form validation, file management, calendars (and how to make your own google-calendar-like application), image manipulation, drag and drop and data tables.<br />
In each case, projects are analysed and the required steps for each are outlined in the simplest terms &#8211; no extraneous buzzwords are used or are the projects over-analysed for the sake of pedantry.</p>
<p>I was a little surprised in some places where, for example, the json encoded output was not created via json_encode; but then thought not everyone is going to have PHP 5.2 or greater installed. Thumb forward a few pages and this is mentioned. So all&#8217;s o k.</p>
<p>It was good to see Kae suggesting use of the PEAR Validate package (or similar) in the Forms and Forms Validation chapter (chapter 4). I had to wonder if there was a PEAR package for creating and shunting down jQuery validation rules to the client &#8211; and found that there isn&#8217;t. That&#8217;s something to consider for later on, I guess.</p>
<p>The rest of the book is similarly both easy to read and easy to understand &#8211; my first port of call for learning how to do something that I&#8217;d almost term exotic with jQuery and with PHP in the background is usually Google but that is going to change (actually it already has).</p>
<p>Honestly, I wouldn&#8217;t be surprised if this books working title was &#8220;JQuery and PHP: The HowTo&#8221; &#8211;  it is that good.<br />
Now, this book is not for learning jQuery &#8211; that is not within its remit, but I would heartily recomend &#8220;jQuery 1.3 with PHP&#8221; by Kae Verens to anyone wanting to utilise jQuery from a PHP background.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2009/12/13/book-review-jquery-1-3-with-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PHP Team Development by Samisa Abeysinghe</title>
		<link>http://blogs.linux.ie/kenguest/2009/11/15/php-team-development-by-samisa-abeysinghe/</link>
		<comments>http://blogs.linux.ie/kenguest/2009/11/15/php-team-development-by-samisa-abeysinghe/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 09:33:16 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=282</guid>
		<description><![CDATA[<strong>PHP Team Development by Samisa Abeysinghe</strong>

A few weeks ago I received a copy of <a href="http://www.packtpub.com/php-team-development/book">"PHP Team Development" from Packt</a>.
Split into seven chapters, all equally sprinkled with phrases that are disjointly written and that don't get a point across, and some that make you think the book was written using some speech-to-text software ("Vendor locking" anybody?) , this book which "is for PHP developers who work in teams on complex projects" has given me an aversion to seeing three little words printed alongside each other ("the PHP code").
If you have read this book you too will develop this aversion. I think <a href="http://www.lornajane.net/posts/2009/Book-Review-PHP-Team-Development">Lorna Jane Mitchell</a> and <a href="http://www.brandonsavage.net/book-review-php-team-development/">Brandon Savage</a> who both bravely reviewed this book before me might be inclined to agree. 

Published only in September of this year, I found it surprising that its section on coding standards and best practices does not suggest the use of phpCodeSniffer (for checking the adherence to coding standards, and which, incidentally, has been available in one form or the next for the last three years). Nor does Samisa suggest the use of phpUnit or SimpleTest for unit testing (Actually, nothing is mentioned for unit testing - the concept isn't even described, nor is Test Driven Development). These tools have been around for a very long time and I was honestly startled by their ommission.

In a way that's fine - these are only tools and the book is about team development - not about listing and reviewing each and every tool that could be used to help team members make more efficient use of their time.
But I'd rather use these tools during peer review to help highlight what a team member may be doing wrong in an efficient use of my time, than have to analyse the code myself. 

So, moving on, there's a section explaining that frameworks should also be assessed on the basis of the various open source licenses they are distributed under but the author doesn't really explain why this is important - or discuss what the prevalent FLOSS licences are (MIT, BSD, GPL etc), or what issues they each attempt to address and what they are best suited for.

The NIH (Not Invented Here) Syndrome is mentioned and to be fair the author does give a long list of frameworks to be considered; probably the one detailed list in the book, to be honest. 

PEAR had been mentioned in passing elsewhere in the book so I was expecting it to be listed in the frameworks section too, as I was expecting ezComponents to be referenced somewhere as well - but then, these are a component framework/libraries so perhaps he thought it did not belong in such a list. 

To be honest, I think that is part of the problem. The book focuses on what the author thinks and his thoughts on the subject are written in such a manner, that once you put in the immense effort in trying to understand what he is attempting to communicate, that you are left with the impression that
there are no alternatives; that X &#38; Y &#38; Z are the true and tested ways of doing things in PHP and there are no two ways about it.

This is a complete shame. 

Some other observances about this book;
<ul>
	<li>Continuous Integration is mentioned; but CruiseControl and PHP-Under-Control are not. 
</li>
	<li>Source Code Control is mentioned, and here Subversion and GIT are covered. CVS is mentioned elsewhere, under a section, and chapter, far-far-away. Mercurial, bazaar and others don't even get a look-in. 
</li>

	<li>There is no mention of how approaches to Team Development might vary depending on whether some team members might be working remotely, Pair Programming is barely mentioned let alone suggested as one way of ensuring that each team member is learning from the other and reviewing the code that his partner has written.
</li>

	<li>Under issue- or bug-tracking, jira and bugzilla are mentioned as two popular bug tracking tools, and although Abeysinghe states "there are numerous tools that are available, both opensource and commercial for bug tracking", no others are listed. Fogbugz, Mantis, RT, Trac, and plenty others get left by the wayside.
Actually, I'm wrong. Sorry. Trac is mentioned - at the other end of the book; though not in the glossary or index.
</li>
</ul>

I honestly considered giving up on reading this book and not writing this review. The book truly is that bad. The thought of someone paying out close to thirty euro for a book that I'd call poorly researched, badly proof-read, woefully incomplete, badly structured at worst  and self-opinionated at best did force me to reconsider.

Nobody should spend close to thirty euro on a book and get so little in return.

So my oneliner opinion of PHP Team Development by Samisa Abeysinghe?
I'd seriously suggest you give it a miss - do something more meaningful with the money and buy bread to bring your team on a duck-feeding-mission.]]></description>
			<content:encoded><![CDATA[<p><strong>PHP Team Development by Samisa Abeysinghe</strong></p>
<p>A few weeks ago I received a copy of <a href="http://www.packtpub.com/php-team-development/book">&#8220;PHP Team Development&#8221; from Packt</a>.<br />
Split into seven chapters, all equally sprinkled with phrases that are disjointly written and that don&#8217;t get a point across, and some that make you think the book was written using some speech-to-text software (&#8220;Vendor locking&#8221; anybody?) , this book which &#8220;is for PHP developers who work in teams on complex projects&#8221; has given me an aversion to seeing three little words printed alongside each other (&#8220;the PHP code&#8221;).<br />
If you have read this book you too will develop this aversion. I think <a href="http://www.lornajane.net/posts/2009/Book-Review-PHP-Team-Development">Lorna Jane Mitchell</a> and <a href="http://www.brandonsavage.net/book-review-php-team-development/">Brandon Savage</a> who both bravely reviewed this book before me might be inclined to agree. </p>
<p>Published only in September of this year, I found it surprising that its section on coding standards and best practices does not suggest the use of phpCodeSniffer (for checking the adherence to coding standards, and which, incidentally, has been available in one form or the next for the last three years). Nor does Samisa suggest the use of phpUnit or SimpleTest for unit testing (Actually, nothing is mentioned for unit testing &#8211; the concept isn&#8217;t even described, nor is Test Driven Development). These tools have been around for a very long time and I was honestly startled by their ommission.</p>
<p>In a way that&#8217;s fine &#8211; these are only tools and the book is about team development &#8211; not about listing and reviewing each and every tool that could be used to help team members make more efficient use of their time.<br />
But I&#8217;d rather use these tools during peer review to help highlight what a team member may be doing wrong in an efficient use of my time, than have to analyse the code myself. </p>
<p>So, moving on, there&#8217;s a section explaining that frameworks should also be assessed on the basis of the various open source licenses they are distributed under but the author doesn&#8217;t really explain why this is important &#8211; or discuss what the prevalent FLOSS licences are (MIT, BSD, GPL etc), or what issues they each attempt to address and what they are best suited for.</p>
<p>The NIH (Not Invented Here) Syndrome is mentioned and to be fair the author does give a long list of frameworks to be considered; probably the one detailed list in the book, to be honest. </p>
<p>PEAR had been mentioned in passing elsewhere in the book so I was expecting it to be listed in the frameworks section too, as I was expecting ezComponents to be referenced somewhere as well &#8211; but then, these are a component framework/libraries so perhaps he thought it did not belong in such a list. </p>
<p>To be honest, I think that is part of the problem. The book focuses on what the author thinks and his thoughts on the subject are written in such a manner, that once you put in the immense effort in trying to understand what he is attempting to communicate, that you are left with the impression that<br />
there are no alternatives; that X &amp; Y &amp; Z are the true and tested ways of doing things in PHP and there are no two ways about it.</p>
<p>This is a complete shame. </p>
<p>Some other observances about this book;</p>
<ul>
<li>Continuous Integration is mentioned; but CruiseControl and PHP-Under-Control are not.
</li>
<li>Source Code Control is mentioned, and here Subversion and GIT are covered. CVS is mentioned elsewhere, under a section, and chapter, far-far-away. Mercurial, bazaar and others don&#8217;t even get a look-in.
</li>
<li>There is no mention of how approaches to Team Development might vary depending on whether some team members might be working remotely, Pair Programming is barely mentioned let alone suggested as one way of ensuring that each team member is learning from the other and reviewing the code that his partner has written.
</li>
<li>Under issue- or bug-tracking, jira and bugzilla are mentioned as two popular bug tracking tools, and although Abeysinghe states &#8220;there are numerous tools that are available, both opensource and commercial for bug tracking&#8221;, no others are listed. Fogbugz, Mantis, RT, Trac, and plenty others get left by the wayside.<br />
Actually, I&#8217;m wrong. Sorry. Trac is mentioned &#8211; at the other end of the book; though not in the glossary or index.
</li>
</ul>
<p>I honestly considered giving up on reading this book and not writing this review. The book truly is that bad. The thought of someone paying out close to thirty euro for a book that I&#8217;d call poorly researched, badly proof-read, woefully incomplete, badly structured at worst  and self-opinionated at best did force me to reconsider.</p>
<p>Nobody should spend close to thirty euro on a book and get so little in return.</p>
<p>So my oneliner opinion of PHP Team Development by Samisa Abeysinghe?<br />
I&#8217;d seriously suggest you give it a miss &#8211; do something more meaningful with the money and buy bread to bring your team on a duck-feeding-mission.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2009/11/15/php-team-development-by-samisa-abeysinghe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Beginning Joomla! (Second Edition); A review</title>
		<link>http://blogs.linux.ie/kenguest/2009/10/27/beginning-joomla-second-edition-a-review/</link>
		<comments>http://blogs.linux.ie/kenguest/2009/10/27/beginning-joomla-second-edition-a-review/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 13:55:53 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=277</guid>
		<description><![CDATA[A while ago I was sent a complimentary review copy of "Beginning Joomla! (Second Edition)" by Dan Rahmel and published by Apress.

In a clear non-patronising and concise manner the author explains to the reader just what Joomla is (a content management system), how to install, add content, administer, design templates and write extensions for it. He touches on SEO and covers the aspects of both deploying Joomla on Windows, Linux and Mac.
Done in a gentle manner with graceful explanations along the way, he explains everything in a clear manner: how to troubleshoot not being able to access the web or database servers and even mentioning the password system differs from version 4 to version 5 of mysql, for example.

There are a few points in the book that startled me however; Rahmel informs the reader in chapter three that if XAMPP is used as a means of installing the base requirements then certain security concerns need to be addressed. In chapter two he states PHP 4.3.10 as the lowest version required - I'm surprised that a later version of PHP 4 wasn't recommended, even though 4.3.10 may be the lowest required version - version 4.4.10 for example which is the very last version of PHP to ever be released. I hope this is just a typo that hadn't been caught in time. 
If it was not, then I'd have to express a certain level of professional disappointment; the security enhancements and bug fixes in PHP 4.4.10 should definitely have been enumerated. While it is true to say that most installs of Joomla are into shared hosting environments where such changes can not be implemented, I also would have expected the author to have mentioned that Apache, and by implication Joomla, performs better when configuration directives are specified in the httpd.conf files rather than .htaccess files which must first be scanned for at a directory-by-directory level.

I had been looking forward to reading the chapter on creating extensions (chapter thirteen) but was rather disappointed. I had expected Rahmel to go into much more depth, especially as the blurb on the back of the book mentions how he has coded other solutions from scratch in PHP and ASP, so surely there would be hard-learned tips and some advice that he could share? Instead he hardly mentions the Joomla API nor does he provide a reference or link to where further information on the subject could be found. 

I would like to say that the second edition of "Beginning Joomla!" is well rounded but the lack of detail on creating extensions and the differing levels of detail regarding security and performance tips makes me shy from saying that.

Also, I do wish that there was a list of recommended reading and a glossary in the book too - it is invaluable to have a "cheat sheet" of what different terms mean and also to know what other bodies of work are available to help you learn more.

To summarise - "Beginning Jooma! Secong Edition" is a well-written book aimed at (surprise) people new to using Joomla - it just could be better and the section on developing plugins or components should simply be dropped as it is not adequate and probably could have an entire book devoted to the subject.]]></description>
			<content:encoded><![CDATA[<p>A while ago I was sent a complimentary review copy of &#8220;<a href="http://www.apress.com/book/view/1430216425">Beginning Joomla! (Second Edition)</a>&#8221; by Dan Rahmel and published by Apress.</p>
<p>In a clear non-patronising and concise manner the author explains to the reader just what Joomla is (a content management system), how to install, add content, administer, design templates and write extensions for it. He touches on SEO and covers the aspects of both deploying Joomla on Windows, Linux and Mac.<br />
Done in a gentle manner with graceful explanations along the way, he explains everything in a clear manner: how to troubleshoot not being able to access the web or database servers and even mentioning the password system differs from version 4 to version 5 of mysql, for example.</p>
<p>There are a few points in the book that startled me however; Rahmel informs the reader in chapter three that if XAMPP is used as a means of installing the base requirements then certain security concerns need to be addressed. In chapter two he states PHP 4.3.10 as the lowest version required &#8211; I&#8217;m surprised that a later version of PHP 4 wasn&#8217;t recommended, even though 4.3.10 may be the lowest required version &#8211; version <del datetime="2009-11-08T10:06:23+00:00">4.4.10</del> 4.4.9 for example which is the very last version of PHP to ever be released. I hope this is just a typo that hadn&#8217;t been caught in time.<br />
If it was not, then I&#8217;d have to express a certain level of professional disappointment; the security enhancements and bug fixes in PHP 4.4.10 should definitely have been enumerated. While it is true to say that most installs of Joomla are into shared hosting environments where such changes can not be implemented, I also would have expected the author to have mentioned that Apache, and by implication Joomla, performs better when configuration directives are specified in the httpd.conf files rather than .htaccess files which must first be scanned for at a directory-by-directory level.</p>
<p>I had been looking forward to reading the chapter on creating extensions (chapter thirteen) but was rather disappointed. I had expected Rahmel to go into much more depth, especially as the blurb on the back of the book mentions how he has coded other solutions from scratch in PHP and ASP, so surely there would be hard-learned tips and some advice that he could share? Instead he hardly mentions the Joomla API nor does he provide a reference or link to where further information on the subject could be found. </p>
<p>I would like to say that the second edition of &#8220;Beginning Joomla!&#8221; is well rounded but the lack of detail on creating extensions and the differing levels of detail regarding security and performance tips makes me shy from saying that.</p>
<p>Also, I do wish that there was a list of recommended reading and a glossary in the book too &#8211; it is invaluable to have a &#8220;cheat sheet&#8221; of what different terms mean and also to know what other bodies of work are available to help you learn more.</p>
<p>To summarise &#8211; &#8220;Beginning Jooma! Secong Edition&#8221; is a well-written book aimed at (surprise) people new to using Joomla &#8211; it just could be better and the section on developing plugins or components should simply be dropped as it is not adequate and probably could have an entire book devoted to the subject.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2009/10/27/beginning-joomla-second-edition-a-review/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Book Review: Learning jQuery 1.3</title>
		<link>http://blogs.linux.ie/kenguest/2009/06/16/learning_jquery13/</link>
		<comments>http://blogs.linux.ie/kenguest/2009/06/16/learning_jquery13/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 12:16:04 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=234</guid>
		<description><![CDATA[<p>
A while ago I was sent a review copy of "<a href="http://www.packtpub.com/learning-jquery-1.3/book">Learning JQuery 1.3</a>" by Jonathan Chaffer and Karl Swedberg, as published by <a href="http://www.packtpub.com/">Packt</a>. I've now had a chance to read it objectively and compare it against <a href="http://blogs.linux.ie/kenguest/2008/07/05/book-review-learning-jquery/">the original "Learning JQuery"</a> which Packt also sent me to review about a year ago. That earlier edition covered a much less mature version (version 1.1.3.1 to be precise) of this popular Javascript framework.
</p><p>
Aimed at web developers and designers with a basic understanding of HTML and CSS (and some level of comfort with Javascript), the later book is thicker than the original - it weights in at some 440 pages compared to the 360 pages that were required for the first. A new chapter, "Developing Plugins" covers how to write plugins for the framework and how to "share it with the world" - naming conventions, documentation style and other advice are included. There is also a new "Quick Reference" appendix which just begs to be reproduced in "Cheat-sheet" format for pinning up on your wall. Chapters already present in the earlier book are more detailed and read better.
</p><p>
The subject matter is expertly covered and unless you were aware of the changes in jQuery 1.3, compared to the older version that the original was focused it would be difficult to tell which portions of the book are new - the revision and updates to the original are seamless.
</p><p>
Quite rightly, Swedberg and Chaffer do not explain all differences between jQuery 1.3 and its predecessors - they rightly assume that if you're reading "Learning JQuery 1.3" then you don't need to be informed of exactly how jQuery 1.3 differs from the version they previous covered. The book flows better because of this and remains very easy to understand because of this approach.
</p><p>
There is no hint of the selector engine in 1.3 being any different than what was already covered. The language used for explaining the different concepts to the reader is more precise, especially so in the Events chapter and this makes understanding the concepts being covered much more easy - for this reason alone buying the revised edition is well worth the money.
</p><p>
The book doesn't focus on new additions that were freshly added to jQuery 1.3 but also ones that had been added to jQuery since the first edition was published; JSONP, which was introduced in jQuery 1.2 is covered in the chapter on AJAX, as is the more low-level $.ajax() method; it also mentions which features have been removed from jQuery since the first edition was published - XPath being one such example. The listing of development tools has also been reworked, as has the Online Resources section. These listings mention resources that are current and up-to-date.
</p><p>
I remember mentioning in my review of the first book (trying hard not to use the word 'original' again!) that until a later edition of it was released that you wouldn't be able to find a better book on the subject. I stand by that assertion - the only book that covers jQuery better than the first edition of "Learning jQuery" is the second edition of the same. 
</p>]]></description>
			<content:encoded><![CDATA[<p>
A while ago I was sent a review copy of &#8220;<a href="http://www.packtpub.com/learning-jquery-1.3/book">Learning JQuery 1.3</a>&#8221; by Jonathan Chaffer and Karl Swedberg, as published by <a href="http://www.packtpub.com/">Packt</a>. I&#8217;ve now had a chance to read it objectively and compare it against <a href="http://blogs.linux.ie/kenguest/2008/07/05/book-review-learning-jquery/">the original &#8220;Learning JQuery&#8221;</a> which Packt also sent me to review about a year ago. That earlier edition covered a much less mature version (version 1.1.3.1 to be precise) of this popular Javascript framework.
</p>
<p>
Aimed at web developers and designers with a basic understanding of HTML and CSS (and some level of comfort with Javascript), the later book is thicker than the original &#8211; it weights in at some 440 pages compared to the 360 pages that were required for the first. A new chapter, &#8220;Developing Plugins&#8221; covers how to write plugins for the framework and how to &#8220;share it with the world&#8221; &#8211; naming conventions, documentation style and other advice are included. There is also a new &#8220;Quick Reference&#8221; appendix which just begs to be reproduced in &#8220;Cheat-sheet&#8221; format for pinning up on your wall. Chapters already present in the earlier book are more detailed and read better.
</p>
<p>
The subject matter is expertly covered and unless you were aware of the changes in jQuery 1.3, compared to the older version that the original was focused it would be difficult to tell which portions of the book are new &#8211; the revision and updates to the original are seamless.
</p>
<p>
Quite rightly, Swedberg and Chaffer do not explain all differences between jQuery 1.3 and its predecessors &#8211; they rightly assume that if you&#8217;re reading &#8220;Learning JQuery 1.3&#8243; then you don&#8217;t need to be informed of exactly how jQuery 1.3 differs from the version they previous covered. The book flows better because of this and remains very easy to understand because of this approach.
</p>
<p>
There is no hint of the selector engine in 1.3 being any different than what was already covered. The language used for explaining the different concepts to the reader is more precise, especially so in the Events chapter and this makes understanding the concepts being covered much more easy &#8211; for this reason alone buying the revised edition is well worth the money.
</p>
<p>
The book doesn&#8217;t focus on new additions that were freshly added to jQuery 1.3 but also ones that had been added to jQuery since the first edition was published; JSONP, which was introduced in jQuery 1.2 is covered in the chapter on AJAX, as is the more low-level $.ajax() method; it also mentions which features have been removed from jQuery since the first edition was published &#8211; XPath being one such example. The listing of development tools has also been reworked, as has the Online Resources section. These listings mention resources that are current and up-to-date.
</p>
<p>
I remember mentioning in my review of the first book (trying hard not to use the word &#8216;original&#8217; again!) that until a later edition of it was released that you wouldn&#8217;t be able to find a better book on the subject. I stand by that assertion &#8211; the only book that covers jQuery better than the first edition of &#8220;Learning jQuery&#8221; is the second edition of the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2009/06/16/learning_jquery13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Learning Facebook Application Development</title>
		<link>http://blogs.linux.ie/kenguest/2008/08/29/book-review-learning-facebook-application-development/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/08/29/book-review-learning-facebook-application-development/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 00:33:28 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=199</guid>
		<description><![CDATA[<p>
It's been a while since I posted a review about a packt published book.<br />
I was sent a copy of "<a href="http://www.packtpub.com/learning-facebook-application-development/book">Learning Facebook Application Development</a>" by Hasin Hayder and Dr Mark Alexander Bain a while ago. The by-line description of the book is "A step-by-step tutorial for creating custom facebook applications using the Facebook platform and PHP". It is precisely that.
</p><p>
Here's my review of it:
</p><p>
The book was published prior to Facebook's facelift but this doesn't really impact on the usefulness of the book. 
An overview of FBML, FQL, FBJS (a restricted subset of JavaScript and enforced for security reasons) are given along with information on how to use the test consoles, publish to news feeds, some multimedia aspects of what can be done in Facebook applications and more.
</p><p>
Happily the book focuses on using PHP5 for developing Facebook Applications - while there are classes available for developing FB apps with PHP4 there really is no point in doing so; especially now that official support for PHP4 was withdrawn last month.<br />
MySQL appears to be the database system of choice for the examples and Linux/Unix oriented solutions for scheduling tasks to  occur regularly are given - some Windows screenshots feature in chapter one with regard to setting up the client libraries for local development but other than that everything else is unix-centric.
</p><p>
I found "Facebook Application Development" more useful than facebook's own documentation with regard to the main aspects of developing a Facebook application - it is written well and easier to follow than the online documentation and while it is true to say that the Facebook Platform is evolving I am of the opinion that Heyder and Bain's work will still be applicable for a long time.
</p>]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s been a while since I posted a review about a packt published book.<br />
I was sent a copy of &#8220;<a href="http://www.packtpub.com/learning-facebook-application-development/book">Learning Facebook Application Development</a>&#8221; by Hasin Hayder and Dr Mark Alexander Bain a while ago. The by-line description of the book is &#8220;A step-by-step tutorial for creating custom facebook applications using the Facebook platform and PHP&#8221;. It is precisely that.
</p>
<p>
Here&#8217;s my review of it:
</p>
<p>
The book was published prior to Facebook&#8217;s facelift but this doesn&#8217;t really impact on the usefulness of the book.<br />
An overview of FBML, FQL, FBJS (a restricted subset of JavaScript and enforced for security reasons) are given along with information on how to use the test consoles, publish to news feeds, some multimedia aspects of what can be done in Facebook applications and more.
</p>
<p>
Happily the book focuses on using PHP5 for developing Facebook Applications &#8211; while there are classes available for developing FB apps with PHP4 there really is no point in doing so; especially now that official support for PHP4 was withdrawn last month.<br />
MySQL appears to be the database system of choice for the examples and Linux/Unix oriented solutions for scheduling tasks to  occur regularly are given &#8211; some Windows screenshots feature in chapter one with regard to setting up the client libraries for local development but other than that everything else is unix-centric.
</p>
<p>
I found &#8220;Facebook Application Development&#8221; more useful than facebook&#8217;s own documentation with regard to the main aspects of developing a Facebook application &#8211; it is written well and easier to follow than the online documentation and while it is true to say that the Facebook Platform is evolving I am of the opinion that Heyder and Bain&#8217;s work will still be applicable for a long time.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/08/29/book-review-learning-facebook-application-development/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Book review: PHP Objects, Patterns and Practice (second edition)</title>
		<link>http://blogs.linux.ie/kenguest/2008/06/03/book-review-php-objects-patterns-and-practice-second-edition/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/06/03/book-review-php-objects-patterns-and-practice-second-edition/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 16:31:51 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[phing]]></category>
		<category><![CDATA[phpunit]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=173</guid>
		<description><![CDATA[<p>
Apress sent me a copy of "<a href="http://apress.com/book/view/1590599098">PHP Objects, Patterns and Practice (second edition)</a>" by Matt Zandstra to review.
</p><p>
As hinted in the title, this near 500 page tome is split into three parts: objects, patterns and [best] practice.
The section on objects covers the basics and then the advanced features of object oriented facilities in PHP and tools such as namespaces, autoloading and the reflection classes along with design basics, class scope, encapsulation, polymorphism and some UML. <br />
The patterns section is obviously inspired by "<a href="http://en.wikipedia.org/wiki/Design_Patterns">The Gang of Four</a>" (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides) and covers what design patterns are, enterprise patterns, database patterns and also the basic patterns such as the factory, fascade, decorator and composite patterns along with a few more. This section is far from comprehensive, but is a good start.  (If Patterns do interest you, and they should, have a look at <a href="http://www.patternsforphp.com/wiki/Main_Page">patternsforphp.com</a>)<br />
The last section, focuses on PEAR (including writing your own packages and setting up your own PEAR channel), phpDocumentor, unit testing with phpUnit, version control with CVS (which struck me as a bit odd - I had expected subversion to be covered either instead of or along with CVS) and setting up automated builds with phing.
</p><p>
While being an easy read, this is a well written, serious book and is aimed squarely at enterprise-level developers and software engineers who make their living through the development and architecture of solutions developed in PHP.<br />
Any PHP developer wishing to improve his skills should get a copy.
</p>]]></description>
			<content:encoded><![CDATA[<p>
Apress sent me a copy of &#8220;<a href="http://apress.com/book/view/1590599098">PHP Objects, Patterns and Practice (second edition)</a>&#8221; by Matt Zandstra to review.
</p>
<p>
As hinted in the title, this near 500 page tome is split into three parts: objects, patterns and [best] practice.<br />
The section on objects covers the basics and then the advanced features of object oriented facilities in PHP and tools such as namespaces, autoloading and the reflection classes along with design basics, class scope, encapsulation, polymorphism and some UML. <br />
The patterns section is obviously inspired by &#8220;<a href="http://en.wikipedia.org/wiki/Design_Patterns">The Gang of Four</a>&#8221; (Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides) and covers what design patterns are, enterprise patterns, database patterns and also the basic patterns such as the factory, fascade, decorator and composite patterns along with a few more. This section is far from comprehensive, but is a good start.  (If Patterns do interest you, and they should, have a look at <a href="http://www.patternsforphp.com/wiki/Main_Page">patternsforphp.com</a>)<br />
The last section, focuses on PEAR (including writing your own packages and setting up your own PEAR channel), phpDocumentor, unit testing with phpUnit, version control with CVS (which struck me as a bit odd &#8211; I had expected subversion to be covered either instead of or along with CVS) and setting up automated builds with phing.
</p>
<p>
While being an easy read, this is a well written, serious book and is aimed squarely at enterprise-level developers and software engineers who make their living through the development and architecture of solutions developed in PHP.<br />
Any PHP developer wishing to improve his skills should get a copy.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/06/03/book-review-php-objects-patterns-and-practice-second-edition/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Book review; &#8220;UML 2.0 in Action: A project-based tutorial&#8221;</title>
		<link>http://blogs.linux.ie/kenguest/2008/05/26/book-review-uml-20-in-action-a-project-based-tutorial/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/05/26/book-review-uml-20-in-action-a-project-based-tutorial/#comments</comments>
		<pubDate>Mon, 26 May 2008 17:10:14 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=171</guid>
		<description><![CDATA[A while ago I received, from packt, a copy of <a href="http://www.packtpub.com/uml/book">"UML 2.0 in Action: A project-based tutorial"</a> by Patrick Grassle, Philippe Baumann, Henriette Baumann.  This book certainly  lives up to it's byline of being "a detailed and practical walk-through showing how to apply UML to real world development projects".

<a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> is a standardized visual specification language for object modeling and is short for "Unified Modeling Language" that includes a graphical notation used to create an abstract model of a system, referred to as a UML model. There are many software tools available which can be used for code generation and reverse engineering, such as the new PEAR package <a href="http://pear.php.net/package/PHP_UML">PHP_UML</a> which generates a UML representation of existing PHP source code.

This book assumes no prior knowledge of UML and  this works very well.  It is by no means comprehensive but that it's what the authors set out to write - this book is focused on being a practical tutorial for learning the essentials of modelling business systems,  IT systems and systems integration - no more, no less. It does this admirably and I'll recommend this book as a reference and introduction for developers performing system analysis and design activities.
]]></description>
			<content:encoded><![CDATA[<p>A while ago I received, from packt, a copy of <a href="http://www.packtpub.com/uml/book">&#8220;UML 2.0 in Action: A project-based tutorial&#8221;</a> by Patrick Grassle, Philippe Baumann, Henriette Baumann.  This book certainly  lives up to it&#8217;s byline of being &#8220;a detailed and practical walk-through showing how to apply UML to real world development projects&#8221;.</p>
<p><a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> is a standardized visual specification language for object modeling and is short for &#8220;Unified Modeling Language&#8221; that includes a graphical notation used to create an abstract model of a system, referred to as a UML model. There are many software tools available which can be used for code generation and reverse engineering, such as the new PEAR package <a href="http://pear.php.net/package/PHP_UML">PHP_UML</a> which generates a UML representation of existing PHP source code.</p>
<p>This book assumes no prior knowledge of UML and  this works very well.  It is by no means comprehensive but that it&#8217;s what the authors set out to write &#8211; this book is focused on being a practical tutorial for learning the essentials of modelling business systems,  IT systems and systems integration &#8211; no more, no less. It does this admirably and I&#8217;ll recommend this book as a reference and introduction for developers performing system analysis and design activities.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/05/26/book-review-uml-20-in-action-a-project-based-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book review: &#8220;Mastering phpMyAdmin 2.11 for Effective MySQL Management&#8221; by Marc Delisle</title>
		<link>http://blogs.linux.ie/kenguest/2008/05/12/book-review-mastering-phpmyadmin-211-for-effective-mysql-management-by-marc-delisle/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/05/12/book-review-mastering-phpmyadmin-211-for-effective-mysql-management-by-marc-delisle/#comments</comments>
		<pubDate>Mon, 12 May 2008 23:23:41 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/?p=170</guid>
		<description><![CDATA["<a href="http://www.packtpub.com/phpmyadmin-3rd-edition/book">Mastering phpMyAdmin 2.11 for Effective MySQL Management</a>" by Marc Delisle
<p>
This book on <a href="http://www.phpmyadmin.net/">phpMyAdmin</a> is written by Marc Delisle, one of the core developers of the application which I think just about any software developer utilising MySQL has dabbled with at the least. I can honestly say that anyone that experimented with phpMyAdmin before reading this book will use it much more thoroughly and more productively afterwards.
</p><p>
This is a well written, easily read, book that is fully comprehensive regarding how to use phpMyAdmin for both casually inserting and maintaining data in a mysql database; checking queries before utilising them in your code; data transformations; and actual database and user administration, such as changing the structure of your databases, collations, creating system documentation, assigning privileges and more.
</p><p>
I scarcely believe this book could be much more detailed, especially as it often has more than two screen shots per page - it is no wonder that I now know much more of what phpMyAdmin is capable of!
</p><p>
The troubleshooting chapter at the back seems invaluable and the chapter covering MySQL 5 additions seems a useful refresher for those of us that may need to be reminded of new functionality present only in that more recent version of MySQL,  and after reading this book I fully expect that I shall be using phpmyadmin more and not using either the MySQL Query Browser or Oracle's SQL Developer as much.
</p><p>
The blurb on the back of the book says that it is for every serious phpMyAdmin user who would like to use this outstanding application to its full power - after reading it I am very much inclined to agree and would recommend it to anyone that uses phpMyAdmin on a daily basis.
</p>]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a href="http://www.packtpub.com/phpmyadmin-3rd-edition/book">Mastering phpMyAdmin 2.11 for Effective MySQL Management</a>&#8221; by Marc Delisle</p>
<p>
This book on <a href="http://www.phpmyadmin.net/">phpMyAdmin</a> is written by Marc Delisle, one of the core developers of the application which I think just about any software developer utilising MySQL has dabbled with at the least. I can honestly say that anyone that experimented with phpMyAdmin before reading this book will use it much more thoroughly and more productively afterwards.
</p>
<p>
This is a well written, easily read, book that is fully comprehensive regarding how to use phpMyAdmin for both casually inserting and maintaining data in a mysql database; checking queries before utilising them in your code; data transformations; and actual database and user administration, such as changing the structure of your databases, collations, creating system documentation, assigning privileges and more.
</p>
<p>
I scarcely believe this book could be much more detailed, especially as it often has more than two screen shots per page &#8211; it is no wonder that I now know much more of what phpMyAdmin is capable of!
</p>
<p>
The troubleshooting chapter at the back seems invaluable and the chapter covering MySQL 5 additions seems a useful refresher for those of us that may need to be reminded of new functionality present only in that more recent version of MySQL,  and after reading this book I fully expect that I shall be using phpmyadmin more and not using either the MySQL Query Browser or Oracle&#8217;s SQL Developer as much.
</p>
<p>
The blurb on the back of the book says that it is for every serious phpMyAdmin user who would like to use this outstanding application to its full power &#8211; after reading it I am very much inclined to agree and would recommend it to anyone that uses phpMyAdmin on a daily basis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/05/12/book-review-mastering-phpmyadmin-211-for-effective-mysql-management-by-marc-delisle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Book Review: Object-Oriented Programming with PHP5</title>
		<link>http://blogs.linux.ie/kenguest/2008/05/01/book-review-object-oriented-programming-with-php5/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/05/01/book-review-object-oriented-programming-with-php5/#comments</comments>
		<pubDate>Thu, 01 May 2008 23:56:29 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/2008/05/01/book-review-object-oriented-programming-with-php5/</guid>
		<description><![CDATA[<p>
Ok, packt sent me another book to review. This time it's "<a href="http://www.packtpub.com/oop-php-5/book">Object-Oriented Programming with PHP5</a>" by <a href="http://hasin.wordpress.com/">Hasin Hayder</a>.
</p><p>
If I hadn't read in the Author's Profile at the start of the book that Hasin is from Bangladesh, and that English is in all likelihood not his first/native language, I would have realised that he does not have a fluent grasp of the English language anyway and this detracts from being able to focus on what he is trying to communicate.
</p><p>
Putting the aspects of Hayder's grasp of the English language aside, the book is rather good as an introduction to the various technologies that it covers. If you're already up to speed with OOP then you mightn't want to bother with the first few chapters; but after that the book covers phpunit testing, design patterns (Hayder uses the Patterns chapter to introduce MVC and later devotes an entire chapter to it), SPL and PDO.
</p><p>
I got a stunning feeling of deja vu when reading the main OOP chapter: it seemed very reminiscent of the online php manual and user contributed notes at php.net - a resource which Hayder makes the occasional reference to.
</p><p>
The book's section on phpunit testing is rather good as an introduction to that concept; though it does conclude with ten pages of text from the PHPUnit Pocket Guide by Sebastian Bergmann. I have to question the rationale behind this: PPG is available freely online and I think mentioning the website for that version of the book would have been a better thing to do.
</p><p>
I think I will definitely be picking this book up rather often for reference and that it is worth the money (that I admittedly didn't have to pay).<br />
But what would I do to make the book even better than it already is?<br />
<ol>
<li>I was expecting some coverage of UML for representing classes and interactions between them - not a lot but just enough to be useful.</li>
<li>Avoid mentioning topics that are outside the scope of the book - it makes the content appear weak and less comprehensive than it is. I'd simply have a "recommended reading" section or appendix at the end of the book.</li>
<li>This may seem petty but it's actually quite important, especially as regards the environment -  don't place braces in the example code on seperate lines. It doesn't matter as much when on screen but when printed out that's a lot of wasted paper/trees.</li>
</ol></p>]]></description>
			<content:encoded><![CDATA[<p>
Ok, packt sent me another book to review. This time it&#8217;s &#8220;<a href="http://www.packtpub.com/oop-php-5/book">Object-Oriented Programming with PHP5</a>&#8221; by <a href="http://hasin.wordpress.com/">Hasin Hayder</a>.
</p>
<p>
If I hadn&#8217;t read in the Author&#8217;s Profile at the start of the book that Hasin is from Bangladesh, and that English is in all likelihood not his first/native language, I would have realised that he does not have a fluent grasp of the English language anyway and this detracts from being able to focus on what he is trying to communicate.
</p>
<p>
Putting the aspects of Hayder&#8217;s grasp of the English language aside, the book is rather good as an introduction to the various technologies that it covers. If you&#8217;re already up to speed with OOP then you mightn&#8217;t want to bother with the first few chapters; but after that the book covers phpunit testing, design patterns (Hayder uses the Patterns chapter to introduce MVC and later devotes an entire chapter to it), SPL and PDO.
</p>
<p>
I got a stunning feeling of deja vu when reading the main OOP chapter: it seemed very reminiscent of the online php manual and user contributed notes at php.net &#8211; a resource which Hayder makes the occasional reference to.
</p>
<p>
The book&#8217;s section on phpunit testing is rather good as an introduction to that concept; though it does conclude with ten pages of text from the PHPUnit Pocket Guide by Sebastian Bergmann. I have to question the rationale behind this: PPG is available freely online and I think mentioning the website for that version of the book would have been a better thing to do.
</p>
<p>
I think I will definitely be picking this book up rather often for reference and that it is worth the money (that I admittedly didn&#8217;t have to pay).<br />
But what would I do to make the book even better than it already is?</p>
<ol>
<li>I was expecting some coverage of UML for representing classes and interactions between them &#8211; not a lot but just enough to be useful.</li>
<li>Avoid mentioning topics that are outside the scope of the book &#8211; it makes the content appear weak and less comprehensive than it is. I&#8217;d simply have a &#8220;recommended reading&#8221; section or appendix at the end of the book.</li>
<li>This may seem petty but it&#8217;s actually quite important, especially as regards the environment &#8211;  don&#8217;t place braces in the example code on seperate lines. It doesn&#8217;t matter as much when on screen but when printed out that&#8217;s a lot of wasted paper/trees.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/05/01/book-review-object-oriented-programming-with-php5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: CodeIgniter for Rapid PHP Application Development</title>
		<link>http://blogs.linux.ie/kenguest/2008/04/10/book-review-codeigniter-for-rapid-php-application-development/</link>
		<comments>http://blogs.linux.ie/kenguest/2008/04/10/book-review-codeigniter-for-rapid-php-application-development/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 00:14:51 +0000</pubDate>
		<dc:creator>kenguest</dc:creator>
				<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://blogs.linux.ie/kenguest/2008/04/10/book-review-codeigniter-for-rapid-php-application-development/</guid>
		<description><![CDATA[A while ago <a href="http://www.packtpub.com/">packt</a> sent me another book to review - this time it was "<a href="http://www.packtpub.com/codeigniter-php-application-development-mvc/book">Code Igniter for Rapid PHP Application Development</a>" by David Upton.

Similar in size to the PEAR Installer Manifesto, this book weighs in at 240 pages, is aimed at developers new to CodeIgniter, and is split into 15 chapters:
<ol>
<li>Introduction to CodeIgniter</li>
<li>Two Minute's Work: Setting up a CodeIgniter Site</li>
<li>Navigating your site</li>
<li>Using CI to Simplify Databases</li>
<li>Simplifying HTML Pages and Forms</li>
<li>Simplifying Sessions and Security</li>
<li>CodeIgniter and Objects</li>
<li>Using CI to Test Code</li>
<li>Using CI to Communicate</li>
<li>How CI Helps to Provide Dynamic Information</li>
<li>Using CI to Handle Files and Images</li>
<li>Production Versions, Updates, and Big Decisions</li>
<li>Instant CRUD - or putting it all together</li>
<li>The Verdict On CI</li>
<li>Resources and Extensions</li>
</ol>

Chapter one is a bare-bones introduction to what CodeIgniter is and why it was initially developed.<br />
Chapter two details how to set up an initial site with CodeIgniter.<br />
Chapter three introduces the reader to the concept of the <a href="http://en.wikipedia.org/wiki/MVC">MVC</a> pattern, what it is about and how CodeIgniter implements it.<br />
Chapter four details the ActiveRecord class for interacting with databases.<br />
Chapter five shows the reader how to specify a View, how to nest them for better reuse and demonstrates CodeIgniter's Validation class.<br />
Chapter six is about session management and securing applications.<br />
Chapter seven, if the reader requires a refresher, explains Object Oriented Programming and through some examples shows that CodeIgniter does not take advantage of PHP5's enhancements in that regard. It also looks at the object model in CodeIgniter.<br />
Chapter eight details how to perform unit tests, benchmarking, profiling and how to use mock database objects for test purposes.<br />
Chapter nine is about various machine-to-machine communications: FTP, mail and using xml-rpc for providing webservices.<br />
Chapter ten focuses on internationalization, caching and string manipulation.<br />
Chapter eleven is about file uploads, downloads, compression and image manipulation.<br />
Chapter twelve discusses various topics relevant to migrating your code from your development servers to production.<br />
Chapter thirteen details <a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete">CRUD</a> operations in CodeIgniter.<br />
Chapter fourteen takes an objective look at what the book has covered as regards CodeIgniter's abilities and what the author chose to not cover - one admitted omission is a lack of focus on AJAX.<br />
Chapter fifteen, the last one,  provides a list of resources and extensions that the dear reader will want to investigate. These include, but are not limited to, graphing and AJAX classes, methods of authentication and CRUD libraries.<br />

The book is written well and the inevitable - yet thankfully small - number of spelling and grammar mistakes in the books don't detract from the book as much as in the SOA one. I got the impression while reading chapter eleven that the author is not particularly knowledgeable about file permissions on linux/unix and specifies the most permissive options for those platforms which is a bit worrying.<br />
I was amused to find the book "PHP Programming with PEAR" gets a mention in the "Resources and Extensions" chapter, more so because CodeIgniter seems to be a framework that has a chronic case of "Not-Invented-Here" syndrome and attacks the <a href="http://pear.php.net">PEAR</a> framework on the main page of it's website and userguide.<br />

<p>
All in all, I found the book to be a straight-forward, educational read and that it works very well alongside the CodeIgniter online documentation.<br />
Well worth the read if you are new to CodeIgniter.<br />
Addendum: <a href="http://verens.com/">Kae</a> asked if reading this book might make me inclined to use CodeIgniter; while I found it very interesting I was also shocked that there is no inclination of embracing and utilising PHP5 enhancements and the chronic NIH present in the framework makes me feel very reluctant to use CodeIgniter. There is a spin-off or fork of CodeIgniter called <a href="http://kohanaphp.com/">Kohana</a> that takes advantage of PHP5. It may well be worth investigating.
</p>]]></description>
			<content:encoded><![CDATA[<p>A while ago <a href="http://www.packtpub.com/">packt</a> sent me another book to review &#8211; this time it was &#8220;<a href="http://www.packtpub.com/codeigniter-php-application-development-mvc/book">Code Igniter for Rapid PHP Application Development</a>&#8221; by David Upton.</p>
<p>Similar in size to the PEAR Installer Manifesto, this book weighs in at 240 pages, is aimed at developers new to CodeIgniter, and is split into 15 chapters:</p>
<ol>
<li>Introduction to CodeIgniter</li>
<li>Two Minute&#8217;s Work: Setting up a CodeIgniter Site</li>
<li>Navigating your site</li>
<li>Using CI to Simplify Databases</li>
<li>Simplifying HTML Pages and Forms</li>
<li>Simplifying Sessions and Security</li>
<li>CodeIgniter and Objects</li>
<li>Using CI to Test Code</li>
<li>Using CI to Communicate</li>
<li>How CI Helps to Provide Dynamic Information</li>
<li>Using CI to Handle Files and Images</li>
<li>Production Versions, Updates, and Big Decisions</li>
<li>Instant CRUD &#8211; or putting it all together</li>
<li>The Verdict On CI</li>
<li>Resources and Extensions</li>
</ol>
<p>Chapter one is a bare-bones introduction to what CodeIgniter is and why it was initially developed.<br />
Chapter two details how to set up an initial site with CodeIgniter.<br />
Chapter three introduces the reader to the concept of the <a href="http://en.wikipedia.org/wiki/MVC">MVC</a> pattern, what it is about and how CodeIgniter implements it.<br />
Chapter four details the ActiveRecord class for interacting with databases.<br />
Chapter five shows the reader how to specify a View, how to nest them for better reuse and demonstrates CodeIgniter&#8217;s Validation class.<br />
Chapter six is about session management and securing applications.<br />
Chapter seven, if the reader requires a refresher, explains Object Oriented Programming and through some examples shows that CodeIgniter does not take advantage of PHP5&#8242;s enhancements in that regard. It also looks at the object model in CodeIgniter.<br />
Chapter eight details how to perform unit tests, benchmarking, profiling and how to use mock database objects for test purposes.<br />
Chapter nine is about various machine-to-machine communications: FTP, mail and using xml-rpc for providing webservices.<br />
Chapter ten focuses on internationalization, caching and string manipulation.<br />
Chapter eleven is about file uploads, downloads, compression and image manipulation.<br />
Chapter twelve discusses various topics relevant to migrating your code from your development servers to production.<br />
Chapter thirteen details <a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete">CRUD</a> operations in CodeIgniter.<br />
Chapter fourteen takes an objective look at what the book has covered as regards CodeIgniter&#8217;s abilities and what the author chose to not cover &#8211; one admitted omission is a lack of focus on AJAX.<br />
Chapter fifteen, the last one,  provides a list of resources and extensions that the dear reader will want to investigate. These include, but are not limited to, graphing and AJAX classes, methods of authentication and CRUD libraries.</p>
<p>The book is written well and the inevitable &#8211; yet thankfully small &#8211; number of spelling and grammar mistakes in the books don&#8217;t detract from the book as much as in the SOA one. I got the impression while reading chapter eleven that the author is not particularly knowledgeable about file permissions on linux/unix and specifies the most permissive options for those platforms which is a bit worrying.<br />
I was amused to find the book &#8220;PHP Programming with PEAR&#8221; gets a mention in the &#8220;Resources and Extensions&#8221; chapter, more so because CodeIgniter seems to be a framework that has a chronic case of &#8220;Not-Invented-Here&#8221; syndrome and attacks the <a href="http://pear.php.net">PEAR</a> framework on the main page of it&#8217;s website and userguide.</p>
<p>
All in all, I found the book to be a straight-forward, educational read and that it works very well alongside the CodeIgniter online documentation.<br />
Well worth the read if you are new to CodeIgniter.<br />
Addendum: <a href="http://verens.com/">Kae</a> asked if reading this book might make me inclined to use CodeIgniter; while I found it very interesting I was also shocked that there is no inclination of embracing and utilising PHP5 enhancements and the chronic NIH present in the framework makes me feel very reluctant to use CodeIgniter. There is a spin-off or fork of CodeIgniter called <a href="http://kohanaphp.com/">Kohana</a> that takes advantage of PHP5. It may well be worth investigating.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.linux.ie/kenguest/2008/04/10/book-review-codeigniter-for-rapid-php-application-development/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

