<?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>Design, Development, and Consulting</title>
	<atom:link href="http://netlumination.com/feed" rel="self" type="application/rss+xml" />
	<link>http://netlumination.com</link>
	<description>A web design, development, and consulting firm based in Portland, Oregon helping small businesseses and individuals.</description>
	<lastBuildDate>Fri, 05 Mar 2010 22:53:51 +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>Creating Simple Animations With Javascript</title>
		<link>http://netlumination.com/blog/creating-simple-animations-with-javascript</link>
		<comments>http://netlumination.com/blog/creating-simple-animations-with-javascript#comments</comments>
		<pubDate>Fri, 16 Oct 2009 04:49:21 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[loop]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[timer]]></category>

		<guid isPermaLink="false">http://netlumination.com/?p=535</guid>
		<description><![CDATA[This is a basic JavaScript tutorial. I will describe how to move an element around the page using a simple animation script. The element you move around the page can be anything from an image to a paragraph.
Below is a working example:
// 200) { directionBall=-1; }
  if (0>distanceBall) { directionBall=1; }
  timerToggle=setTimeout("animateBall()",10);
}
function checkButton() [...]]]></description>
			<content:encoded><![CDATA[<p>This is a basic JavaScript tutorial. I will describe how to move an element around the page using a simple animation script. The element you move around the page can be anything from an image to a paragraph.</p>
<p>Below is a working example:</p>
<p><script type="text/javascript">// <![CDATA[
   var distanceBall=0; var directionBall=1; var timerToggle=null; function animateBall() {   document.getElementById("basketball").style.top=distanceBall + "px";   distanceBall+=directionBall;   if (distanceBall>200) { directionBall=-1; }
  if (0>distanceBall) { directionBall=1; }
  timerToggle=setTimeout("animateBall()",10);
}
function checkButton() {
  if (document.getElementById("ballButton").value=="Animate Basketball") {
    document.getElementById("ballButton").value="Stop Basketball";
    animateBall();
  } else {
    document.getElementById("ballButton").value="Animate Basketball";
    clearTimeout(timerToggle);
  }
}
// ]]&gt;</script></p>
<input id="ballButton" onclick="checkButton()" type="button" value="Animate Basketball" />
<div id="basketball" style="position:relative"><img src="http://netlumination.com/wp-content/uploads/2009/10/Basketball_64x64-1.png" alt="Basketball" /></div>
<p><span id="more-535"></span></p>
<h3>Quick Update: A lot of this can be done slightly simpler with setInterval() instead of setTimeout(). <a href="http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/"></h3>
<p>Here&#8217;s an article that discusses the two.</a></p>
<h3>Table of Contents:</h3>
<ol>
<li><a href="#Introduction">Introduction</a></li>
<li><a href="#Starting">Starting and stopping the animation using checkButton()</a></li>
<li><a href="#Moving">Moving the ball image using animateBall()</a></li>
<li><a href="#References">References</a></li>
<li><a href="#Conclusion">Conclusion</a></li>
</ol>
<h2><a name="Introduction"></a>Introduction</h2>
<p>Here is the code that makes the ball move. For the rest of this post, I&#8217;ll go over the basic ideas required to put the code together and how the specific code works:</p>
<blockquote><p>&lt;script type=&#8221;text/javascript&#8221;&gt;&lt;!&#8211;</p>
<p>var distanceBall=0; var directionBall=1; var timerToggle=null;</p>
<p>function animateBall() {</p>
<p>distanceBall+=directionBall;</p>
<p>document.getElementById(&#8220;basketball&#8221;).style.top=distanceBall + &#8220;px&#8221;;</p>
<p>if (distanceBall&gt;200) {directionBall=-1; }</p>
<p>if (distanceBall&lt;0) { directionBall=1; }</p>
<p>timerToggle=setTimeout(&#8220;animateBall()&#8221;,10);</p>
<p>}</p>
<p>function checkButton()</p>
<p>{</p>
<p>if (document.getElementById(&#8220;ballButton&#8221;).value==&#8221;Animate Basketball&#8221;) {</p>
<p>document.getElementById(&#8220;ballButton&#8221;).value=&#8221;Stop Basketball&#8221;;</p>
<p>animateBall();</p>
<p>} else {</p>
<p>document.getElementById(&#8220;ballButton&#8221;).value=&#8221;Animate Basketball&#8221;;</p>
<p>clearTimeout(timerToggle);</p>
<p>}</p>
<p>}</p>
<p>//&#8211;&gt;&lt;/script&gt;</p>
<p>&lt;input id=&#8221;ballButton&#8221; onclick=&#8221;checkButton()&#8221; type=&#8221;button&#8221; value=&#8221;Animate Basketball&#8221; /&gt;</p>
<p>&lt;div id=&#8221;basketball&#8221; style=&#8221;position:relative&#8221;&gt;&lt;img src=&#8221;http://netlumination.com/wp-content/uploads/2009/10/Basketball_64&#215;64-1.png&#8221; alt=&#8221;Basketball&#8221; /&gt;&lt;/div&gt;</p></blockquote>
<p>There are two functions in this script, animateBall() and checkButton(). animateBall() is what makes the basketball image move. checkButton() starts and stops the ball. Let&#8217;s start by going over checkButton(), since that is the function that is called if the viewer presses the &#8220;Animate Basketball&#8221; button.</p>
<p><script type="text/javascript">// <![CDATA[
   google_ad_client = "pub-4166122661117213"; /* 336x280, created 4/27/09 */ google_ad_slot = "9673694336"; google_ad_width = 336; google_ad_height = 280;
// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<h2><a name="Starting"></a>Starting and stopping the animation using checkButton()</h2>
<p>Whenever you create an animation, or any sort of constantly running JavaScript, it&#8217;s considerate to allow the viewer to stop the script somehow. This is done using the checkButton function. The checkButton function also starts the script running, so it serves a dual purpose.</p>
<blockquote><p>function checkButton()</p>
<p>{</p>
<p>if (document.getElementById(&#8220;ballButton&#8221;).value==&#8221;Animate Basketball&#8221;) {</p>
<p>document.getElementById(&#8220;ballButton&#8221;).value=&#8221;Stop Basketball&#8221;;</p>
<p>animateBall();</p>
<p>} else {</p>
<p>document.getElementById(&#8220;ballButton&#8221;).value=&#8221;Animate Basketball&#8221;;</p>
<p>clearTimeout(timerToggle);</p>
<p>}</p></blockquote>
<p>The checkButton function checks what the input button says and does  one of two things based upon what the button reads. Looking at the HTML of the INPUT button, you can see that the INPUT button has the ID of &#8220;ballButton.&#8221; So, we can use document.getElementById(”ballButton”).value to access the words on the button. Accessing  HTML elements, their attributes, and inline CSS styles on a web page with Javascript can be done using the Document Object Model (DOM). <a href="http://www.javascriptkit.com/domref/">Here</a> and <a href="http://www.w3schools.com/jsref/default.asp">here</a> are two easy to use references for the DOM.</p>
<p>checkButton() first replaces the words in the button. If the button reads, &#8220;Animate Basketball&#8221; it writes in &#8220;Stop Basketball&#8221; instead. We know the button can only read one of two things, so we use the <a href="http://www.w3schools.com/js/js_if_else.asp">ELSE statement</a> to set the INPUT BUTTON to &#8220;Animate Basketball&#8221; if it doesn&#8217;t already say that. So one of the things the IF, ELSE statement does is toggle the INPUT BUTTON between &#8220;Animate Basketball&#8221; and &#8220;Stop Basketball&#8221;</p>
<p>There is a second line after the writing on the button is changed. If the button read &#8220;Animate Basketball&#8221; then the function animateBall is called. This gets the ball moving.</p>
<p>If the button read &#8220;Stop Basketball,&#8221; the ELSE statement, then the ball is stopped using clearTimeout. I&#8217;ll go over how clearTimeout works later. For now it&#8217;s just important to understand that checkButton simply functions as a toggle that does two things whenever it&#8217;s called. First, it changes the writing on the INPUT button. Second, it either starts or stops the basketball image moving.</p>
<p>Let&#8217;s look at how the basketball image is moved when checkButton() calls the animateBall function.</p>
<h2><a name="Moving"></a>Moving the ball image using animateBall()</h2>
<p>This is the heart of the animation, and what&#8217;s startling is how few lines it takes to animate something with JavaScript.</p>
<p>Essentially what we want to do is move the DIV containing the basketball image small steps at a time. This requires two things: physical movement of the DIV and a time increment in which this movement will be done.</p>
<blockquote><p>var distanceBall=0; var directionBall=1; var timerToggle=null;</p>
<p>function animateBall() {</p>
<p>distanceBall+=directionBall;</p>
<p>document.getElementById(&#8220;basketball&#8221;).style.top=distanceBall + &#8220;px&#8221;;</p>
<p>if (distanceBall&gt;200) {directionBall=-1; }</p>
<p>if (distanceBall&lt;0) { directionBall=1; }</p>
<p>timerToggle=setTimeout(&#8220;animateBall()&#8221;,10);</p>
<p>}</p></blockquote>
<p>If you look at the HTML, you&#8217;ll see that the basketball image is in a div with the ID &#8220;basketball&#8221; and the it&#8217;s CSS style of postion is set to RELATIVE. It&#8217;s important to set the position to RELATIVE, since that means that we can use the TOP or LEFT CSS styles to change the position of the DIV relative to where you see it when the image loads.</p>
<blockquote><p>&lt;div id=&#8221;basketball&#8221; style=&#8221;position:relative&#8221;&gt;&lt;img src=&#8221;http://netlumination.com/wp-content/uploads/2009/10/Basketball_64&#215;64-1.png&#8221; alt=&#8221;Basketball&#8221; /&gt;&lt;/div&gt;</p></blockquote>
<p>There are three variables that the animateBall function uses. The first is distanceBall. distanceBall is how many pixels the TOP CSS property of the DIV with the basketball image in it is set to. So distanceBall will control where the image is displayed. directionBall will control whether the image is moving up or down. We need this so that the image doesn&#8217;t wander too far away. Finally the timerToggle variable will allow us to stop the ball from moving. This is done as a courtesy to the viewer.</p>
<p>The first line of the animateBall function adds directionBall to distanceBall. Initially directionBall is 1, so this simply adds 1 to distanceBall.</p>
<p>Next we display the DIV containing the basketball image at this new location. We use the HTML DOM objects to reference the DIV. We know the DIV has an ID of &#8220;basketball&#8221;. This makes it easy to pick out from all the other elements on the page by writing document.getElementById(&#8220;basketball&#8221;). Now to specifically target the CSS TOP style we&#8217;ll use document.getElementById(&#8220;basketball&#8221;).style.top. The top property can be read from the browser or it can be written to. In other words we can change it. It&#8217;s almost as simple as setting it equal to distanceBall. The only trick part is that TOP has units. We&#8217;ll use pixels, so me must concatenate &#8220;px&#8221; to the end of the number. We do this using the + <a href="http://jennifermadden.com/javascript/concatenation.html">string operator</a>.</p>
<p>So with just two lines of code we&#8217;ve moved the DIV one pixel. The next two lines, the two if statements, check if the DIV is at a TOP greater than 200 or less than 0. If it is, it reverses the direction of movement, so that the ball ends up bouncing up and down 200 pixels. Here is an alternative way to write those two lines as one line (to understand the codes look at this page on <a href="http://www.w3schools.com/JS/js_comparisons.asp">JavaScript comparison and logical operators</a>):</p>
<blockquote><p>if(distanceBall&gt;200 || distanceBall&lt;0){directionBall*=-1;}</p></blockquote>
<p>Anyway, this all looks great so far, but we&#8217;ve only moved the ball one pixel. We have to repeat this movement every few moments. This would be very easy if there was a function to pause a JavaScript program, but there isn&#8217;t, and trying to make a custom function to do this can end up with very messy results. There is, however, a way to tell JavaScript to do an action in a set amount of time. It&#8217;s like setting an alarm clock. It&#8217;s called setTimeout() and here is how it works:</p>
<blockquote><p>setTimeout( [What to do] , [How long to wait] );</p></blockquote>
<p>It&#8217;s important to realize that when you use setTimeout(), Javascript will keep evaluating the lines below setTimeout immediately. It does not pause. It&#8217;s like setting an alarm and keeping right on going, now with the alarm timer ticking in the background.</p>
<p>The way to use setTimeout in our animation function is to use it as the last line, and have it call our animation function itself. Like this:</p>
<blockquote><p>function animateBall() {</p>
<p>[ move ball one increment and show it at its new location ]</p>
<p>setTimeout( animateBall , 10 );</p>
<p>}</p></blockquote>
<p>This will perform the animateBall() function once every 10 milliseconds, since setTimeout measures time in milliseconds. It&#8217;s important that animateBall is not a for, while, or do loop, since setTimeout does not pause the execution of the script.</p>
<p>Now that we have the ball going, how can we make it stop? The way to stop the animation and the ball is to somehow get setTimeout() to stop firing.</p>
<p>You&#8217;ll notice that the variable timerToggle is set equal to setTimeout() in the animateBall funciton. This may look confusing, since it&#8217;s not immediately apparent what sort of variable timerToggle is. Well, timerToggle simply allows us to keep track of the specific timer we used for the animation, so that we can stop it by using clearTimeout().</p>
<p>To stop a timer we&#8217;ll use clearTimeout(). The only thing we have to do is tell the browser which timer we want to stop. Luckily this is what the timerToggle variable is for, so clearTimeout(timerToggle) will stop the ball from moving.</p>
<p>clearTimeout() is not in the animateBall function, it is in the checkButton function. This is because clearTimeout is called if the viewer presses the button while the ball is moving.</p>
<p><script type="text/javascript">// <![CDATA[
   google_ad_client = "pub-4166122661117213"; /* 336x280, created 4/27/09 */ google_ad_slot = "9673694336"; google_ad_width = 336; google_ad_height = 280;
// ]]&gt;</script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
</script></p>
<h2><a name="Conclusion"></a>Conclusion</h2>
<p>Ok, so that&#8217;s it. You can animate a DIV on your page using one simple function, and you can stop and start the animation using a second function.</p>
<p>Remember that we are moving the DIV with the image inside. This means we could also put other things in the DIV like a paragraph, form, list, etc.</p>
<p>You should always consider the pros and cons of using animations on your page. As anyone who has sat through a few Power Point presentation knows, it is easy to go overboard with animations (and sound effects, but that&#8217;s another matter).</p>
<p>However, if you can link the animation to the content of your page, it may be well worth using it. For example, if you have a site about food, you could style the logo of your page to slide onto the page like a platter of food being served. Again, this can be done elegantly or it can be easily overdone. Additionally animation and interactivity (like the ability to start and stop the animation) is the seed of video games and interactive art.</p>
<h2><a name="References"></a>References</h2>
<p><a href="http://www.chipchapin.com/WebTools/JavaScript/exampleA01.html">Tutorial on JavaScript animation</a></p>
<p><a href="http://www.w3schools.com/jS/js_operators.asp">Javascript operators</a></p>
<p><a href="http://www.java2s.com/Code/JavaScriptReference/Javascript-Methods/CatalogJavascript-Methods.htm">Javascript methods</a></p>
<p><a href="http://www.javascriptkit.com/domref/index.shtml">Javascript DOM reference</a></p>
<p><a href="http://www.w3schools.com/jsref/default.asp">Javascript DOM reference</a></p>
<p><a href="http://www.iconspedia.com/icon/basketball-ball-438-.html">Basketball Image</a></p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/creating-simple-animations-with-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Initial preferences for Photoshop</title>
		<link>http://netlumination.com/blog/initial-preferences-for-photoshop</link>
		<comments>http://netlumination.com/blog/initial-preferences-for-photoshop#comments</comments>
		<pubDate>Sat, 09 May 2009 22:42:34 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[options]]></category>
		<category><![CDATA[preferences]]></category>
		<category><![CDATA[set up]]></category>

		<guid isPermaLink="false">http://netlumination.com/?p=413</guid>
		<description><![CDATA[This is a quick post about some of the things I have found to be most important when you initially set up your Photoshop preferfences.

Keyboard Shortcuts
I&#8217;ll be making references to many keyboard shortcuts in my tutorials, and one of the easiest ways to become faster and more efficient with Photoshop is to make use of [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick post about some of the things I have found to be most important when you initially set up your Photoshop preferfences.</p>
<p><span id="more-413"></span></p>
<h2>Keyboard Shortcuts</h2>
<p>I&#8217;ll be making references to many keyboard shortcuts in my tutorials, and one of the easiest ways to become faster and more efficient with Photoshop is to make use of these shortcuts&#8230; One of the main advantages to using Photoshop in a photography or design project is that it will save you time, and thus money. Keyboard shortcuts can maximize this efficiency. Additionally, I find it more relaxing to use keyboard shortcuts to switch tools, since moving my mouse, and hence my eyes, away from the image to the toolbar interrupts my thought process. Finally, you&#8217;ll be able to impress maybe one out of every 10 or 20 people by using keyboard shortcuts.</p>
<p>To look at how your keyboard shortcuts are set up, and to change them, go to Edit » Keyboard Shortcuts&#8230; ( Alt + Shift + Ctr + K ).</p>
<p>A useful way to look at all the shortcuts is to click on the Summarize button in the Keybaord Shortcuts and Menus panel. This will create an .htm page that you can save for reference with all the shortcuts on it.</p>
<p>You&#8217;ll usually be interested in mostly the shortcuts for using the tools, and these can be in the drop down menu of Shortcuts For.</p>
<p><img class="aligncenter size-full wp-image-414" title="shortcuts" src="http://netlumination.com/wp-content/uploads/2009/05/shortcuts.jpg" alt="shortcuts" width="440" height="342" /></p>
<p>You can edit the existing shortcuts and create new ones by clicking on the Command you want to change. Make sure to save you changes as a .kys file. To do this click on the disc icon to the right of the Set drop down menu.</p>
<p><img class="aligncenter size-full wp-image-415" title="edit-shortcuts" src="http://netlumination.com/wp-content/uploads/2009/05/edit-shortcuts.jpg" alt="edit-shortcuts" width="440" height="342" /></p>
<p>If you look through the shortcuts, one thing you’ll notice is that several tools can have the same shortcuts. Tools that have the same shortcut can be toggled through by hitting the applicable shortcut key multiple times. You may find that you cannot toggle through the tools in this manner. If this is true for you, try hitting Shift + the shortcut to toggle through those tools. Whether you simply hit the shortcut key or have the hit Shift + shortcut to toggle through the tools is a choice for you. You can change this setting by going to Edit » Preferences » General… ( Ctr + K ). Use the, “Use Shift Key for Tool Switch” option.</p>
<p><img class="aligncenter size-full wp-image-416" title="shift-key" src="http://netlumination.com/wp-content/uploads/2009/05/shift-key.jpg" alt="shift-key" width="440" height="248" /></p>
<h2>Color Management</h2>
<p>You want the color on the screen in Photo Shop to match the color the viewer sees. Whether the viewer is looking at your web site on a computer screen or at a photograph in a brochure or greeting card after it’s been printed.</p>
<p>Color setting are found under Edit » Color Settings… ( Shift + Ctr + K ). Color management can become an involved topic, especially if you are printing, but in general for web work you should use sRGB and for printing Adobe RGB (1998).<span>  </span>If you use the wrong color space for making web graphics, you’ll notice that the colors you see on the screen in Photoshop don’t match the colors you see on the screen when you look at the images on you website.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<h2>The Workspace</h2>
<p>The Photoshop workspace is highly customizable. You can move the panels and tool bars around to configure things as you like. You shouldn’t be afraid to experiment. This is because you can save your current workspace as well as easily revert to the default workspace Photoshop came with. After you’ve moved the panels around to your liking, you can save your workspace by going to Window » Workspace » Save Workspace.</p>
<p>If you want to revert to the default workspace just select Window » Workspace » Default Workspace. Reverting to the default workspace can be especially useful if you are following a tutorial or book and you cannot see a panel that is being referenced.</p>
<h2>Brush and Other Tool Resets</h2>
<p>While working with Photoshop you will sometimes create your own brushes, delete or modify existing brushes, or change your choice of brushes in other ways. To get back to the default group of brushes Photoshop came with simple go to the brushes panel ( F5 ) or Windows » Brushes. In the brushes panel click on the top right drop down menu and choose Reset Brushes&#8230;</p>
<p>You can reset many of the other panels in the exact same way.</p>
<p>The knowledge that you can easilly get back to the original configuration of Photoshop should allow you to experiment more with the settings.</p>
<p>There a many other ways to customize your Photoshop, but I wanted to review several of the methods that I have found the most useful and important.</p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/initial-preferences-for-photoshop/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Multiple Loops in Wordpress with query_posts() and get_categories()</title>
		<link>http://netlumination.com/blog/using-multiple-loops-in-wordpress-with-query_posts-and-get_categories</link>
		<comments>http://netlumination.com/blog/using-multiple-loops-in-wordpress-with-query_posts-and-get_categories#comments</comments>
		<pubDate>Tue, 05 May 2009 20:12:53 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Category]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[get_categories]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[query_posts]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[The Loop]]></category>

		<guid isPermaLink="false">http://netlumination.com/?p=390</guid>
		<description><![CDATA[This is a tutorial to demonstrate how to show entire posts from multiple categories in Wordpress. This would be especially useful for blogs that contain very short posts like a photo with a short description. This is a very simple problem and solution, but I didn&#8217;t find many posts describing how to do it, so [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tutorial to demonstrate how to show entire posts from multiple categories in Wordpress. This would be especially useful for blogs that contain very short posts like a photo with a short description. This is a very simple problem and solution, but I didn&#8217;t find many posts describing how to do it, so I thought it may help a few people out.</p>
<p>In some blogs, it can be useful to show entire posts from multiple categories on one page. For instance for a recipe blog you may want to list the name of each of your recipe categories and the recipes in each of those categories. This would look something like:</p>
<ul>
<li>Breakfast Recipes
<ul>
<li>[Eggs Benedicts Recipe Post]</li>
<li>[Pancakes Recipe Post]</li>
</ul>
</li>
<li>Lunch Recipes
<ul>
<li>[Grilled Cheese Sandwish Recipe Post]</li>
</ul>
</li>
<li>Dinner Recipes
<ul>
<li>[Fettucini Alfredo Recipe Post]</li>
<li>[Lasagna Recipe Post]</li>
</ul>
</li>
</ul>
<p><span id="more-390"></span>Wordpress uses <a href="http://codex.wordpress.org/The_Loop">The Loop</a> to display posts. In this case we want to first retrieve all the categories from the database, then we want to cycle through each category and use The Loop to display all the posts in that category.</p>
<p>For most pages on your Wordpress site, the url of the page will contain a query string which will dictate which posts are shown with The Loop. We can overide any existing query string using the <a href="http://codex.wordpress.org/Template_Tags/query_posts">query_posts()</a> function to display the specific posts we want. The nice thing is that we can use the <a href="http://codex.wordpress.org/Template_Tags/query_posts">query_posts()</a> function multiple times in order to run The Loop multiple times on the same page.</p>
<p>There are several ways of using <a href="http://codex.wordpress.org/The_Loop#Multiple_Loops">multiple Loops</a> in Wordpress. With using multiple query_posts, the only trick is that you should save and reset the original query for the page. This is so that later down the page (like in the Sidebar) you can use all the functions that apply to the page you&#8217;re on and not on the last query_post you performed. The query is stored in $wp_query, so we can use <code>&lt;?php $temp_query = $wp_query; ?&gt;</code> before the Loops to save the query, and we can use <code>&lt;?php $wp_query = $temp_query; ?&gt;</code> at the end of the Loops to retrieve it. This is like in Multiple Loops Example 2 from <a href="http://codex.wordpress.org/The_Loop#Multiple_Loops">The Loops Wordpress page</a>.</p>
<p>There are basically two important parts of this loop. First we must create an array that lists all the categories. Then we cycle through that array and retrieve all the posts from each category, one category at a time. To create an array of all the categories we&#8217;ll use <a href="http://codex.wordpress.org/Function_Reference/get_categories">get_categories()</a>. This simply returns an array with all the categories. Now, this array has a lot of information associated with it. To get an idea of what it looks like you can always print the array out in readable form with <code>&lt;?php print_r( get_categories() ); ?&gt;</code> . There&#8217;s information like the name and category ID for each category. We&#8217;ll make use of those.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<p>To show the posts in a category we have to use query_posts and an identifying characteristic of the category we want. The name of the category isn&#8217;t always the best solution. For example if you have a category called, &#8220;Breakfast &amp; Juices,&#8221; the ampersand will trip the PHP up, so we&#8217;ll just use the ID number of the category. If we make our category array like this: <code>&lt;?php $categories=get_categories(); ?&gt;</code> . Then we can retrieve the category ID from the created array with <code>category-&gt;cat_ID</code>. We can retrieve the name of the category with <code>$category-&gt;name</code>.</p>
<p>Finally, putting everything together we get:</p>
<blockquote><p><code>&lt;?php $temp_query = $wp_query; ?&gt;<br />
  &lt;?php $categories=get_categories();<br />
  foreach($categories as $category)<br />
  { ?&gt;<br />
    &lt;h2&gt;&lt;?php echo($category-&gt;name); ?&gt;&lt;/h2&gt;<br />
    &lt;?php query_posts("cat=$category-&gt;cat_ID"); ?&gt;<br />
    &lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;<br />
      [ YOUR POST DISPLAYING CODE GOES HERE ]<br />
    &lt;?php endwhile; endif; ?&gt;<br />
  } ?&gt;<br />
&lt;?php $wp_query = $temp_query; ?&gt;</code></p></blockquote>
<p>If you want to see what happens if you don&#8217;t reassign the original query just remove the last line. It will probably make your sidebar say something odd&#8230; though the particulars will depend on the theme you&#8217;re using.</p>
<p>This solution will work if you do not have child categories. If you do have child categories (an example would be Ice Cream category in the Deserts parent category), then you will get repetition of posts, since this will display all the posts from all parent categories then the posts for child categories. There are several ways to resolve this. The simplest way is to only display parent categories and not child categories. To do this we must check if a category is a child before we display it&#8217;s posts. To do this we&#8217;ll use <code>$category-&gt;parent</code>. This returns the parent of the category. If it returns nothing, or false, we know that the category is not a child but a parent. We&#8217;ll put an if statement that only proceeds if there is no parent of the category inside the foreach loop. Here we go:</p>
<blockquote><p><code>&lt;?php $temp_query = $wp_query; ?&gt;<br />
&lt;?php $categories=get_categories();<br />
foreach($categories as $category)<br />
{<br />
  if(!$category-&gt;parent)<br />
  { ?&gt;<br />
    &lt;h2&gt;&lt;?php echo($category-&gt;name); ?&gt;&lt;/h2&gt;<br />
    &lt;?php query_posts("cat=$category-&gt;cat_ID"); ?&gt;<br />
    &lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;<br />
      [ YOUR POST DISPLAYING CODE GOES HERE ]<br />
    &lt;?php endwhile; endif; ?&gt;<br />
  } ?&gt;<br />
}<br />
&lt;?php $wp_query = $temp_query; ?&gt;</code></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/using-multiple-loops-in-wordpress-with-query_posts-and-get_categories/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Vanishing Point Filter in Photoshop</title>
		<link>http://netlumination.com/blog/the-vanishing-point-filter-in-photoshop</link>
		<comments>http://netlumination.com/blog/the-vanishing-point-filter-in-photoshop#comments</comments>
		<pubDate>Sat, 02 May 2009 00:51:50 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[perspective]]></category>
		<category><![CDATA[photo retouching]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vanishing point filter]]></category>

		<guid isPermaLink="false">http://netlumination.com/?p=351</guid>
		<description><![CDATA[In this Photoshop tutuorial I&#8217;ll discuss the many uses of the vanishing point filter. You can use this tool to place labels on bottles and jars, to add or remove windows and doors from buildings, and in general, to transform the perspective of an object to fit into your photo.
As an example I&#8217;ll show you [...]]]></description>
			<content:encoded><![CDATA[<p>In this Photoshop tutuorial I&#8217;ll discuss the many uses of the vanishing point filter. You can use this tool to place labels on bottles and jars, to add or remove windows and doors from buildings, and in general, to transform the perspective of an object to fit into your photo.</p>
<p>As an example I&#8217;ll show you how to end up with a photo like this:</p>
<p><img class="aligncenter size-full wp-image-353" title="vanishing-point-pic" src="http://netlumination.com/wp-content/uploads/2009/04/vanishing-point1.jpg" alt="vanishing-point-pic" width="440" height="293" /></p>
<p>Starting with this:</p>
<p><img class="aligncenter size-full wp-image-354" title="flat-labels" src="http://netlumination.com/wp-content/uploads/2009/04/flat-labels.jpg" alt="flat-labels" width="440" height="293" /><span id="more-351"></span></p>
<h3>Table of contents -</h3>
<ol>
<li><a href="#Prepare-Vanishing">Preparing to use the filter</a></li>
<li><a href="#Setting-Filter">Using the vanishing point filter &#8211; setting up the perspective plane</a></li>
<li><a href="#Extending-Plane">Using the vanishing point filter &#8211; extending the original plane</a></li>
<li><a href="#Add-Content">Adding content to the perspective plane</a></li>
<li><a href="#End-Vanishing">Finishing touches with the Burn and Dodge tools</a></li>
</ol>
<p>I&#8217;ll go through the steps of how to add the middle label to the jar.</p>
<h2><a name="Prepare-Vanishing">Preparing to use the filter</a></h2>
<p>The first thing we have to do is make sure we have each of our labels in a separate individual layer or file. Before starting to use the vanishing point filter, you should copy the label you want to use into the clip board. To do this Ctr + Click on the thumbnail of the label layer you want to use. This will ensure that only the label is selected. Now hit Ctr + C to copy the label into your clip board. We have to do this, so we later can paste the label in the vanishing point tool.</p>
<p><img class="aligncenter size-full wp-image-356" title="click-label1" src="http://netlumination.com/wp-content/uploads/2009/04/click-label1.jpg" alt="click-label1" width="440" height="192" /></p>
<p>The vanishing point filter will create a grid that represents the three dimensional shape of an object in the photo. We should put this grid on a new layer. Create a new empty layer directly above your photo. In my case, I clicked on the layer of the photo of my jars and hit Shift + Ctr + N. Hit Ctr+D to clear any selections. This will not clear your clipboard from your ability to paste, but it will ensure that you do not accidentally use the Vanishing Point Filter on just a limited area of your photo.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<p>Now make all the layers except your main photo layer invisible. You can do this by Alt + clickinig on the eyeball in your main photo layer. This will show only that layer. It is easier to use the vanishing point filter without things obscuring your view.  </p>
<p><img class="aligncenter size-full wp-image-357" title="new-layer" src="http://netlumination.com/wp-content/uploads/2009/04/new-layer.jpg" alt="new-layer" width="222" height="118" /></p>
<h2><a name="Setting-Filter">Using the vanishing point filter &#8211; setting up the perspective plane</a></h2>
<p>Now, while we have the new layer active, we&#8217;ll begin using the vanishing point filter by clicking Filter » Vanishing Point&#8230; (Alt + Ctr + V). This will bring up a new window that is used for the vanishing point filter.  Our aim is to draw a rectangle that is in the same perspective plane that the jars are in. Then we will work from this simple rectangle to define the more complicated shape of a jar.   To begin make sure the create plane tool is selected, and simply click on the four points that define the corners of your rectangle. You can move the rectangle later, but you&#8217;ll run into problems if you have to scoot your rectangle too far left or right. While it is difficult to judge perspective on the jars, you can make use of the mosquito netting and window sill in the back ground. Once done you should have a rectangle in perspective. Remember to use the zoom tool (it&#8217;s easier to use the keyboard shortcut of Space + Ctr and Space + Alt to zoom in and zoom out and Space to scoot the photo around) while working.  Using existing straight lines in your photo will guarantee that you get the perspective exactly right. The bigger you make your rectangle, the more you reduce errors. Ideally you want your rectangle to touch the surface you are going to be putting your label on. In this case I&#8217;m working with the center jar, so I used its right edge, the window sill and frame, and the lines on the mosquito screen to create my perspective plane:  </p>
<p><img class="aligncenter size-full wp-image-361" title="new-plane" src="http://netlumination.com/wp-content/uploads/2009/05/new-grid1.jpg" alt="new-plane" width="440" height="329" />    </p>
<p>Notice how the gird is blue. If the math for creating the perspective rendering would not work out the grid would be red, if the math is marginal, it&#8217;ll be yellow. You should create grids that end up blue if at all possible. You can change the grid size using the dialog box in the top left. The grid size doesn&#8217;t actually change anything, but a smaller grid size (more squares) will make it easier to create a curved shave in smaller increments, rendering a smoother end result.</p>
<h2><a name="Extending-Plane">Using the vanishing point filter &#8211; extending the original plane</a></h2>
<p>This next step is probably the hardest one. We have to extend our perspective plane to wrap around the jar. To do this we&#8217;ll Ctr + Click on the middle left bounding box of the perspective plane. Pull out about one grid square&#8217;s worth. This will extend the plane perpendicular to its current position.    </p>
<p><img class="aligncenter size-full wp-image-364" title="pull-out-grid" src="http://netlumination.com/wp-content/uploads/2009/05/pull-out1.jpg" alt="pull-out-grid" width="398" height="615" /> </p>
<p>Now we want to adjust the angle of the new portion to match the jar. Use the angle pull down box for this. I&#8217;ve found the easiest method is to click on the angle pull down, then use my left and right arrows keys to adjust the angle. I found using my mouse to be more difficult.  Each time you Ctr + Click and create a new segment of the plane, you want to create the same amount. This is where the size of the grid you pick matters. The smaller the widths of the newly created segments, the smoother the end result will be. At certain angels, you&#8217;ll have a hard time telling how much of the grid you created. You can always pull out an amount, rotate it for better view, and then adjust its lenght properly. This can sometimes cause some weird glitches, but if you keep at it, you should end up with something like this:  </p>
<p><img class="aligncenter size-full wp-image-365" title="jar-plan-wrapped" src="http://netlumination.com/wp-content/uploads/2009/05/jar-plan-wrapped.jpg" alt="jar-plan-wrapped" width="440" height="354" /></p>
<h2><a name="Add-Content">Adding content to the perspective plane</a></h2>
<p>Now comes the fun part. Paste, Ctr + V your label into the Vanishing Point filter in Photoshop. Now just pull the label onto the blue plane to change it&#8217;s perspective to fit that of the photo. If the label is too big or too small, click the Transform Tool ( T ), the 6th tool from the top on the left, to resize your label on the fly.     </p>
<p><img class="aligncenter size-full wp-image-366" title="moving-label" src="http://netlumination.com/wp-content/uploads/2009/05/moving-label.jpg" alt="moving-label" width="440" height="357" /><br />
<img class="aligncenter size-full wp-image-367" title="label-in-place" src="http://netlumination.com/wp-content/uploads/2009/05/label-in-place.jpg" alt="label-in-place" width="440" height="357" /> </p>
<p>Once you get the hang of how to use the tool, it is very powerfull. From putting labels on jars, text on book pages, and windows on walls, its uses are limitless.  Getting back to our example. You&#8217;ll notice several problems with the raspberry jam label. First it&#8217;s covering the orange, second it&#8217;s color is off, third the edges look artifically sharp.  To dull the colors we can make use of the layer blend modes. By clicking on the curved raspberry jam label&#8217;s layer, we can change the blend mode using the drop down dialog box on the top left of the Layers panel. In this case multiply works nicely. We can also add a little noise to the label to make it look like a photograph. Filter » Noise » Add Noise&#8230; A very small amout, like 1% of the Gaussian or even less will generally work nicely. Make sure you have monochromatic checked, so that the noise matches the color of the label.    </p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><br />
 </p>
<h2><a name="End-Vanishing">Finishing touches with the Burn and Dodge tools</a></h2>
<p>After all of this, the edges probably still look too crisp. Additionally labels often darken or wear around the edges. A quick fix for this is the burn tool. We have to be carefull with the burn tool though, since it alters the pixels of the label. It&#8217;s a good idea to make a copy of the label layer before we begin working with the burn tool ( Ctr + J or drag the layer to the Create New Layer icon toward the bottom right of the layers panel)&#8230; just to be safe.</p>
<p>For the burn tool, use a relatively large brush at 0% hardness to run of the corners and edges of the label. You can decrease the opacity option for the burn tool if it looks like you&#8217;re over doing it. You can also use the dodge tool to make a line of lighter color on the label where you can see that the flash went off on the jar.</p>
<p><img class="aligncenter size-full wp-image-369" title="where-dodge-burn" src="http://netlumination.com/wp-content/uploads/2009/05/dodge-burn1.jpg" alt="where-dodge-burn" width="415" height="318" /></p>
<p>Of course there&#8217;s multiple ways to make the label look more believable. The burn and dodge tools are just one example. You can also use gradients or different types of filters. What I like about the dodge and burn tools is that they are quick and easy. Additionally they are tools that are often used while retouching photos, so it&#8217;s good to get familiar with them.</p>
<p>Now, on to the orange. The way I solved the problem was that I made two separate selections. One for the orange and one for it&#8217;s shadow, and I placed these selections in two separate layers, both above the jam label layer. I lowered the opacity of the shadow layer, and I kept the opacity of the orange layer at 100:</p>
<p><img class="aligncenter size-full wp-image-370" title="orange-shadow" src="http://netlumination.com/wp-content/uploads/2009/05/orange-shadow.jpg" alt="orange-shadow" width="440" height="326" /></p>
<p>Here&#8217;s a close up of the end result. I lightened the image a little, so you can see (well, sort of) that both the label and the shadow of the orange are present. </p>
<p>Since the focus of this tutorial was the vanishing point filter, I only outlined the steps for putting the orange in front of the label.</p>
<p>Here is a photo with both the flat labels and the labels after the use of the vanishing point filter. You can see how much adjusting the blend modes and using the dodge and burn tools polished their appearance. For two of the labels, I trimed and edge off of them before using the vanishing point filter, so thtat it would appear that the wrapped around the jar or bottle. Staying creative with little touches like that can make your end photo much more believable:</p>
<p><img class="aligncenter size-full wp-image-371" title="final" src="http://netlumination.com/wp-content/uploads/2009/05/final.jpg" alt="final" width="440" height="295" /></p>
<p>I found that Photoshop Essential Skills goes over this and other Photoshop tools in a very effective manner:</p>
<p><iframe src="http://rcm.amazon.com/e/cm?t=netlumination-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0240521242&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/the-vanishing-point-filter-in-photoshop/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to SEO header meta keywords and descriptions with Wordpress</title>
		<link>http://netlumination.com/blog/how-to-seo-header-meta-keywords-and-descriptions-with-wordpress</link>
		<comments>http://netlumination.com/blog/how-to-seo-header-meta-keywords-and-descriptions-with-wordpress#comments</comments>
		<pubDate>Fri, 24 Apr 2009 18:23:26 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[search engine optimization]]></category>

		<guid isPermaLink="false">http://netlumination.com/?p=254</guid>
		<description><![CDATA[The default Wordpress installation does not produce either a description or keywords meta tag in the header. There are plugins you can use to solve this problem, but why use a plugin when you can solve the problem with a few lines of code? Writing the code yourself with teach you about Wordpress, PHP, and [...]]]></description>
			<content:encoded><![CDATA[<p>The default Wordpress installation does not produce either a description or keywords meta tag in the header. There are plugins you can use to solve this problem, but why use a plugin when you can solve the problem with a few lines of code? Writing the code yourself with teach you about Wordpress, PHP, and XHTML. This will enable you to solve  future web site problems easier. Additionally, you&#8217;ll have one less plugin to keep track of, giving you a leaner, meaner, Wordpress installation.</p>
<p>After a brief introduction, I&#8217;ll delve right into the code, and show you how to add these meta tags to your pages by modifying the header.php file of your theme.<span id="more-254"></span></p>
<p>While the description and keyword meta tags are not as important for search engine optimization (SEO) as they used to be, they are still important. The description is often used verbatim as the wording under a link to your site by many search engines. Keywords may be less important, since search engine now often rely on the content of your pages, but it can be nice to include them for that extra little boost in SEO and as a reminder to yourself of what words you are  trying to optimize a particular page to.</p>
<p>This solution will write out custom keywords and description for all you Wordpress pages and individual blog posts. We will make use of the &#8220;Custom Fields&#8221; area for your posts and pages in the Wordpress administration panel. This will allow us to customize each post and page, and the meta information will be readilly visible in the administration panel when we look at a post or page.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script> </p>
<p>The first step is to create two new custom fields, one for the keywords and one for the description. Open your Worpress administration panel and click to edit an existing post or page. Under the Custom Fields area choose &#8220;Enter New&#8221; and create a field for keywords and a field for the description:  </p>
<p><img class="aligncenter size-full wp-image-259" title="new-custom-field" src="http://netlumination.com/wp-content/uploads/2009/04/new-custom-field.jpg" alt="new-custom-field" width="400" height="229" /> </p>
<p>I called mine &#8220;seo-description&#8221; and &#8220;seo-keywords&#8221;:  </p>
<p><img class="aligncenter size-full wp-image-258" title="the-custom-fields" src="http://netlumination.com/wp-content/uploads/2009/04/the-custom-fields.jpg" alt="the-custom-fields" width="400" height="179" /></p>
<p>Now, you can go ahead and fill out the meta information for each post and page. I&#8217;d suggest only filling out the description and keywords for one post. You can use this one as a test post. Once you see that everything is working correctly, you can go back and fill out the information for all the other pages and posts.  Okay, now we&#8217;re going to start to add in the code that will make everything display correctly. We&#8217;re going to be working witht he &#8220;header.php&#8221; file of you current theme. So, go ahead and open up the file&#8230;. You can check what them you are using in your admin panel. Just click on Appearance &gt;&gt; Themes. Under &#8220;Current Theme&#8221; there&#8217;ll be a line that says, all of this theme&#8217;s files are located in, &#8220;themes/blah-blah.&#8221; Go to that directory and fetch header.php through FTP or just use the built in editor in the admin panel. This is found at Appearance&gt;&gt;Editor. Under &#8220;Theme Files&#8221; click on &#8220;Heder (header.php).&#8221;  We want our meta information to appear in the header, usually right below the title. The end result we are looking for is something like this:</p>
<blockquote><p>
<code>&lt;title&gt;Your Blogs Title&lt;/title&gt;</code><br />
<code> &lt;meta name="description" content="[your custom description for this page]" /&gt; </code> <code>&lt;meta name="keywords" content="[your custom keywords for this page]" /&gt;</code></p></blockquote>
<p>Let&#8217;s start with the description. First we&#8217;ll check whether the page or post has a custom description. If it does, we&#8217;ll display that. If it doesn&#8217;t we&#8217;ll just display your blogs tagline. The trick here is that in Wordpress there is a <a href="http://codex.wordpress.org/Function_Reference/get_post_meta">get_post_meta function</a> that you can use to retrieve the custom keyword and description info you put in. If you on your site somewhere where you are showing only a single blog post or a single page this function will work.  Let&#8217;s try:</p>
<blockquote><p>
<code>&lt;?php $seodescription = get_post_meta($post-&gt;ID, "seo-description", true); ?&gt;</code></p></blockquote>
<p>This will get our meta description, &#8220;seo-description&#8221; for the post we are displaying and assign it to the variable $seodescription (it&#8217;s not good to use variables with hyphens in PHP ).  Now we can simply use </p>
<blockquote><p>
<code>&lt;?php echo $seodescription; ?&gt;</code></p></blockquote>
<p>This will print out the custom description. So far our solution is:</p>
<blockquote><p>
<code>&lt;meta name="description" content="&lt;?php $seodescription = get_post_meta($post-&gt;ID, "seo-description", true); echo $seodescription; ?&gt;" /&gt;</code></p></blockquote>
<p>This is one of the things that is so nice about PHP. You can insert it directly into XHTML wherever you want.  The only problem is that we may have a page or post that we haven&#8217;t gotten around to adding custom keyword and description meta tags to. The about code will not create an error in this case. It will just print empty quotation marks. This is because the PHP variable $seodescription will be zero if get_post_meta finds nothing. We can make use of this with an if statement. In php an if statement will execute if the condition is not zero, and the if statement will not execute if the condition is zero.  In other words</p>
<blockquote><p>
<code>if ( $mynumber = 0 ) { echo "hi!"; } else { echo "bye...";}</code></p></blockquote>
<p>Will print &#8220;bye&#8230;&#8221; because the if statement is 0. 0 means false to PHP. So, of course</p>
<blockquote><p>
<code>if ( $mynumber = 8.5 ) { echo "hi!"; } else { echo "bye...";}</code></p></blockquote>
<p>Will print &#8220;hi!&#8221; since the if statement is not 0.  Let&#8217;s apply this to meta tags. If there is custome meta description, we will display it, and if there is none, we will nothing. It&#8217;s not a good idea to put a default description or keywords on pages, since this will make multiple pages have the same description and keywords. This is confusing for search engines, since how can two pages have the same descriptin but different content? We will check if there is a custom description with an if statement. The only tricky part here is that PHP actually goes ahead and assigns a value to the variable inside the if statement. This is because we used &#8220;=&#8221; which means set equal to. So, here goes:</p>
<blockquote><p>
<code>&lt;?php if ($seodescription = get_post_meta($post-&gt;ID, "seo-description", true))</code> <code> <span> </span>{ ?&gt;  <span style="font-family: Georgia; ">&lt;meta name="description" content="&lt;?php echo $seodescription; ?&gt;" /&gt;&lt;?php</span> <span style="font-family: Georgia; "><span style="font-family: -webkit-monospace; ">} ?&gt;</span></span> </code>  </p></blockquote>
<p>Now we just do the same for the keywords. So for keywords, using the same idea as above we have:</p>
<blockquote><p>
<code>&lt;?php if ($seokeywords = get_post_meta($post-&gt;ID, "seo-keywords", true))</code> <code> <span> </span>{ ?&gt;  &lt;meta name="keywords" content="&lt;?php echo $seokeywords; ?&gt;" /&gt;&lt;?php  <span> </span>} ?&gt; </code></p></blockquote>
<p>There is one final thing to take care of. If we use this code as is, then on pages that dispaly multiple posts, we&#8217;re going to display the description and keywords for just the first post. To get around this we&#8217;ll use the Wordpress function <a href="http://codex.wordpress.org/Function_Reference/is_singular">is_singular()</a> . This function returns true if only one page or post is being displayed and false if not. You can use an else statement to display defualt meta data. This default meta date will only go on pages that show more than one post.  Ok, so here we have the whole enchilada starting with the title tag:</p>
<blockquote><p>
<code>&lt;title&gt;CODE-TO-DISPLAY-MY-BLOG-NAME&lt;/title&gt;</code></p></blockquote>
<blockquote><p>
<code> &lt;?php  if ( is_singular() )   </code></p></blockquote>
<blockquote style="padding-left: 30px; "><p>
<code>{ </code></p></blockquote>
<blockquote style="padding-left: 30px;"><p>
<code> <code>if ($seodescription = get_post_meta($post-&gt;ID, "seo-description", true))</code> </code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> { ?&gt; </code></code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> &lt;meta name="description" content="&lt;?php echo $seodescription; ?&gt;" /&gt;&lt;?php </code></code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> } ?&gt; </code> <code>&lt;?php </code></code></p></blockquote>
<blockquote style="padding-left: 30px;"><p>
<code><code>if ($seokeywords = get_post_meta($post-&gt;ID, "seo-keywords", true))</code> </code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> { ?&gt; </code></code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> &lt;meta name="keywords" content="&lt;?php echo $seokeywords; ?&gt;" /&gt;&lt;?php </code></code></p></blockquote>
<blockquote style="padding-left: 60px;"><p>
<code><code> }</code></code></p></blockquote>
<blockquote style="padding-left: 30px;"><p>
} ?&gt;</p></blockquote>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<p>Take a look at this page. Here is what my admin panel looks like for this post:</p>
<p><img class="aligncenter size-full wp-image-265" title="this-post" src="http://netlumination.com/wp-content/uploads/2009/04/this-post.jpg" alt="this-post" width="450" height="125" /></p>
<p>And here you can see that the meta tags are really displayed in the source page (or you can check in your own browser):</p>
<p><img class="aligncenter size-full wp-image-266" title="source-code" src="http://netlumination.com/wp-content/uploads/2009/04/source-code.jpg" alt="source-code" width="450" height="128" /></p>
<p>And there we have it, custom keyword and description meta tags for your Wordpress theme using no plugins.</p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/how-to-seo-header-meta-keywords-and-descriptions-with-wordpress/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>More on Search Engine Optimization</title>
		<link>http://netlumination.com/blog/more-on-search-engine-optimization</link>
		<comments>http://netlumination.com/blog/more-on-search-engine-optimization#comments</comments>
		<pubDate>Thu, 02 Apr 2009 21:45:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Website Advice]]></category>
		<category><![CDATA[backlinks]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[search engine optimization]]></category>

		<guid isPermaLink="false">http://wordpress.netlumination.com/?p=35</guid>
		<description><![CDATA[If you look at sites offering search engine optimization, or SEO, you'll notice that the prices can get pretty high. If all that is involved is making sure all the elements on your page have your keywords correctly woven into them, then how can SEO services be so expensive? Well, it turns out that the words on your pages are just a small part of the picture.]]></description>
			<content:encoded><![CDATA[<p>If you look at sites offering <a href="http://www.netlumination.com/blog/why-search-engine-optimization-is-important">search engine optimization</a>, or SEO, you&#8217;ll notice that the prices can get pretty high. If all that is involved is making sure all the elements on your page have your keywords correctly woven into them, then how can SEO services be so expensive? Well, it turns out that the words on your pages are just a small part of the picture.<span id="more-35"></span></p>
<p>Google and other search engines have very complicated ways of figuring out how to order sites in their searches. If only the keywords on the pages themselves mattered, then a useless page that lists only the keyword thousands of times would always be first. So that doesn&#8217;t work. What search engines decided is that they would look at who links to a page, and also the outgoing links from a page. It gets complicated since it&#8217;s not just the number of pages that link to your page that is important but also their quality in the eyes of the search engine. Links to your page from other pages are called back links. The more of these you have more top ranking sites the better you will do in the eyes of search engines.</p>
<p>In addition to number of links, there are other differences among sites. For example you&#8217;ll notice that .edu, .gov, and .org sites often achieve very high rankings. So, if you can get links from any of these type of sites, your page will do very well.</p>
<p>That&#8217;s presenting things with the broad brush stroke. Not only are the number and quality of your links important, but as usual, the devil is in the details. Your back links must be from pages that have the same keywords as yours. Additional if you really want good search engine optimization the words in the back links themselves should be your keywords. For example, if you make neon signs, then you want other pages dealing with neon signs to link to you, and you want these links to specifically say &#8220;neon signs&#8221;&#8230;.. not your name, or you companies name. No one&#8217;s going to search for your name or your companies name when they&#8217;re considering the options. If they already know about you and want you to do their neon signs, they&#8217;ll just pick up the phone and call. You want people who search for neon signs to see you in the search engines, since they don&#8217;t know about you and can give you business.</p>
<p>All of this takes work a lot of effort. You have to know how to get others to point to your page. You have to know who should point to your page. There are many ways of doing this. You can buy, trade, or create links. All of this will take time, money, or both.</p>
<p>Just to illustrate a complication that a good search engine optimization specialist would take into account, consider trading links. This sounds easy, right? You email another site that has you keywords, and you get them to link to you, while you link to them. Not if you&#8217;re really good. Since unreciprocated links work better than reciprocated links. After all, the search engines know that anyone can trade links, but not anyone get a link without giving one. So it is ideal to use multiple sites when trading links. They link to yours and you use a different domain name to link to theirs. As you can see, there are many different choices in how to do things. This means that the quality of SEO you get is highly dependent and based on who you deal with.</p>
<p>In addition to these specific individual strategies, you have to have an overall strategy for moving up in the rankings. This is important in order to create a realistic goals.</p>
<p>A common SEO strategy is to move up in the rankings for a very long series of keywords and then gradually increase your rankings for shorter and shorter phrases. For example there may not be much competition for &#8220;tennis pros from Rhode Island who are left handed,&#8221; so if you happen to be a left handed tennis pro from Rhode Island, you are in luck. You&#8217;ll move up in rankings quick. Then you can concentrate on &#8220;tennis pros from Rhode Island&#8221; Then &#8220;tennis pros.&#8221; And finally you can show up on the first page of search for the key word &#8220;tennis.&#8221; A long way down the road. &#8220;tennis pros from Rhode Island who are left handed,&#8221; shows 7,280 results in Google. &#8220;Tennis&#8221; has 190,000,000 results. SEO is an ongoing process.</p>
<p>So you see, search engine optimization only begins with your page. Your url, title, alt image tags, h1 headings, etc. are only a small part of the picture. The content of other websites and a cohesive overall strategy will also determine the success of your SEO. This is why the process is more complicated than just paying attention to the content of your pages, but not everyone knows this, and not everyone uses the same strategies and techniques. Make sure you understand what you are purchasing. Do this by asking questions and looking at the details.</p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/more-on-search-engine-optimization/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating perspective and a mirror image in Photoshop</title>
		<link>http://netlumination.com/blog/creating-perspective-and-a-mirror-image-in-photoshop</link>
		<comments>http://netlumination.com/blog/creating-perspective-and-a-mirror-image-in-photoshop#comments</comments>
		<pubDate>Sat, 28 Mar 2009 18:02:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[perspective]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://wordpress.netlumination.com/?p=32</guid>
		<description><![CDATA[In this tutorial I'll show you how to create the look of perspective and reflection in your images.]]></description>
			<content:encoded><![CDATA[<p>In this tutorial I&#8217;ll show you how to create the look of perspective and reflection in your images.</p>
<p><img class="aligncenter size-full wp-image-232" title="scitechy-site" src="http://netlumination.com/wp-content/uploads/2009/04/scitechy-site.jpg" alt="scitechy-site" width="375" height="574" /></p>
<p><span id="more-32"></span></span><span style="font-family: Georgia;">Sample or example images are a common part of web pages. For example, on <a href="http://backup.netlumination.com/">my home page</a>, I show examples of websites I&#8217;ve designed and developed. For each site, I show the image of a screen capture of the site. I wanted it to be completely clear that what I am showing is not part of the page the viewer is looking at but an example of another page. To make this clear, I decided to show the screen capture in perspective and with a reflection under it.</tt></p>
<p>Let me give you an overview of what we're going to do. First we will create a series of guidelines that will show us how to modify our image to make it look like it is in perspective. Then we will take our flat image, duplicate it and flip it vertically. This will give us a flat image with a flat reflection. We will use the free transform tool to distort the image and reflection at the same time. It is important that both are distorted together for the effect to work. This means that our workflow must first create the reflection and then the perspective. We'll finish up by adding some visual effects to make the whole thing look slightly more believable.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>The first step is to create an empty Photoshop document. The document should be much larger than the image you're working with. This is necessary to accommodate both the guidelines and the reflection. Start by making your document four times wider and four times taller than the image you will be working with. If you run out of space, just make the canvas bigger by clicking on "Image &gt; Canvas Size," and make your canvas bigger. Start off by making two layers. One layer is for your image and one layer will be for the guidelines to help create the illusion of perspective.</p>
<p><img class="aligncenter size-full wp-image-227" title="layers" src="http://netlumination.com/wp-content/uploads/2009/04/layers.jpg" alt="layers" width="206" height="131" /></p>
<p> </p>
<p>To create the guidelines to help with perspective, click on the Guides layer, so that it you will be drawing on it. Now draw a vertical line on the left side of the canvas. The line tool is found if you click on the rectangle tool. Make sure that you have "Fill Pixels" selected for the drawing mode. You can pick a weight that you feel is appropriate.</p>
<p><img class="aligncenter size-full wp-image-228" title="line-tool" src="http://netlumination.com/wp-content/uploads/2009/04/line-tool.jpg" alt="line-tool" width="550" height="86" /></p>
<p>Now draw a second line from the bottom of your vertical one out to the right. This second line will go from the bottom left corner of your image to the horizon. The angle at which you draw it will determine whether it will appear that you are looking up, down, or directly at your image. For this example you can basically eyeball things, but if you want to learn how to calculate where to put the vanishing point, horizon, etc. more precisely, take a look at <a href="http://www.khulsey.com/student.html">Kevin Hulsey's drawing perspective tutorials</a>. Here's how I drew mine:</p>
<p><img class="aligncenter size-full wp-image-225" title="gude-lines" src="http://netlumination.com/wp-content/uploads/2009/04/gude-lines.jpg" alt="gude-lines" width="550" height="381" /></p>
<p>We'll add in the image now. If you copy and paste your image into your photoshop document a new layer will be created for your image, which is exactly what we want. Now we have to move the image so that it's bottom left corner is where our two guidelines are. We can use the Free Transform tool to do this (Ctr+T or "Edit &gt; Free Transform"). When you are in free transform mode, you can use your mouse to move your image where you want it. You can fine tune the position of the image with the arrow keys. If you want, experiment with turning Snap on and off ("View &gt; Snap").</p>
<p>Once you have your image positioned, click on the Guides layer and draw a line from the top left corner of the image to the right hand vanishing point. The guidelines extending from the bottom and top left of your image should intersect. Like this:</p>
<p><img class="aligncenter size-full wp-image-236" title="vanishing-point" src="http://netlumination.com/wp-content/uploads/2009/04/vanishing-point.jpg" alt="vanishing-point" width="550" height="323" /></p>
<p>If the vanishing point is above the top of the image, it'll look like you are viewing things from above. If it's below, it'll look like you are viewing from below. If it's directly to the right of the image, it'll look like you are at the same level as the image.</p>
<p>Finally, we have create a second vertical guide, for the right hand side of the perspective image. This line should be to the left of the edge of the image, since perspective will cause the image to appear narrower. You can figure out precisely where to put this line, but for a simple situation like this, it's easier just to eyeball things. Just imagine taking your image and swiveling it in to perspective and draw the second vertical line where the right hand side of the image would end up:</p>
<p><img class="aligncenter size-full wp-image-221" title="final-guide-line" src="http://netlumination.com/wp-content/uploads/2009/04/final-guide-line.jpg" alt="final-guide-line" width="550" height="290" /></p>
<p>It's important that we create the mirror image now, since we want to distort the main and mirror image simultaneously, so that the reflection matches the perspective of the main image. To create the reflection, first duplicate the main image. Do this by clicking on the layer with the image and dragging it over the "Create a New Layer" icon, that is at the bottom right of the layers panel.</p>
<p><img class="aligncenter size-full wp-image-219" title="duplicate-image" src="http://netlumination.com/wp-content/uploads/2009/04/duplicate-image.jpg" alt="duplicate-image" width="408" height="699" /></p>
<p>Name this layer as the mirror image. I usually drag this layer below the main image, since it helps me keep track of things better.</p>
<p><img class="aligncenter size-full wp-image-231" title="rename-reflection" src="http://netlumination.com/wp-content/uploads/2009/04/rename-reflection.jpg" alt="rename-reflection" width="222" height="241" /></p>
<p>Click on the reflection layer in the layers panel and use the free transform tool to position it directly below the main image. Holding down the shift key while moving the image will constrain it to move in only several directions, so you can be sure you are moving it directly down and that you're not moving slightly off of vertical. If you want it to appear the the image is sitting directly on a reflective surface, leave no gap between the main image and reflection. I chose to introduce a small gap between the main image and reflection. This makes it appear that the main image is floating slightly.</p>
<p>Before you finalize the free transform, right click directly on the reflection and pick "Flip Vertical" from the fly out menu that appears. Now we have a true reflection.<br />
<img class="aligncenter size-full wp-image-215" title="vertical-flip" src="http://netlumination.com/wp-content/uploads/2009/04/vertical-flip.jpg" alt="vertical-flip" width="550" height="392" /></p>
<p>and voila:<img class="aligncenter size-full wp-image-235" title="true-reflection" src="http://netlumination.com/wp-content/uploads/2009/04/true-reflection.jpg" alt="true-reflection" width="550" height="436" /></p>
<p>This is the point at which you may notice that you are running out of space. Increase the size of your canvas to add more space at the bottom if necessary.</p>
<p>To create the effect of perspective, we have to work with the main image and reflection at the same time. To do this click in the layers panel on the layer of the main image. Now shift + click on the layer of the reflection. Both layers should be highlighted:</p>
<p><img class="aligncenter size-full wp-image-233" title="select-both-layers" src="http://netlumination.com/wp-content/uploads/2009/04/select-both-layers.jpg" alt="select-both-layers" width="231" height="231" /></p>
<p>If you now use the free transform tool (Ctr+T), both images should be selected. Look at how the bounding boxes goes around both images:</p>
<p><img class="aligncenter size-full wp-image-218" title="bounding-box" src="http://netlumination.com/wp-content/uploads/2009/04/bounding-box.jpg" alt="bounding-box" width="550" height="671" /></p>
<p>Ctr + Click on the top right corner and drag it the top right corner of your perspective guidelines. You want to distort the image and not just resize them; that's why you have to Ctr + Click for this operation and not just click.</p>
<p><img class="aligncenter size-full wp-image-234" title="top-right-corner" src="http://netlumination.com/wp-content/uploads/2009/04/top-right-corner.jpg" alt="top-right-corner" width="550" height="491" /></p>
<p>This next step is probably the trickiest one of this tutorial. You have to control click on the bottom right corner of the bounding box... that's is the bottom right corner of the reflection. By dragging this corner you have to get the bottom right corner of the main image to lie over the bottom right corner of the guiding lines. So you're ctr + dragging the bottom right of the bounding box but looking at the center right of it.</p>
<p><img class="aligncenter size-full wp-image-230" title="perspective" src="http://netlumination.com/wp-content/uploads/2009/04/perspective.jpg" alt="perspective" width="550" height="816" /></p>
<p>We'll begin to add finishing touches. First let's change the background to pure black, or any color of your choosing. To do this click on the guides layer and then on the "Create a New Layer" icon at the bottom right of the layers panel. This will create a new panel directly below the image and reflection layers. To fill with a solid color click Alt + Backspace to fill it with the foreground color or Ctr + Backspace to fill it with the back ground color. You can also go to Edit &gt; Fill.</p>
<p><img class="aligncenter size-full wp-image-217" title="black-background" src="http://netlumination.com/wp-content/uploads/2009/04/black-background.jpg" alt="black-background" width="234" height="259" /></p>
<p>To make the reflection fade out from top to bottom we'll use a layer mask. A layer mask interacts with a layer to show only certain parts of that layer. Think of it as a black piece of paper that you can cut to any shape you want and lay it over the layer you're working with. In the areas where a layer mask is black, the layer becomes invisible. In areas where the layer mask is white, the layer is unchanged. If the layer mask is a shade of gray, then the layer is partially visible.</p>
<p>To add our layer mask, first click on the layer with the reflection to select it in the layer panel. Now click on the "Create Layer Mask" icon. This is toward the bottom left of the layers panel. It looks like a square with a circle inside<img class="alignnone size-full wp-image-229" title="new-layer-mask-icon" src="http://netlumination.com/wp-content/uploads/2009/04/new-layer-mask-icon.jpg" alt="new-layer-mask-icon" width="21" height="17" /> . This will give you a layer mask associated with the reflection.</p>
<p><img class="aligncenter size-full wp-image-226" title="layer-mask" src="http://netlumination.com/wp-content/uploads/2009/04/layer-mask.jpg" alt="layer-mask" width="235" height="706" /></p>
<p>Click on the white square that is the layer mask, so that you can edit it directly. We will add a gradient to it. Make sure your foreground color is white and your background color is black. If they are not, just click on the small black and white boxes up and to the left of the foreground and background colors. To select the gradient tool hit Ctr+G or select it from the tool menu on the left. Things should look like this:</p>
<p><img class="aligncenter size-full wp-image-224" title="gradient-tool" src="http://netlumination.com/wp-content/uploads/2009/04/gradient-tool.jpg" alt="gradient-tool" width="550" height="115" /></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-4166122661117213";
/* 336x280, created 4/27/09 */
google_ad_slot = "9673694336";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>The look we want to achieve is for the reflection to fade away from top to bottom. Remember that the areas where the layer mask is black will make the reflection disappear, so we want to click on the image and draw the gradient line from the bottom right to the top left. This will make the layer mask blacker toward the bottom right and whiter toward the top left. Try making your gradient. If you are not satisfied with the results hit Ctr+Z to undo it and try it again. The results should look something like this:</p>
<p><img class="aligncenter size-full wp-image-220" title="fade-out-of-reflection" src="http://netlumination.com/wp-content/uploads/2009/04/fade-out-of-reflection.jpg" alt="fade-out-of-reflection" width="523" height="647" /></p>
<p>Even if the background of your image is another color, you will use a black to white gradient for your layer mask. This is because a layer mask makes the layer it is associated with visible with white and invisible with black. So even if the background of your image is red, your reflection will be visible over the red background if your layer mask is white and invisible if your layer mask is black.</p>
<p>After adding the gradient, your layer mask will look something like this:</p>
<p><img class="aligncenter size-full wp-image-223" title="gradient-layer-mask" src="http://netlumination.com/wp-content/uploads/2009/04/gradient-layer-mask.jpg" alt="gradient-layer-mask" width="242" height="254" /></p>
<p>To make the reflection a little more convincing, decrease the Opacity of the reflection layer. Make sure that the reflection layer is selected in they Layers panel. Now use the slider bar at the top right of the panel to change the opacity of the reflection layer. I've found 50% to look nice.</p>
<p>To finish the image, turn off the background color and guides layer. Select "Image &gt; Trim..." and click Based on Transparent Pixels and Top, Right, Left, and Bottom. This will trim away all the excess canvas. To add back a slight border use "Image &gt; Canvas Size..." and select Relative. With Relative selected you only have to type in the twice the thickness of the border you want width and height wise.</p>
<p><img class="aligncenter size-full wp-image-216" title="adding-border-back" src="http://netlumination.com/wp-content/uploads/2009/04/adding-border-back.jpg" alt="adding-border-back" width="432" height="368" /></p>
<p>Once done with resizing turn the background color layer back on by clicking on the eyeball icon to the left of it, and you're done!</p>
<p><img class="aligncenter size-full wp-image-222" title="finished-image" src="http://netlumination.com/wp-content/uploads/2009/04/finished-image.jpg" alt="finished-image" width="375" height="574" /></p>
<p>I've found Mark Galer's books very useful for honing my Photoshop skills:</p>
<p><iframe src="http://rcm.amazon.com/e/cm?t=netlumination-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=0240521242&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/creating-perspective-and-a-mirror-image-in-photoshop/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Look for samples of things you like and dislike</title>
		<link>http://netlumination.com/blog/look-for-samples-of-things-you-like-and-dislike</link>
		<comments>http://netlumination.com/blog/look-for-samples-of-things-you-like-and-dislike#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:55:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Website Advice]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[getting started]]></category>
		<category><![CDATA[samples]]></category>

		<guid isPermaLink="false">http://wordpress.netlumination.com/?p=30</guid>
		<description><![CDATA[How do you tell your designer what you want if you don't know what all your options are. The answer is simple: samples.
One of the first things you will do when you begin working with a web developer is to describe how you want your site to look and feel, the audience you are targeting, etc., but a picture is worth a thousand words, and a url is worth ten thousand.]]></description>
			<content:encoded><![CDATA[<p>How do you tell your designer what you want if you don&#8217;t know what all your options are. The answer is simple: samples.</p>
<p>One of the first things you will do when you begin working with a web developer is to describe how you want your site to look and feel, the audience you are targeting, etc., but a picture is worth a thousand words, and a url is worth ten thousand.<span id="more-30"></span></p>
<p>It is the web designers job to know the latest technological possibilities, not yours. So you may not even be aware that it is possible to ask for certain things&#8230; for example to have your web page show up well on the Amazon Kindle or on screen projectors.</p>
<p>You can get around this problem by doing something fun&#8230; surfing the web and collecting the urls of sites that you like and don&#8217;t like. When you approach your web designer, give them this list. They will be able to gain an organic understanding of what you want. Like this, they will be able to understand which of the newest bells and whistles would be necessary on your site, since they&#8217;ll have a good broad understanding of the type of site you are striving toward. Samples of your likes and dislikes will greatly aid in getting exactly the site you are looking for.</p>
<p>So, make sure you have a list of sites you like and sites you dislike when you approach your web designer. It will open up possibilities for you site you don&#8217;t even know exist.</p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/look-for-samples-of-things-you-like-and-dislike/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Style guides</title>
		<link>http://netlumination.com/blog/style-guides</link>
		<comments>http://netlumination.com/blog/style-guides#comments</comments>
		<pubDate>Tue, 10 Jun 2008 17:12:21 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Website Advice]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[site maintenance]]></category>
		<category><![CDATA[upkeep]]></category>

		<guid isPermaLink="false">http://wordpress.netlumination.com/?p=27</guid>
		<description><![CDATA[One of the difficulties in having a web site designed for you is that you may not know what to look for. A way to get around this is to ask for explanations... in writing.]]></description>
			<content:encoded><![CDATA[<p>One of the difficulties in having a web site designed for you is that you may not know what to look for. A way to get around this is to ask for explanations&#8230; in writing.<span id="more-27"></span></p>
<p>For example, you may have a web designer come up with a look for your site. Make sure you ask for a written description of this look. This is called a style guide. A style guide may relate to the combination of colors on a site, each page&#8217;s layout, the feel of the writing on the site, or all of the previous. The style guide itself may be online, in electronic form, or even a physical booklet. The style guide will not only help you understand the work that is going in to developing your site, it is also a very valuable resource. A style guide allows someone who has never worked on you site before to edit your current pages and add new pages to your site while maintaining the look and feel of the overall website. This guarantees that your site will not only look good the first day it goes live, but that your site will continue to look good after years of edits and updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/style-guides/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web page validity</title>
		<link>http://netlumination.com/blog/web-page-validity</link>
		<comments>http://netlumination.com/blog/web-page-validity#comments</comments>
		<pubDate>Sat, 07 Jun 2008 01:36:09 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Website Advice]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[compliance]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://wordpress.netlumination.com/?p=25</guid>
		<description><![CDATA[arkup validation sounds like a technical topic, but it is a factor that must be understood so that your website will be available to the largest number of customers or readers.
Markup validation is the process that is used to make sure the code on you web pages conforms to the "rules of grammar" of the world wide web. If your pages are valid, not only can the most people access your pages now, but people will continue to be able to access your pages in the future.]]></description>
			<content:encoded><![CDATA[<p>Markup validation sounds like a technical topic, but it is a factor that must be understood so that your website will be available to the largest number of customers or readers.</p>
<p>Markup validation is the process that is used to make sure the code on you web pages conforms to the &#8220;rules of grammar&#8221; of the world wide web. If your pages are valid, not only can the most people access your pages now, but people will continue to be able to access your pages in the future.<span id="more-25"></span></p>
<p>You may well ask why having valid web pages is important. After all, if you are able to view your web page, and it looks nice, that&#8217;s good enough, right? Well, not everyone has the same monitor resolution as you. What if someone wants to quickly buy your product, and all they have available is a cell phone? Having valid pages means that you present the data on your site in a certain predictable and agreed upon way. This means that the greatest number of devices, and so customers, will be able to access your site, since the makers of these devices will be able to count on the manner in which you give them information.</p>
<p>Additionally, as you&#8217;ve noticed, things change quickly on the web. If your site looks good today, unless it is valid, it may not look good tomorrow&#8230;. even on your computer. When the way we communicate over the world wide web is changed, attention is paid to making things backward compliant. In other words, many of the functions on old sites will still work with the new browsers and devices, as long as they worked with the old standards.</p>
<p>Essentially, designing your site without paying attention to being valid is like gambling. You gamble whether people on other computers and devices will be able to properly access your site, and you gamble whether people will be able to properly access your site in the future. Well, to narrow it down further, it&#8217;s like playing Russian Roulette. If people can&#8217;t access your site, they won&#8217;t visit it. If people don&#8217;t visit your site, they won&#8217;t buy your products. It&#8217;s not something you want to gamble on.</p>
<p>How can you tell, whether a page on a site valid? Fortunately that&#8217;s easy. Just enter it&#8217;s URL into a markup validator, <a href="http://validator.w3.org/">like this one</a>. You generally will not need to use a validator yourself, since your web designer will make the pages of your site valid, but it is nice to know that if you are curious, you can quickly tell whether your customers are likely able to access your site.</p>
<p><a href="http://validator.w3.org/docs/why.html">Here is some more information on markup validation.</a> It is an explanation by the W3C, the organization in charge of the protocols and guidelines for the world wide web, as to why markup validation is important.</p>
<p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Transitional" width="88" height="31" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://netlumination.com/blog/web-page-validity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
