<?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>Jeff Gran &#187; book review</title>
	<atom:link href="http://jeffgran.com/tag/book-review/feed" rel="self" type="application/rss+xml" />
	<link>http://jeffgran.com</link>
	<description>Artist, Designer, Developer</description>
	<lastBuildDate>Wed, 09 Nov 2011 15:59:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Book Review: PHP Solutions</title>
		<link>http://jeffgran.com/230/blog/book-review-php-solutions</link>
		<comments>http://jeffgran.com/230/blog/book-review-php-solutions#comments</comments>
		<pubDate>Tue, 01 Sep 2009 00:54:20 +0000</pubDate>
		<dc:creator>Jeff Gran</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://jeffgran.com/?p=230</guid>
		<description><![CDATA[In my quest to expand my knowledge of the web industry, I knew I needed to understand more PHP.  PHP is one of the (if not the) most popular languages used on the web today.  I had been exposed to it a little, and I have experience with other C-ish syntax languages, but I needed [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-231" title="php_solutions" src="http://jeffgran.com/img/php_solutions.jpg" alt="PHP Solutions: Dynamic Web Design Made Easy" width="200" height="240" />In my quest to expand my knowledge of the web industry, I knew I needed to understand more PHP.  PHP is one of the (if not <em>the</em>) most popular languages used on the web today.  I had been exposed to it a little, and I have experience with other C-ish syntax languages, but I needed to brush up on the fundamentals and the unique qualities of PHP.</p>
<p>I chose <em>PHP Solutions: Dynamic Web Design Made Easy</em> because I wanted to have some real-world projects to play with as I learned the language, as opposed to just the dry information.  The book delivered in that respect.  As per the name, the book focuses on specific needs and solutions for those needs using PHP and MySQL.  I got to see how PHP works with forms and databases, and how these techniques could be applied in a simple database-driven blog, for example.</p>
<p>However, probably the most useful part of the book for me were the tutorials on getting the Apache server, PHP and MySQL running on my local machine so that I could just jump into a code editor and start playing around.  I actually ended up skipping to these two chapters (one for Apache/PHP and one for MySQL) and then put the book down for a month or so before I picked it back up and finished reading it.</p>
<p>I started out by following along with the solutions and the code samples, typing them in and trying it out as I was reading, but soon realized that this was unnecessary.  I finished reading the better part of the book by simply reading and understand the code examples.  Whether this is a good thing or bad is up for debate.  It means the writing was clear, but also that the content was less challenging.</p>
<p>Besides the setup chapters mentioned above, the other most useful takeaway I had from this book was all the little things about the language that I mentioned above.  Things like &#8220;the truth according to PHP&#8221; (&#8220;false&#8221; evaluates to true because of type coercion), how the $_POST and $_GET superglobal arrays work, and other little things that really help put it all together in my head.</p>
<p>Another very useful aspect to the way the solutions in the book are constructed is the focus on security and thoroughness.  Some books leave out details, only hinting at it with phrases like &#8220;in a real application, we&#8217;d check this or that&#8221;, but in this book we are treated to some very useful (and usually very simple) techniques to make sure the code we&#8217;re building is secure and bulletproof.</p>
<p>All in all, I&#8217;m glad I now have the information I gained from this book, but I&#8217;m not sure it was exactly what I was looking for.  As with other introductory-level books, I found myself a bit annoyed by the &#8220;if that last part made your head explode, don&#8217;t worry, just copy the code and know that it works&#8221; -type attitude.  My head didn&#8217;t explode &#8211; on the contrary, that was one part where my brain actually felt that tingle of a concept falling into place.  Most of the book was spent thinking to myself, &#8220;yeah, I get it.  OK.  What&#8217;s next?&#8221;  I think I would recommend this book to others, but only if you&#8217;re newer to programming in general, and have very little or no PHP experience.  For me, with quite a bit of general programming, and some hands-on PHP experience from working with WordPress themes, it just felt a little bit too slow, but it did fill in some crucial gaps in my knowledge.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgran.com/230/blog/book-review-php-solutions/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Javascript: The Missing Manual</title>
		<link>http://jeffgran.com/161/blog/book-review-javascript-the-missing-manual</link>
		<comments>http://jeffgran.com/161/blog/book-review-javascript-the-missing-manual#comments</comments>
		<pubDate>Sat, 13 Jun 2009 01:30:57 +0000</pubDate>
		<dc:creator>Jeff Gran</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://jeffgran.com/?p=161</guid>
		<description><![CDATA[In my ongoing efforts to realize my dreams of becoming a true web ninja, I recently read Javascript: The Missing Manual by David Sawyer MacFarland.  I had read his previous book in the Missing Manuals series on CSS, and had both enjoyed it and learned a lot from it. I did find this book interesting [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-166" title="js_mm_cover" src="http://jeffgran.com/img/js_mm_cover.png" alt="js_mm_cover" width="145" height="190" />In my ongoing efforts to realize my dreams of becoming a true web ninja, I recently read <a title="Javascript: The Missing Manual" href="http://www.amazon.com/gp/product/0596515898"><em>Javascript: The Missing Manual</em></a> by <a title="David Sawyer MacFarland" href="http://www.sawmac.com">David Sawyer MacFarland</a>.  I had read his previous book in the Missing Manuals series on CSS, and had both enjoyed it and learned a lot from it.</p>
<p>I did find this book interesting and informative as well, but I say that with caveats, which I&#8217;ll explain.</p>
<p>First, I&#8217;m not sure that I was exactly the intended audience for the book.  I am pretty well-versed in programming concepts in general, and what I was looking for was an introduction to the language of javascript and when and how to use it effectively in my web sites.  In contrast, this book seemed to be geared a little more towards pure designers who are scared of programming. A few times during my reading I had to roll my eyes at another &#8220;If this is making your head hurt, just type it in and know that it works.&#8221;  Personally, I want to know how everything works and I&#8217;m not interested in blindly typing in code to &#8220;make it work.&#8221;  I can do that by searching google and cutting and pasting.  I bought a book because I wanted to get deep, to learn the ins and outs of how it all works behind the scenes.  I wanted a book because I&#8217;m on my way to becoming a full-on pro, and this book at times seemed more geared towards hobbyists, or designers who just wanted to dip their toes into javascript.</p>
<p>Second, this is really a book on jQuery.  I don&#8217;t have a problem with that, but it needs to be said.  The first section of the book goes over the syntax of plain old javascript, including function declarations, string manipulation with built-in functions and regular expressions, math functions and operators, variable typing, etc.  Then the author quickly moves on to the use of libraries to speed development, and specifically to jQuery.  I&#8217;ll say here that I have very ambiguous feelings regarding the need to learn the &#8220;hard way&#8221; of doing things when using a library to do it for you will normally suffice.  That&#8217;s a debate in itself, and I don&#8217;t want to get into all the pros and cons, but again, it should be said that you won&#8217;t be learning the traditional way of working with the DOM here, you&#8217;ll be learning to use jQuery selectors.</p>
<p>Now for the good parts.  Like the CSS book in the series, I found the information to be explained in a very readable and understandable tone.  The book is well-paced &#8212; several times I would have an &#8220;aha &#8211; that&#8217;s cool how that works!&#8221; moment, followed by a &#8220;but wait, what if you wanted to do it this way?&#8221;, and without fail the next paragraph would address my question.  Sometimes it would answer right there, and sometimes it would say &#8220;we&#8217;ll show you how to do this with more flexibility in the next section&#8230;&#8221; so I&#8217;d know it was coming.  This ability to anticipate the reader&#8217;s thinking is probably the best part of these books.</p>
<p>Also, the tutorials were again very helpful and well laid-out.  Another thing I&#8217;d like to point out is that the tutorials are not just re-hashes of the information in the preceding chapter.  There is additional learning value in the tutorials that build on what you learn by reading the chapter.  So you get the explanations of how things are designed to work, and then you get to play with a real-world example and the book shows you how to solve the additional problems that inevitably come up.  Code examples are thoroughly explained (sometimes too thoroughly &#8212; I found myself skipping sections saying to myself, &#8220;yeah, I get it already&#8221; &#8212; but that&#8217;s definitely better than the opposite).</p>
<p>After going through all the basic functionality of jQuery itself, the book unfortunately devolves into several chapters showing how to use specific jQuery plugins for specific purposes: image gallery, slideshow, tabs, etc.  While these are certainly useful, no additional concepts or ideas were presented, just lists of the specific variables and possible values for customizing the plugins.  This part of the book seemed like fluff to me and could have been condensed into a few short pages of charts.  It&#8217;s not that the information wasn&#8217;t useful, just that after learning so many interesting and, to me, revolutionary concepts, reading paragraphs about using &#8220;slow&#8221; if you want it to move slow, and &#8220;fast&#8221; if you want it to move fast seemed like a step backwards.</p>
<p>The last section of the book is dedicated to AJAX.  Here the quality of information improves again, but again with caveats.  You won&#8217;t learn the details of setting up the XMLHTTPRequest object, but you&#8217;ll learn what is and then how jQuery saves you the trouble of knowing.</p>
<p>In one way this final section about AJAX serves as a microcosm to the whole book.  It&#8217;s a great introduction, it gets you familiar with the general concepts and shows you how to get started right away, but it left me hungry for more, deeper knowledge.  And perhaps that&#8217;s the way it should be.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgran.com/161/blog/book-review-javascript-the-missing-manual/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Book Review: CSS: The Missing Manual</title>
		<link>http://jeffgran.com/62/blog/book-review-css-the-missing-manual</link>
		<comments>http://jeffgran.com/62/blog/book-review-css-the-missing-manual#comments</comments>
		<pubDate>Sun, 26 Apr 2009 12:50:42 +0000</pubDate>
		<dc:creator>Jeff Gran</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[book review]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://jeffgran.com/?p=62</guid>
		<description><![CDATA[I&#8217;m the kind of person that likes to learn by doing. The first time I touched any CSS code it was out of necessity.  Being used to the old-school style of HTML, using tables and attributes for layout and color, I was trying in vain to alter a Joomla template I was working with by [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m the kind of person that likes to learn by doing.</p>
<p><img class="alignleft size-full wp-image-172" title="CSS: THe Missing Manual" src="http://jeffgran.com/img/css_cover_med.png" alt="CSS: THe Missing Manual" width="145" height="190" />The first time I touched any CSS code it was out of necessity.  Being used to the old-school style of HTML, using tables and attributes for layout and color, I was trying in vain to alter a Joomla template I was working with by just editing the HTML.  (Part of the problem, in retrospect, was that the template in question was a weird hybrid of table-based layout and CSS-based colors and images &#8211; but I digress.)  Eventually I realized it was the .css file that I had to play with, and after several hours of experimenting and tweaking, I had sort-of figured out how descendant selectors and classes and ids worked.  Sort of.  I got the results I wanted, but not in the most graceful way possible by far, and without a complete understanding of how I did it.</p>
<p>So when I recently decided to take my career towards web design as a profession, I knew I had to brush up my knowledge in certain key areas, starting with XHTML and CSS.</p>
<p>Enter <a title="CSS: The Missing Manual" href="http://www.amazon.com/CSS-Missing-Manual-David-McFarland/dp/0596526873/"><em>CSS: The Missing Manual</em></a> by <a title="Sawyer McFarland Media, Inc." href="http://www.sawmac.com/">David Sawyer McFarland</a>.  The book starts out with a short review of (X)HTML, explaining how and why modern HTML is different than it used to be.  More than just a list of changes, this opening section is a mini-treatise on the modern concept of separating the structure &#8220;layer&#8221; of a web document from the presentation &#8220;layer&#8221;.</p>
<p>From there, the book goes on to explain in a very readable manner the basics of internal and external stylesheets, and inline style declarations and why they&#8217;re usually best avoided.  Also extremely helpful is the explanation of &#8220;the cascade&#8221; and how it works.  This information, while it may seem boring and bookish in other presentations of the same material, is essential in understanding why sometimes you write a style that should work but nothing happens.  This is often caused by precedence rules according to the cascade.</p>
<p>The meat of the book follows, and of course it entails thorough treatments of every HTML element you&#8217;d ever want or need to style, ending with a substantial section of the book devoted to page layout techniques.</p>
<p>But the best part of the book has to be the inclusion of the tutorials.  As I said above, I learn best by doing, and this book is set up for just that.  There&#8217;s a set of files you can download from the book&#8217;s website to work with as you go through the books tutorials.  Each chapter has two parts: first, an introduction to the topic; and second, a tutorial where you can follow along and see the concepts in action.  It&#8217;s a great way to get used to typing the code so that the syntax becomes second-nature.  And, if you&#8217;re anything like me, you&#8217;ll find yourself continuing to tweak and add and subtract the styles after the tutorial&#8217;s over, just to see what happens and deepen the understanding.</p>
<p>Overall, highly recommended.  The book lives up to its name.  In fact, I enjoyed it so much (and felt I learned so much from it) that I bought the Javascript book in the same series, which focuses on immediately applicable Javascript techniques using the popular jQuery library.  I can&#8217;t wait to get started. <img src='http://jeffgran.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgran.com/62/blog/book-review-css-the-missing-manual/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

