<?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>Justin Carmony &#187; Books</title>
	<atom:link href="http://www.justincarmony.com/blog/tag/books/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justincarmony.com/blog</link>
	<description>Web Designer &#38; Software Engineer</description>
	<lastBuildDate>Wed, 01 Feb 2012 04:30:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>CSS – I’m 100% Converted</title>
		<link>http://www.justincarmony.com/blog/2009/01/08/css-im-100-converted/</link>
		<comments>http://www.justincarmony.com/blog/2009/01/08/css-im-100-converted/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 06:01:35 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS Mastery]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=326</guid>
		<description><![CDATA[It has been a hard, long road. But these last few days, I&#8217;ve finally have reached a realization of a great step in my life as a web design: I&#8217;m 100% converted to CSS layouts, and have forsaken tables. 5 years ago I would have believed that would be impossible, and that I would love ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/11/03/mysql-does-table-exist-wo-throwing-errors/' rel='bookmark' title='MySQL &#8211; Does Table Exist w/o Throwing Errors'>MySQL &#8211; Does Table Exist w/o Throwing Errors</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/06/23/php-practices-buffering-your-autoload/' rel='bookmark' title='PHP Practices: Buffering your autoload'>PHP Practices: Buffering your autoload</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/19/ms-sql-2005-t-sql-row-count-for-each-table/' rel='bookmark' title='MS SQL 2005 (T-SQL) Row Count for Each Table'>MS SQL 2005 (T-SQL) Row Count for Each Table</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>It has been a hard, long road. But these last few days, I&#8217;ve finally have reached a realization of a great step in my life as a web design: I&#8217;m 100% converted to CSS layouts, and have forsaken tables. 5 years ago I would have believed that would be impossible, and that I would love and use tables for my layouts until the day I die. I remember hearing the lectures and heated discussions on using CSS instead, but I couldn&#8217;t bring myself to using CSS for layouts. Don&#8217;t get me wrong, using CSS was amazing for <strong>formatting</strong> and <strong>styling</strong>, such a color, size, bolding, etc. I love it every second and my conversion to CSS for those scenarios was very quick. However, the positioning of content, headers, footers, side menus and navigation was a nightmare for me at first. I just didn&#8217;t get it.</p>
<p>However, a few days ago I had to work with a layout that was created using tables. I looked at the source, face palmed my head, and dreaded the misery of working with it. There was no rhyme or reason to the syntax. It was total chaos. Then, when I had to create a similar page using the exact images, just adding different dynamic content, I was able to quickly re-make the page. The source was smaller and easier to read and work with. I had to incorporate content and styling from other parts of the website. I easily added the links to the needed CSS files, called the exact same rendering methods, and it worked perfectly. Super simple and easy.</p>
<p>We rolled the new content live, and we had a situation. Wonderful Internet Explorer 6 &amp; 7 had issues rendering both pages, the table based and CSS based. I spent <strong>2 hours</strong> trying to figure out the issues with the table based page. I couldn&#8217;t figure out where the extra space was coming from. I finally got it to the point where it didn&#8217;t look &#8220;bad&#8221; but it wasn&#8217;t 100% fixed. I then looked at the CSS page, and within <strong>10 minutes </strong>I was able to solve the problem. I sat back in awe, and pondered the wonder that had just happened. I had converted, 100%, to using CSS layouts. I couldn&#8217;t imagine doing it any other way. There are appropriate times to use tables, but only then do I use them.</p>
<h2>Why the Long, Hard Conversion?</h2>
<p><strong>Control</strong> &#8211; It is really, really simple why I had such a hard time switching over to using CSS for layouts. I had much more straight forward control over my layouts with tables. Yes, they were a pain to maintain. Yes, the source looked at total mess. Regardless, I could easily control every aspect of my layout. 100% height? No problem! Align text to the bottom of the cell? Piece of cake. Center stuff? I could do it blindfolded. While the source of tables might stink to edit, the concepts were very, very simple. After playing around with table layouts for a little while, you could learn all the tricks and understand the concepts. Even if you had a bug or problem, 99% of the time the solution was obvious and straight forward.</p>
<p>CSS on the other hand is a complete beast to wrap your head around. Especially if you had lived with tables, like I had, for years and years. With tables, there is little theory. You just make grid like layouts and go. CSS has a lot of principles you must understand before you can really use it. The box model, positioning, floating, etc. It can all be very complicated, and frustrating when it doesn&#8217;t work. Many times when my layout would break, I didn&#8217;t know if it was a browser issue, or maybe I had an error on my side. How do I fix it? I have to search over and over again on the internet, and there wasn&#8217;t a single place to find answers. Many times I would have to comb through results from forums, blogs, and articles to find my answer.</p>
<h2>How I&#8217;ve Mastered CSS</h2>
<p>I&#8217;m proud that I&#8217;ve finally been able to embrace <strong><em>and</em></strong> benefit from CSS. It has enabled my web development to be faster, cleaner, and more efficient. There have been several things that have helped immensely, and hopefully they can help you too.</p>
<h3>Step 1: CSS Mastery by Andy Budd</h3>
<p><a href="http://www.cssmastery.com/" target="_blank">This book</a> is a must for every single website designer. It has the perfect balance of technical knowledge, real application, and great examples. It isn&#8217;t very long, and can be read in a few hours. It covers the basics &amp; explains the principles, and is a great reference always. However, the best way I can describe what this book did for me is this: before, I felt guilt tripped into using CSS. Viewers with accessibility issues would have a difficult time. My HTML wasn&#8217;t &#8220;meaningful&#8221; but a jumble of tables and mess.</p>
<p>However, after reading this book, I <em><strong>preferred</strong></em> to use CSS. I saw all the advantages, I understood the principles, and I knew how to make CSS work for me. This book was better than any other tutorial, documentation, video, etc that I had ever used. I walked away feeling like I could actually use CSS.</p>
<h3>Step 2: FireBug</h3>
<p>If you are a web developer, and you do not have <a href="http://getfirebug.com/" target="_blank">FireBug</a>, you are in the stone-age. FireBug is a debugging tool that is a add-on for FireFox. It allows you to visualize and follow exactly how you&#8217;re CSS is being executed. See how much space a DIV tag was taking, and see it&#8217;s properties, and the different CSS statements that gave it it&#8217;s properties was a break through. I would say 90% of my CSS issues and bugs can be solved by using FireBug. Of course there will be IE bugs that I can&#8217;t use FireBug to solve, but it a million times better than not having it at all.</p>
<p>Also, have FireBug enabled all the time. There are many times where I&#8217;ll see a website with a cool technique and analyze how they do it using FireBug. Its a great way to learn new things.</p>
<h3>Step 3: Cold Turkey w/ Small Project</h3>
<p>The next step for me was going Cold Turkey on a small project. Why cold turkey? (Cold turkey is a saying that means to make a change instantly, and not slowly change over) It is painful, but forcing yourself to use 100% legit CSS makes you learning the techniques for using CSS well. Why a small project? Trust me, it will be very, very frustrating. Your small project&#8217;s design shouldn&#8217;t be overly complicated. Keep it simple. A great way to start is simply creating a personal portfolio website, 5-10 pages, and use 100% CSS. After getting the hang of it, gradually start working on large projects. Make a new blog theme, or incorporate CSS in all of your work. Eventually, you&#8217;ll find yourself using CSS more often than not.</p>
<h3>Step 4: Make Designs CSS Friendly</h3>
<p>With tables, I had total (while chaotic) control over my designs. You can also have that same control with CSS, but its takes different techniques, and often the more crazy, the more likely a browser will make it look bad. This was extremely frustrating for me as a web development. Make your life easy at first by making CSS friendly designs. If a design used to require 6 nested tables with many width and height definitions, setting the backgrounds to each one to make an effect look just right, it is probably over complicated, and unnecessary. Make your design easy to implement in CSS at first. You&#8217;ll find yourself making cleaner designs, and after you get the hang of it, you will start designing websites with CSS in mind. Instead of seeing grid frameworks with tables, you&#8217;ll see DIV tags.</p>
<h3>Step 5: Keep Notes on Bugs &amp; Solutions</h3>
<p>Last, but not least, make sure you track the bugs you have, and your solutions to them. You&#8217;ll find recurring problems that you always will face. How to get 100% height, how to solve box model issues, etc. If you&#8217;re good at documenting problems &amp; solutions, you&#8217;ll find that down the road you&#8217;ll rarely run into a problem you haven&#8217;t already faced. CSS has it&#8217;s weaknesses, but you&#8217;ll know how to overcome them. I personally need to do better at this step 5. I swear that once every 3-4 months I have an issue with unordered lists and IE6. You&#8217;d think I would write down the solution?</p>
<h3>Step 6: Validate, Validate, Validate!</h3>
<p>Many times a &#8220;bug&#8221; with CSS isn&#8217;t actually a bug, but you using it wrong. Typos can cause drastic affects, yet may not be apparent where the typo is. Services like <a href="http://validator.w3.org/" target="_blank">W3C&#8217;s Validation tools</a> make life easier. I know its frustrating when it spits back 27 errors, saying you&#8217;re doing it all wrong. However, if you get in the habit, validation will soon become a great tool and not a burden.</p>
<h3>Step 7: Don&#8217;t Look Back</h3>
<p>Once you start this journey, don&#8217;t look back at how you used to do it. Forget table layouts and it&#8217;s unreadable markup. You&#8217;re better than that! Trust me, I know how frustrating it can be when you don&#8217;t understand why your layout isn&#8217;t working like you want it to. I was in your shoes thinking &#8220;I will never, ever use and like CSS.&#8221; But I&#8217;m telling you, now I can&#8217;t stand the old methods. I cringe when I have to use a table for non-tabular uses. It is possible to love CSS! The more you revert to old table layouts the more you&#8217;ll struggle to convert to CSS.</p>
<h2>Conclusion</h2>
<p>I&#8217;m glad I&#8217;ve suffered through the torment of learning and mastering CSS. While I wish the learning curve for me hadn&#8217;t been so dramatic and difficult, it has paid off. Now that I have well formed XHTML documents with valid CSS, I can do all sort of things using JavaScript and jQuery, and do it quickly and efficiently. If you find yourself struggling, I highly suggest following my steps. I promise, it will pay off in the end. To be 100% honest, I still am totally shocked I&#8217;m a CSS fan now. If myself from five years ago could see me to day, that Justin Carmony in the past would be in utter disbelief.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/11/03/mysql-does-table-exist-wo-throwing-errors/' rel='bookmark' title='MySQL &#8211; Does Table Exist w/o Throwing Errors'>MySQL &#8211; Does Table Exist w/o Throwing Errors</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/06/23/php-practices-buffering-your-autoload/' rel='bookmark' title='PHP Practices: Buffering your autoload'>PHP Practices: Buffering your autoload</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/19/ms-sql-2005-t-sql-row-count-for-each-table/' rel='bookmark' title='MS SQL 2005 (T-SQL) Row Count for Each Table'>MS SQL 2005 (T-SQL) Row Count for Each Table</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/01/08/css-im-100-converted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 6 Books &#8211; Did I Miss Something?</title>
		<link>http://www.justincarmony.com/blog/2008/09/22/php-6-books-did-i-miss-something/</link>
		<comments>http://www.justincarmony.com/blog/2008/09/22/php-6-books-did-i-miss-something/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 02:46:30 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/2008/09/22/php-6-books-did-i-miss-something/</guid>
		<description><![CDATA[Update 01-21-12: since I was contacted by the Author of one of these books, and a few years have gone by and I&#8217;m more familiar with the publishing industry, I was unfair to place blame on the author for the decision to market these books as PHP6. Authors have almost no say in how their ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/07/15/web-development-10-years-ago-now/' rel='bookmark' title='Web Development 10-Years Ago &amp; Now'>Web Development 10-Years Ago &#038; Now</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/07/06/avg-the-new-popular-anti-virus/' rel='bookmark' title='AVG &#8211; The New Popular Anti-Virus'>AVG &#8211; The New Popular Anti-Virus</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/19/starting-book-reviews/' rel='bookmark' title='Starting Book Reviews'>Starting Book Reviews</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong><em>Update 01-21-12: since I was contacted by the Author of one of these books, and a few years have gone by and I&#8217;m more familiar with the publishing industry, I was unfair to place blame on the author for the decision to market these books as PHP6. Authors have almost no say in how their books are marketed. Thus, the blame for these types of tactics, rest solely on the publisher.<br/><br/>On a side note, it is now 3 1/2 years later, and we&#8217;re only on PHP 5.3 with 5.4 coming out. Still no PHP 6 on the horizon.</em></strong></p>
<p><img src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2008/09/php-6-books.jpg" width="500" height="350" alt="php-6-books.jpg" /></p>
<p>The other day I was walking down an isle at <a href="http://www.bn.com/">Barnes &amp; Nobel</a> and I a <a href="http://search.barnesandnoble.com/PHP-6-and-MySQL-5-for-Dynamic-Web-Sites/Larry-Ullman/e/9780321525994/?itm=1">two</a> <a href="http://search.barnesandnoble.com/Php-6-Fast-and-Easy-Web-Development/Matt-Telles/e/9781598634716/?itm=4">books</a> caught my attention. PHP 6? Did I miss something? I opened each book looking for something that said &#8220;PHP 6 is still in development&#8221; or &#8220;future technology.&#8221; No such luck. They each just looked like PHP 5 books with PHP 6 slapped on their cover. Looking at <a href="http://en.wikipedia.org/wiki/PHP">PHP&#8217;s wikipedia page</a>, I verified that PHP 6 doesn&#8217;t even have a release date.</p>
<p>After looking at what version 6 will do for PHP, I guess these authors can get away with it. PHP 6 is really just cleaning up some of the legacy problem The only reason I can see for labeling a book now as &#8220;PHP 6&#8243; is to sell copies to unknowledgeable consumers. People who think 6 is better than 5, which it is, but they don&#8217;t state PHP 6 hasn&#8217;t been released yet. I&#8217;m sure these &#8220;fast and easy&#8221; web development books are pretty basic and not very good. It just makes frustrated with some authors who sell books just to sell, instead of making really good books. I think this is very misleading.</p>
<p>Anyways, back to watching Heroes&#8230;..</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/07/15/web-development-10-years-ago-now/' rel='bookmark' title='Web Development 10-Years Ago &amp; Now'>Web Development 10-Years Ago &#038; Now</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/07/06/avg-the-new-popular-anti-virus/' rel='bookmark' title='AVG &#8211; The New Popular Anti-Virus'>AVG &#8211; The New Popular Anti-Virus</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/19/starting-book-reviews/' rel='bookmark' title='Starting Book Reviews'>Starting Book Reviews</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2008/09/22/php-6-books-did-i-miss-something/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Web Design &amp; The Cookie Jar: When Dealing with Clients</title>
		<link>http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/</link>
		<comments>http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 20:34:57 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Clients]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=126</guid>
		<description><![CDATA[I saw this YouTube video and I couldn&#8217;t help but post about it. Here is the video, and I&#8217;ll add my thoughts at the end: I&#8217;ve seen this happen so many times it isn&#8217;t even funny. You have a company with dozens of individuals giving their input on how something should be designed. As in ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/03/07/five-common-php-design-patterns-that-arent-used-enough/' rel='bookmark' title='Five common PHP design patterns that aren&#8217;t used enough'>Five common PHP design patterns that aren&#8217;t used enough</a></li>
<li><a href='http://www.justincarmony.com/blog/2007/12/31/retrieve-current-modulecontrolleraction-inside-view-script-layout-script/' rel='bookmark' title='Retrieve Current Module/Controller/Action inside View Script / Layout Script'>Retrieve Current Module/Controller/Action inside View Script / Layout Script</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I saw this YouTube video and I couldn&#8217;t help but post about it. Here is the video, and I&#8217;ll add my thoughts at the end:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/jVb8EC1Y2xM&amp;hl=en&amp;fs=1" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/jVb8EC1Y2xM&amp;hl=en&amp;fs=1" allowfullscreen="true"></embed></object></p>
<p>I&#8217;ve seen this happen so many times it isn&#8217;t even funny. You have a company with dozens of individuals giving their input on how something should be designed. As in the video, the end result is usually the same: a product that doesn&#8217;t accomplish it&#8217;s goal. This is what I call the &#8220;Cookie Jar&#8221; effect, when you have too many &#8220;hands&#8221; in the cookie jar.</p>
<p><strong>The Problem</strong></p>
<p>Each person involved in the situation has their own goals, ideas, and motives. When designing a company website, each person could easily say &#8220;I want to make sure my department&#8217;s product is on the front page!&#8221; The front page is also a huge breeding ground for debate, seeing as how each person wants a piece. However, if you try to cram each goal in, you&#8217;re going to get a very confusion result.</p>
<p>One example I like to use is ESPN. Now I don&#8217;t think ESPN&#8217;s web team is bad, I actually think with all the content they <strong>must</strong> serve and cover, they do a good job. However, if a regular company&#8217;s website looks like this, I don&#8217;t care who you are, your website needs help.</p>
<p><a href="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2008/09/epsn-clean.jpg"><img class="alignnone size-medium wp-image-127" title="epsn-clean" src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2008/09/epsn-clean-300x283.jpg" alt="" width="300" height="283" /></a></p>
<p>Where are my eyes suppose to look? Where am I suppose to go? ESPN&#8217;s entire front page is designed around the idea that visitors come very often, and they learn once how to get to their content. Once you &#8220;drill down&#8221; into the website, its navigation and content doesn&#8217;t because as over-bearing.</p>
<p><strong>The Solution</strong></p>
<p>The video hit the problem on the head without, even though most people would miss the concept. The #1 solution to preventing an over complex and useless product is: <strong>testing</strong>. Notice at the end of the video the people had came back and said after testing they wanted a few more changes? Why were they not testing from the very beginning? The entire message of &#8220;STOP&#8221; was lost due to conflicting goals and unclear direction. If they had make their original sign, tested, then made some alterations, tested, and continued on that cycle this whole problem would have been avoided.</p>
<p>I can&#8217;t stress this enough: <em><strong>if you find yourself or your project caught in continuous cycles of debating about how to do things, start user testing.</strong> </em></p>
<p>A book that I highly recommend is <a href="http://www.amazon.com/Common-Approach-Usability-Circle-Com-Library/dp/0789723107">&#8220;Don&#8217;t Make Me Think! A Common Sense Approach to Web Usability&#8221; by Steve Krug</a>. It talks about these principles and gives great examples. Hopefully next time you get in this situation it won&#8217;t be <em><strong>as</strong></em> big of a headache.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/03/07/five-common-php-design-patterns-that-arent-used-enough/' rel='bookmark' title='Five common PHP design patterns that aren&#8217;t used enough'>Five common PHP design patterns that aren&#8217;t used enough</a></li>
<li><a href='http://www.justincarmony.com/blog/2007/12/31/retrieve-current-modulecontrolleraction-inside-view-script-layout-script/' rel='bookmark' title='Retrieve Current Module/Controller/Action inside View Script / Layout Script'>Retrieve Current Module/Controller/Action inside View Script / Layout Script</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 19/56 queries in 0.024 seconds using memcached
Content Delivery Network via Rackspace Cloud Files: c747925.r25.cf2.rackcdn.com

Served from: www.justincarmony.com @ 2012-02-07 20:29:47 -->
