<?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>PMA Media Group&#187; Design</title>
	<atom:link href="http://www.pmamediagroup.com/category/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pmamediagroup.com</link>
	<description>Unique Marketing Techniques and Strategies with Guaranteed Results!</description>
	<lastBuildDate>Fri, 27 Aug 2010 18:14:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>What to do with IE6?</title>
		<link>http://www.pmamediagroup.com/2009/05/what-to-do-with-ie6/</link>
		<comments>http://www.pmamediagroup.com/2009/05/what-to-do-with-ie6/#comments</comments>
		<pubDate>Tue, 05 May 2009 20:52:42 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=760</guid>
		<description><![CDATA[
I&#8217;m really tired of designing a simple, standards-compliant layout that looks fine in every browser but IE6.  Aren&#8217;t you?  Almost every web developer has something to say about this topic.  I&#8217;ve found some interesting sites recently that suggest action we can take as a design community get IE6 out of our hair.  The suggestions range [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-767" title="bd" src="http://www.pmamediagroup.com/wp-content/uploads/2009/05/bd.png" alt="bd" width="117" height="120" /><br />
I&#8217;m really tired of designing a simple, standards-compliant layout that looks fine in every browser but IE6.  Aren&#8217;t you?  Almost every web developer has something to say about this topic.  I&#8217;ve found some interesting sites recently that suggest action we can take as a design community get IE6 out of our hair.  The suggestions range from mild to extreme; either helping IE6 gracefully exit the stage or die a quick, painful death.  We obviously want to make life easier for ourselves, but we can&#8217;t alienate our audience.  I&#8217;m most concerned about those who don&#8217;t have the ability to upgrade their system because they work for a public institution with ancient machines or proprietary apps that don&#8217;t work on other browsers.  For the rest of the world, maybe a little tough love is a good thing.  Here are some of my favorite ideas:<span id="more-760"></span></p>
<ul>
<li><a href="http://www.simplebits.com/notebook/2009/02/13/iegone.html">Dan Cederholm</a> suggests serving up an un-styled version of the site.</li>
<li><a href="http://sonspring.com/journal/redirect-ie6">Nathan Smith</a> points out that there ought to be a polite way to help the user upgrade their browser.  This is accomplished through a meta refresh.</li>
<li>The creators of <a href="http://ie6update.com/">IE6 Update</a> encourage an update with something that looks like IE’s Information Bar.  It contains a link to the latest release of IE.  Since Microsoft has marketed their browser as &#8220;the Internet&#8221; the creators reason we shouldn&#8217;t feel bad about tricking the visitor into moving on to a better browser.</li>
<li><a href="http://www.bringdownie6.com/">http://www.bringdownie6.com/</a> appears to be the one of the nicest looking unified efforts to get people to do something to encourage user awareness of IE6&#8217;s shortcomings. I wouldn&#8217;t include their graphics on anyone&#8217;s homepage, but I included it here, and now I feel like I&#8217;ve done my part.  IE6 users get the following message:</li>
</ul>
<blockquote><p>If you&#8217;re reading this, you&#8217;re surfing using Internet Explorer 6, an eight-year-old browser that cannot cope with the demands of the modern internet. For the best web experience, we strongly recommend upgrading to <a href="http://www.getfirefox.com/">Firefox</a>, <a href="http://www.opera.com/">Opera</a>, <a href="http://www.apple.com/safari/">Safari</a>, <a href="http://www.google.com/chrome">Google Chrome</a>, or a more recent version of <a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a>.</p></blockquote>
<p><strong>Education is powerful</strong>, and the unifying theme on all of these sites and posts is: <em>making your audience aware there are better options available to then, they are more likely to change, especially if you help make the change easy.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/05/what-to-do-with-ie6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Font Styling Shorthand</title>
		<link>http://www.pmamediagroup.com/2009/04/css-font-styling-shorthand/</link>
		<comments>http://www.pmamediagroup.com/2009/04/css-font-styling-shorthand/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 19:46:37 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=733</guid>
		<description><![CDATA[Here&#8217;s a quick reference on how to style all of your font properties (and one text property: line-height) in one rule.
font: weight &#124; variant &#124; style &#124; size/line height &#124; font-family
font: bold small-caps italic 1em/1.25 Georgia, "Times New Roman", Times, serif;
For this to work, you must include font-size and the font-family (in that order).  They [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick reference on how to style all of your font properties (and one text property: line-height) in one rule.</p>
<p>font: weight | variant | style | size/line height | font-family</p>
<blockquote style="background-color: #eee; padding: 10px;"><p><code style="color: #666; ">font: bold small-caps italic 1em/1.25 Georgia, "Times New Roman", Times, serif;</code></p></blockquote>
<p>For this to work, you <strong>must</strong> include <em>font-size</em> and the <em>font-family</em> (in that order).  They must also be the last two values listed.  If you leave out values, those values will render in their default state, ignoring inheritance and other group selectors.</p>
<p>Line height is optional.  Note that line height doesn&#8217;t have a unit.  <a href="http://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/">Eric Meyer</a> explains why.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/css-font-styling-shorthand/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inspiring Creativity Through Education</title>
		<link>http://www.pmamediagroup.com/2009/04/inspiring-creativity-through-education/</link>
		<comments>http://www.pmamediagroup.com/2009/04/inspiring-creativity-through-education/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 15:31:14 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[education]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=717</guid>
		<description><![CDATA[Nearly everyone has an opinion about education.  It&#8217;s an emotionally charged topic, like politics or religion.  Sir Ken Robinson adds profound insight into the discussion using humor in his talk at TED called, Do schools kill creativity?

This video has been widely circulated on the web for the past few years, but it seems that the [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly everyone has an opinion about education.  It&#8217;s an emotionally charged topic, like politics or religion.  Sir Ken Robinson adds profound insight into the discussion using humor in his talk at TED called, <a href="http://www.ted.com/index.php/talks/ken_robinson_says_schools_kill_creativity.html"><em>Do schools kill creativity?</em></a></p>
<p><object width="334" height="326" data="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/embed/SirKenRobinson_2006-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/SirKenRobinson-2006.embed_thumbnail.jpg&amp;vw=320&amp;vh=240&amp;ap=0&amp;ti=66" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /></object></p>
<p>This video has been widely circulated on the web for the past few years, but it seems that the message becomes even more important as time goes on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/inspiring-creativity-through-education/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone User Interface Design</title>
		<link>http://www.pmamediagroup.com/2009/04/iphone-user-interface-design/</link>
		<comments>http://www.pmamediagroup.com/2009/04/iphone-user-interface-design/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 17:57:36 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=715</guid>
		<description><![CDATA[
I just watched Endward Tufte&#8217;s video review of the iPhone and pulled out some interesting principles of UI design and usability.  The inherent challenge of a designing for a small screen is the lack of screen real estate.  To overcome that challenge, Apple gives their users a high resolution screen and amazing design [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-739" title="iPhone" src="http://www.pmamediagroup.com/wp-content/uploads/2009/04/iphone.jpg" alt="iPhone" width="113" height="200" /></p>
<p>I just watched Endward Tufte&#8217;s <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T&amp;topic_id=1&amp;topic=">video review</a> of the iPhone and pulled out some interesting principles of UI design and usability.  The inherent challenge of a designing for a small screen is the lack of screen real estate.  To overcome that challenge, Apple gives their users a high resolution screen and amazing design to mange the information.  <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T&amp;topic_id=1&amp;topic=">Watch the video</a> and see for yourself how the iPhone reduces cognitive overload by keeping information on just a levels rather than deeply stacked hierarchies.</p>
<p><span id="more-715"></span></p>
<p>One thing that Tufte says repeatedly as both a compliment and criticism is how Apple manages &#8220;screen-hogging computer administrative debris.&#8221;  If it&#8217;s not necessary to navigate within a page, it&#8217;s just taking up space.</p>
<p>Another principle he suggests is that clutter and confusion are not attributes of information, but failures of design.  If confusion exists, fix the design.</p>
<p>My natural tendency is to strip away elements in order to simplify a design.  Tufte suggests the opposite.  He says, &#8220;To clarify add detail.&#8221;</p>
<p>It&#8217;s amazing the things you can learn from an expert observer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/iphone-user-interface-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Valid XHTML for good CSS</title>
		<link>http://www.pmamediagroup.com/2009/04/valid-xhtml-for-good-css/</link>
		<comments>http://www.pmamediagroup.com/2009/04/valid-xhtml-for-good-css/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 22:24:18 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=698</guid>
		<description><![CDATA[If you&#8217;re like me, you&#8217;ve been learning how to design and build websites on your own, mainly by finding a site that you like and reverse engineering the code to see how the author made something work.  There are some really great books and web resources out there to teach you the fundamentals.  Sometimes it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you&#8217;ve been learning how to design and build websites on your own, mainly by finding a site that you like and reverse engineering the code to see how the author made something work.  There are some really <a href="http://www.pmamediagroup.com/2009/04/how-to-become-a-web-designer/">great books and web resources</a> out there to teach you the fundamentals.  Sometimes it&#8217;s difficult to sort through the massive about of information and decide what is the most important to grasp.  I believe that the thing the separates great artists and technicians from everyone else is how well they understand the basics.  Here are a few of the foundational concepts regarding well-formed XHTML to make your CSS pages display more predictably across browsers and platforms.</p>
<p><span id="more-698"></span>
<ol>
<li><em>DOCTYPES are essential for browsers to know how to render your page, especially older browsers.</em> The three main types are Strict, Transitional, and Frameset.  Strict is probably the best choice unless you plan to use deprecated tags.  There&#8217;s no reason to re-type this code every time you create a page and increase the chances of getting it wrong.  Copy the code from an <a href="http://www.alistapart.com/articles/doctype/">authoritative page</a>, or let your code editor to do it for you.  I&#8217;ve set <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver</a> to render the strict type by default.</li>
<li><em>XHTML is flexible but it requires your code to be written correctly, which is a good thing.</em> If you can <a href="http://www.w3schools.com/xHTML/xhtml_validate.asp">validate your code</a>, it&#8217;s more likely to display the way you want it to.  All tags need to close.  For example: <span style="font-family:monospace; color: #666;">&lt;p&gt;A sample paragraph with a couple of sentences&#8230; </span>must end with this tag <span style="font-family:monospace; color: #666;">&lt;/p&gt;</span>.  Tags that don&#8217;t have an enclosing tag, still need to close.  These are called empty elements, and the image tag is an example: <span style="font-family:monospace; color: #666;">&lt;img src=&#8221;dog.jpg&#8221; alt=&#8221;My Dog Skip&#8221; /&gt;</span></li>
<li><em>All tags should be written with lowercase characters.</em> This one is easy to implement.</li>
<li><em>Correctly nest your elements.</em> Certain tags are block level elements and others are inline.  The div tag (which stands for division) is a block-level element.  If you assign a background color to a div and put some content in there, the div will look like a box.  Links (or anchor tags) are inline.  You can wrap an anchor tag around a word in a paragraph, and it will stay &#8220;inline&#8221; with the rest of the text.  I have been tempted on occasion to wrap a link around a div, which is a no-no.  You shouldn&#8217;t nest block-level elements in inline tags.</li>
<li><em>Use encoded equivalents for &#8220;&amp;&#8221; and other special characters.</em> You&#8217;ve probably noticed a funny character when looking at some web pages and wondered what it is: ?.  It&#8217;s a white diamond in a black question mark and is called the Unicode Replacement Glyph.  To insure that all ampersands, quotation marks, dashes, etc. display properly, use their encoded equivalents.  If your authoring software doesn&#8217;t suggest a code, <a href="http://www.escapecodes.info/">check out this reference</a>.</li>
</ol>
<p>I don&#8217;t consider this an exhastive list on how to write proper XHTML because there are many ways to mess it up.  It does include some of the most important ideas and the most common errors.  Now go and fix all those pages you&#8217;ve made that have problems!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/valid-xhtml-for-good-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessibility: A Few Things Everyone Should Do</title>
		<link>http://www.pmamediagroup.com/2009/04/accessibility-a-few-things-everyone-should-do/</link>
		<comments>http://www.pmamediagroup.com/2009/04/accessibility-a-few-things-everyone-should-do/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 17:55:52 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=657</guid>
		<description><![CDATA[Creating web pages that are accessible for people with disabilities is also a step in the right direction for making your site user-friendly for the rest of your audience.  Observing your work from a different perspective will give you insights on how you can improve.  For instance, what does your page look like when style [...]]]></description>
			<content:encoded><![CDATA[<p>Creating web pages that are <strong>accessible for people with disabilities</strong> is also a step in the right direction for <strong>making your site user-friendly</strong> for the rest of your audience.  Observing your work from a different perspective will give you insights on how you can improve.  For instance, what does your page look like when style sheets or images are disabled?  What will your site sound like when read by screen reading software?  How does the page look when loaded on a mobile device?  There are a few simple things everyone can do to avoid acessability problems.</p>
<p><span id="more-657"></span>An <a href="http://redish.net/content/papers/interactions.html">excellent article</a> based on direct observation by Mary Theofanos and Janice Redish gives some great suggestions on how to improve accessibility.  Here is a partial summary of some of their ideas and a few of my own:</p>
<ul>
<li><em><strong>Write for the web.</strong></em> Screen readers begin reading at the begining of a section.  Those who use them scan web pages auditorily like sighten users scan with their eyes.  Place keywords at the begining of a line of text so they your users have the most important information first.</li>
<li><em><strong>Build a page with proper XHTML structure.</strong></em> The wonderful thing about semantic coding is that it makes sense in a hierarchy and provides structural context.  Even though your page may display differently, your markup should reflect what is most important to your user.</li>
<li><em><strong>Use proper CSS techniques.</strong></em> CSS is allows designers the freedom to display a page the way they&#8217;d like it seen, but is also allows a user the same luxury.  By employing CSS best-practices, you can maximize a users experience by letting them &#8220;see&#8221; a page that makes sense for them.</li>
<li><em><strong>Use alternative text for all images.</strong></em><em> </em>It always suprises me how many websites still don&#8217;t include alt text for images.  Crafting a perfect description for a complicated graphic may be a little tricky, but something is better than nothing.  If an image is purely decorative, it&#8217;s better to have an empty alt tag (i.e. alt=&#8221; &#8220;) so that the screen reader will ignore it.  Having appropriate alt text will improve your search engine ranking for images, which is reason enough to include it.</li>
<li><em><strong>Make content, especially forms, keyboard accessible.</strong></em> Tabbing through form fields is something a lot of people do. If you&#8217;ve ever watched a computer power user, they often don&#8217;t even touch their mouse, or they have one hand on the keyboard at all times.  Some people can&#8217;t use a mouse, so this one is very important.</li>
</ul>
<p>As your tools to create web pages become more sophisticated, you&#8217;ll find that accessibility will be a more integrated part of your workflow.  Being aware of the big ticket items will help you move forward in your goal to create amazing work for a global audience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/accessibility-a-few-things-everyone-should-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usability: The Least You Can Do</title>
		<link>http://www.pmamediagroup.com/2009/04/usability-the-least-you-can-do/</link>
		<comments>http://www.pmamediagroup.com/2009/04/usability-the-least-you-can-do/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 17:50:47 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=554</guid>
		<description><![CDATA[I recently read the very likable and popular book Don&#8217;t Make Me Think by Steve Krug.  I think it should be required reading for anyone who does anything with web design and development or software.  The author&#8217;s examples are clear, authoritative, and presented with humor, which makes cruising through this book enjoyable and interesting.  I can&#8217;t tell [...]]]></description>
			<content:encoded><![CDATA[<p>I recently read the very likable and popular book <em><a title="Sample Chapter" href="http://www.sensible.com/chapter.html">Don&#8217;t Make Me Think</a></em> by Steve Krug.  I think it should be required reading for anyone who does anything with web design and development or software.  The author&#8217;s examples are clear, authoritative, and presented with humor, which makes cruising through this book enjoyable and interesting.  I can&#8217;t tell you how many &#8220;Head Slappers&#8221; (to borrow Krug&#8217;s usage of the cliché) I experienced while reading.  So many of his ideas seem obvious, but are not common place yet.</p>
<p><span id="more-554"></span><br />
One of the most powerful, simple, and important suggestions he gives is how to conduct a usability test.  After reading the book and visiting his <a title="Steve Krug's website" href="http://www.sensible.com/">website</a>, I found a video of the author giving a workshop.  It is a very good overview of the book and includes a usability test demonstration.  I encourage you to <a href="http://network.businessofsoftware.org/video/steve-krug-on-the-least-you">watch the video</a> (or at least listen) and <a href="http://www.amazon.com/exec/obidos/ASIN/0321344758/ref=nosim/advancedcommonse">get the book</a> if you don&#8217;t already have it.</p>
<p><object width="550" height="438" data="http://blip.tv/play/Ad_LKZCcZQ" type="application/x-shockwave-flash"><param name="src" value="http://blip.tv/play/Ad_LKZCcZQ" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/usability-the-least-you-can-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: How to install/setup RSpec (and Factory Girl) in Rails</title>
		<link>http://www.pmamediagroup.com/2009/04/tutorial-install-rspec-rails-factory-girl/</link>
		<comments>http://www.pmamediagroup.com/2009/04/tutorial-install-rspec-rails-factory-girl/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 22:04:56 +0000</pubDate>
		<dc:creator>Alan Carl Mitchell</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[factory girl]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.pmamediagroup.com/?p=277</guid>
		<description><![CDATA[This tutorial assumes that you have ruby, rails, and mysql installed on your machine. This tutorial also doesn&#8217;t explain much about RSpec or Factory Girl and will just show you a quick way to get them working in a RoR environment.

 .code_div {   background:#000000;   color:#ffffff;   padding:10px;   margin:15px; [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial assumes that you have ruby, rails, and mysql installed on your machine. This tutorial also doesn&#8217;t explain much about <a href="http://rspec.info/">RSpec</a> or <a href="http://www.thoughtbot.com/projects/factory_girl/">Factory Girl</a> and will just show you a quick way to get them working in a RoR environment.</p>
<p><span id="more-277"></span></p>
<style> .code_div {   background:#000000;   color:#ffffff;   padding:10px;   margin:15px; }</style>
<style>  .step_number {   font-weight: bold;   font-size: 1.2em; } </style>
<style> .file_name_div {   font-weight: bold;   margin:15px; }  </style>
<p><span class="step_number">Create the Rails Project</span><br />
Go to your projects directory and create a rails project. Just for fun, let&#8217;s call it &#8216;bank&#8217;:</p>
<div class="code_div">user@host:~$ cd projects<br />
user@host:~/projects$ rails -d mysql bank<br />
user@host:~/projects$ cd bank<br />
user@host:~/projects/bank$</div>
<p><span class="step_number">Create MySQL Databases</span><br />
Go into mysql and create the two databases that rails has set up the bank project to use:</p>
<div class="code_div">user@host:~/projects/bank$ mysql -u root -p<br />
mysql&gt;create database bank_development<br />
mysql&gt;create database bank_test<br />
mysql&gt;exit<br />
Bye<br />
user@host:~/projects/bank$</div>
<p><span class="step_number">Put Gems Into Environments</span><br />
Edit the files</p>
<div class="file_name_div">config/environments/development.rb</div>
<p>and</p>
<div class="file_name_div">config/environments/test.rb:</div>
<p>and add the following lines:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">config.<span style="color:#9900CC;">gem</span> <span style="color:#996600;">&quot;thoughtbot-factory_girl&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:lib</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'factory_girl'</span>, <span style="color:#ff3333; font-weight:bold;">:source</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'http://gems.github.com'</span>
config.<span style="color:#9900CC;">gem</span> <span style="color:#996600;">&quot;rspec&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:version</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'1.2.2'</span>, <span style="color:#ff3333; font-weight:bold;">:lib</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'spec'</span>
config.<span style="color:#9900CC;">gem</span> <span style="color:#996600;">&quot;rspec-rails&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:version</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'1.2.2'</span>, <span style="color:#ff3333; font-weight:bold;">:lib</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">false</span></pre></div></div>

<p>This sets up the test and development environments to use rspec and factory girl.</p>
<p><span class="step_number">Install the Gems</span><br />
Install the gems referenced in your environments:</p>
<div class="code_div">user@host:~/projects/bank$ rake gems:install</div>
<p>You&#8217;ll see output that says that the gems were installed, if you didn&#8217;t have them already.</p>
<p><span class="step_number">Bootstrap RSpec</span><br />
Do a:</p>
<div class="code_div">user@host:~/projects/bank$ script/generate rspec</div>
<p>You will see the following:</p>
<div class="code_div">user@host:~/projects/bank$ script/generate rspec<br />
exists  lib/tasks<br />
create  lib/tasks/rspec.rake<br />
create  script/autospec<br />
create  script/spec<br />
create  script/spec_server<br />
create  spec<br />
create  spec/rcov.opts<br />
create  spec/spec.opts<br />
create  spec/spec_helper.rb<br />
user@host:~/projects/bank$</div>
<p>This generates some default rspec files and directories that the project will use.</p>
<p><span class="step_number">Generate Model, Test, and Migration with rspec_model</span><br />
Do a:</p>
<div class="code_div">user@host:~/projects/bank$ script/generate rspec_model BankAccount</div>
<p>You will see the following output:</p>
<div class="code_div">user@host:~/projects/bank$ script/generate rspec_model BankAccount<br />
exists  app/models/<br />
create  spec/models/<br />
create  spec/fixtures/<br />
create  app/models/bank_account.rb<br />
create  spec/models/bank_account_spec.rb<br />
create  spec/fixtures/bank_accounts.yml<br />
create  db/migrate<br />
create  db/migrate/20090402160952_create_bank_accounts.rb<br />
user@host:~/projects/bank$</div>
<p>This will create a default test at</p>
<div class="file_name_div">spec/models/bank_account_spec.rb</div>
<p>and a BankAccount model in</p>
<div class="file_name_div">app/models/bank_account.rb</div>
<p>and a migration in</p>
<div class="file_name_div">db/migrate/20090402160952_create_bank_accounts.rb</div>
<p>You can also do a script/generate rspec_scaffold BankAccount.</p>
<p><span class="step_number">Edit the Test</span><br />
Go to</p>
<div class="file_name_div">spec/models/bank_account_spec.rb</div>
<p>and you will see:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">expand_path</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">dirname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">'/../spec_helper'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
describe BankAccount <span style="color:#9966CC; font-weight:bold;">do</span>
  before<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:each</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    <span style="color:#0066ff; font-weight:bold;">@valid_attributes</span> = <span style="color:#006600; font-weight:bold;">&#123;</span>
    <span style="color:#006600; font-weight:bold;">&#125;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  it <span style="color:#996600;">&quot;should create a new instance given valid attributes&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    BankAccount.<span style="color:#9900CC;">create</span>!<span style="color:#006600; font-weight:bold;">&#40;</span>@valid_attributes<span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Since this is a bank account, one of the behaviors that we would expect is to be able to make deposits into it. That being the case, let&#8217;s change the test to</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">expand_path</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">dirname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">'/../spec_helper'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
describe BankAccount <span style="color:#9966CC; font-weight:bold;">do</span>
  before<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:each</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span> = BankAccount.<span style="color:#9900CC;">create</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span>.<span style="color:#9900CC;">balance</span> = <span style="color:#006666;">0</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  it <span style="color:#996600;">&quot;should increase the balance upon deposit&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span>.<span style="color:#9900CC;">deposit</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">100</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span>.<span style="color:#9900CC;">balance</span>.<span style="color:#9900CC;">should</span> == <span style="color:#006666;">100</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>Also, edit</p>
<div class="file_name_div">spec/spec.opts</div>
<p>and change &#8216;progress&#8217; to &#8217;specdoc&#8217; (because it will make rspec output look a lot better)</p>
<p><span class="step_number">Edit the Migration</span><br />
We need to add the &#8216;balance&#8217; attribute to the model. Go to</p>
<div class="file_name_div">db/migrate/20090402160952_create_bank_accounts</div>
<p>(or some file like that)</p>
<p>and change the migration to</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> CreateBankAccounts <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Migration</span>
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">up</span>
    create_table <span style="color:#ff3333; font-weight:bold;">:bank_accounts</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>t<span style="color:#006600; font-weight:bold;">|</span>
      t.<span style="color:#CC0066; font-weight:bold;">float</span> <span style="color:#ff3333; font-weight:bold;">:balance</span>
&nbsp;
      t.<span style="color:#9900CC;">timestamps</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">down</span>
    drop_table <span style="color:#ff3333; font-weight:bold;">:bank_accounts</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><span class="step_number">Edit the Model</span> Now we need to add the deposit method to the BankAccount model. Go to</p>
<div class="file_name_div">app/models/bank_account.rb</div>
<p>Change the class to</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> BankAccount <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> deposit<span style="color:#006600; font-weight:bold;">&#40;</span>amount<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">balance</span> = <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">balance</span> <span style="color:#006600; font-weight:bold;">+</span> amount
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><span class="step_number">Migrate the DB, Run RSpec</span> Now, do a</p>
<div class="code_div">user@host:~/projects/bank$ rake db:migrate</div>
<p>and then a</p>
<div class="code_div">user@host:~/projects/bank$ rake spec</div>
<p>You should see:</p>
<div class="code_div">user@host:~/projects/bank$ rake spec<br />
(in /home/osadmin/projects/bank_account/bank)</p>
<p>BankAccount<br />
<span style="color:green;">- should increase the balance upon deposit</span></p>
<p>Finished in 0.066398 seconds</p>
<p><span style="color:green;">1 example, 0 failures</span><br />
user@host:~/projects/bank$</div>
<p>At this point, RSpec is functioning.</p>
<p><span class="step_number">Add Factory Girl</span><br />
Want to add Factory Girl? The environments are already set up and gem is installed. The rest is not hard:</p>
<p>Create a &#8216;factories&#8217; directory under the &#8217;spec&#8217; directory.</p>
<div class="code_div">user@host:~/projects/bank$ mkdir spec/factories<br />
user@host:~/projects/bank$</div>
<p>and make the file</p>
<div class="file_name_div">spec/factories/bank_accounts.rb</div>
<p>and put this inside:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Factory.<span style="color:#9900CC;">define</span> <span style="color:#ff3333; font-weight:bold;">:bank_account</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>ba<span style="color:#006600; font-weight:bold;">|</span>
  ba.<span style="color:#9900CC;">add_attribute</span> <span style="color:#ff3333; font-weight:bold;">:balance</span>, <span style="color:#006666;">0</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><span class="step_number">Edit the Test</span><br />
Open</p>
<div class="file_name_div">spec/models/bank_account_spec.rb</div>
<p>Change the body of the before each block to</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#0066ff; font-weight:bold;">@bank_account</span> = Factory<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:bank_account</span>, <span style="color:#ff3333; font-weight:bold;">:balance</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Since the factory you just made (spec/factories/bank_accounts.rb) automatically sets the balance to 0, you could leave the body with just</p>
<p>@bank_account = Factory(:bank_account)</p>
<p>and it would still work.</p>
<p>The finished <span style="font-weight:bold;">spec/models/bank_account_spec.rb</span> will look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">expand_path</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">dirname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">__FILE__</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">'/../spec_helper'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
describe BankAccount <span style="color:#9966CC; font-weight:bold;">do</span>
  before<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:each</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span> = Factory<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:bank_account</span>, <span style="color:#ff3333; font-weight:bold;">:balance</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  it <span style="color:#996600;">&quot;should increase the balance upon deposit&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span>.<span style="color:#9900CC;">deposit</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">100</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0066ff; font-weight:bold;">@bank_account</span>.<span style="color:#9900CC;">balance</span>.<span style="color:#9900CC;">should</span> == <span style="color:#006666;">100</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><span class="step_number">Watch RSpec Run With Factory Girl</span><br />
Watch the test run with Factory Girl:</p>
<div class="code_div">user@host:~/projects/bank$ rake spec<br />
(in /home/osadmin/projects/bank_account/bank)</p>
<p>BankAccount<br />
<span style="color:green;">- should increase the balance upon deposit</span></p>
<p>Finished in 0.066398 seconds</p>
<p><span style="color:green;">1 example, 0 failures</span><br />
user@host:~/projects/bank$</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/tutorial-install-rspec-rails-factory-girl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to become a Web Designer</title>
		<link>http://www.pmamediagroup.com/2009/04/how-to-become-a-web-designer/</link>
		<comments>http://www.pmamediagroup.com/2009/04/how-to-become-a-web-designer/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 22:30:42 +0000</pubDate>
		<dc:creator>Mister Mc</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://www2.pmamediagroup.com/?p=109</guid>
		<description><![CDATA[2009 is a great time to start a career as a web designer.  Learning about the web on the web is a great way to get and keep your feet wet, but don't be afraid of books.  It's sometimes nice to look at something other than a screen.]]></description>
			<content:encoded><![CDATA[<p>Web design is a surprisingly healthy discipline considering the fact that the web is a very new medium.  My journey into a career as a designer was not a direct one, by any means.  In fact many of the more famous web-design luminaries really only began their careers on the web sometime within the last ten years.  As you might expect, many people who design websites studied graphic design or a related discipline in school.  On the other hand, a whole bunch of people like me either studied other things, or didn&#8217;t go to a post-secondary school at all.  My personal opinion is that there isn&#8217;t a perfect path to becoming a web designer.  In fact, the diversity of backgrounds of people working in the field can only result in more powerful and interesting solutions for new design opportunities.</p>
<p><span id="more-109"></span></p>
<p>The wonderful thing about web design is that it&#8217;s flexible and growing.  You can build a site wearing your pajamas in your home at 3:00 am, or work 9 to 5 at a day job.  Even in a shaky economy, every business needs a website.  In fact, most start-up companies get their website up and running before they print business cards (if they print any at all).</p>
<p>You&#8217;ll find that most web designers are self taught.  This is a good thing because a web designer needs to know how to self direct their learning because the learning never stops.  I&#8217;ve done a little searching on the sites of universities in my area, and have found individual courses in web related subjects, but not a cohesive program pulling these classes together.  Learning about the web on the web is obviously one of the best ways to learn new tricks and tips.  On the other hand, the really useful content is strung across innumerable blog posts, so this may be tricky way to get grounded.  I highly recommend picking up a well written book on the fundamentals of CSS and XHTML.  My personal favorite is <a href="http://www.stylinwithcss.com/"><em>Stylin&#8217; with CSS</em></a>, by Charles Wyke-Smith.  It is written in an easy-to-read manner and contains many helpful visual examples (not to mention free code samples on the website).  I also recommend <a href="http://www.cssmastery.com/"><em>CSS Mastery</em></a>, by Andy Budd, Simon Collison, and Cameron Moll, for those who already have some familiarity with the basics.</p>
<p>Once you have a solid starting point, dive in there and start coding your ideas.  May I also suggest a couple online magazines about web design to keep those creative juices flowing.  A couple that I like are <a href="http://www.smashingmagazine.com/">Smashing Magazine</a> and <a href="http://www.alistapart.com/">A List Apart</a>.</p>
<p>It&#8217;s an exciting time for designers.  Web standards are widely recognized and are now being implemented.  If you are just starting, you hopefully won&#8217;t have to worry too much about IE6, as <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx">IE8</a> was just released last month.  Designing for the web isn&#8217;t restricted to designing for a computer monitor anymore as more and more mobile devices are literally in consumers hands.  To state the obvious, the web is a very social place.  I&#8217;d say the one commonly agreed upon characteristic applied to the term Web 2.0 is interactivity.  Most web savy folks not only want to teach you what they know, but tell you all about their kids and hobbies.  On the average designer&#8217;s blog, you find many tutorials on styling techniques, not to mention links to <a href="http://www.flickr.com/">flickr</a> photos, <a href="http://twitter.com/">twitter</a> tweets, or a <a href="http://www.facebook.com/">facebook</a> profile.</p>
<p>Learning how to create for the web has never been easier.  Make friends, work hard, and you&#8217;ll see amazing results.<br />
<strong><br />
Update 5/5/2009:</strong> I discovered a couple more good resources for web design education.  <a href="http://aarronwalter.com/">Aaron Walter</a> posted a great article about <a title="Brither Horizons for Web Education" href="http://www.alistapart.com/articles/brighter-horizons-for-web-education/">Web Education on A List Apart</a>.  I&#8217;m personally pretty excited about the <a href="http://www.opera.com/wsc/">Opera Web Standards Curriculum</a> (Opera WSC), and have reviewed a few of the articles.  I also really love <a href="http://www.lynda.com/">lynda.com</a> and loads of video tutorials.  There are some great resources available for the web designer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pmamediagroup.com/2009/04/how-to-become-a-web-designer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: www.pmamediagroup.com @ 2012-02-08 16:37:47 -->
