<?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/"
	>

<channel>
	<title>Programmers.biz</title>
	<atom:link href="http://programmers.biz/feed" rel="self" type="application/rss+xml" />
	<link>http://programmers.biz</link>
	<description>Everything related to programmers and programming business</description>
	<pubDate>Wed, 10 Mar 2010 02:00:19 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Development Services - Contribution of Programming and Testing</title>
		<link>http://programmers.biz/programming-articles/web-development-services-contribution-of-programming-and-testing</link>
		<comments>http://programmers.biz/programming-articles/web-development-services-contribution-of-programming-and-testing#comments</comments>
		<pubDate>Wed, 10 Mar 2010 02:00:19 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/web-development-services-contribution-of-programming-and-testing</guid>
		<description><![CDATA[Contribution of Programming:
Web Development Services include development of basic websites to highly complex and structured websites. Earlier local personal computer revolutionized the&#8230;
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p><b>Contribution of Programming:</b></p>
<p>Web Development Services include development of basic websites to highly complex and structured websites. Earlier local personal computer revolutionized the&#8230;</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/web-development-services-contribution-of-programming-and-testing/feed</wfw:commentRss>
		</item>
		<item>
		<title>Who&#8217;s on First? What&#8217;s on Second?</title>
		<link>http://programmers.biz/programming-articles/whos-on-first-whats-on-second</link>
		<comments>http://programmers.biz/programming-articles/whos-on-first-whats-on-second#comments</comments>
		<pubDate>Wed, 10 Mar 2010 02:00:19 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/whos-on-first-whats-on-second</guid>
		<description><![CDATA[How many of you out in the great internet beyond have decided to start a business with a website? Do you get an email address first or a website?
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>How many of you out in the great internet beyond have decided to start a business with a website? Do you get an email address first or a website?</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/whos-on-first-whats-on-second/feed</wfw:commentRss>
		</item>
		<item>
		<title>Save Time and Money by Systematizing your Photoshop Workflow</title>
		<link>http://programmers.biz/programming/save-time-and-money-by-systematizing-your-photoshop-workflow</link>
		<comments>http://programmers.biz/programming/save-time-and-money-by-systematizing-your-photoshop-workflow#comments</comments>
		<pubDate>Wed, 10 Mar 2010 02:00:17 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming/save-time-and-money-by-systematizing-your-photoshop-workflow</guid>
		<description><![CDATA[Repetitive tasks can quickly become tedious. As a designer, you probably often find yourself designing the same elements over and over from scratch. STOP!
Wasting time is so old-fashioned. It also means you&#8217;re wasting money! So, let&#8217;s review some ways that you can automate and systematize your Photoshop workflow. And be sure to download the project [...]<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Repetitive tasks can quickly become tedious. As a designer, you probably often find yourself designing the same elements over and over from scratch. <em>STOP!</em></p>
<p>Wasting time is so old-fashioned. It also means you&#8217;re wasting money! So, let&#8217;s review some ways that you can automate and systematize your Photoshop workflow. <strong>And be sure to download the project base for all of your new designs! </strong> </p>
<p><span></span></p>
<h2>File Tree &amp; Re-usable Project Base</h2>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/0f4bf_1.jpg" width="600" /></div>
<p>The first step in systematizing your workflow is to organize your files. Identify all common elements you use within your designs. </p>
<p>You may come to a list such as the following:</p>
<ul>
<li>Home Page template</li>
<li> About Page
  </li>
<li> Contact Page
  </li>
<li> Services Page
  </li>
<li>Fonts
    </li>
<li> Assets</li>
</ul>
<h2>The Project Base</h2>
<p>Consider how your final deliverables are used. If they are shipped to a coding business, be as organized and thorough as possible, including notes and fonts where applicable.</p>
<p>You can ensure that you have perfectly organized themes by creating a package that allows you to &#8220;fill in the blanks&#8221;, so to speak. Simply copy this folder, assign it to the project by renaming it to the project and get working. This is a very simple and efficient way to work, and means that websites you built four years ago can easily be edited, because everything is packed into its very own place.</p>
<p><strong><a href="http://nettuts.s3.amazonaws.com/594_timeSavingTips/project_base.zip">Download the Project Base </a></strong></p>
<p>In the zip file, you&#8217;ll find a simple re-useable template starting point. This file contains elements such as dividers, buttons and a pre-gridded template to speed up your design workflow.
</p>
<p>See how simple starting a new project is now? It may take a couple of minutes to set-up, but the time saved later is more time for you to be doing what you love best &#8211; designing!</p>
<p>Now that we have a solid base to build upon, we can starting filling out our &#8216;boiler-plater&#8217; with specific files and concepts.</p>
<h2>Web Template</h2>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/0f4bf_2.jpg" width="600" /></p>
<p><em>The sample template will allow you to create a page of your most used elements, ready for quick inclusion in your latest project.</em></p>
</div>
<p>If you&#8217;re a web designer in particular, you&#8217;ll find that a lot of your projects, even those different in every possible way &#8211; use and re-use common elements.</p>
<p>Begin by building a few re-usable templates. Don&#8217;t worry about which elements you wish to include just yet, because you can always go back and look at your previous projects and analyze more popular features &#8211; then re-create them here.</p>
<p>Personally, I use just one template. I have a home page (this contains elements such as news bulletins, blog post stylings, menus, logos and call to actions). I can modify this template to suit blog pages, buy it now forms and more. </p>
<p>The page also has a 960.gs pre-applied. This has been included for download at the end of the article, in the template boilerplate.</p>
<p>Once you&#8217;re set-up with this concept, you can build designs very quickly. However, you should definitely consider developing your own, and tailor it to your clients and team. You could go further by adding icons, search elements and online store related items &#8211; anything to suit your client base.</p>
<h2>Grouping &amp; Organizing</h2>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/0f4bf_3.jpg" width="600" /></p>
<p><em>The above image demonstrates the tangible difference between an organized layer palette, and a messy one!</em></p>
</div>
<p>When you&#8217;re in a real creative flow, it can be difficult to stop and start naming and grouping layers. Photoshop doesn&#8217;t really help in this area by default either! </p>
<p>So, take the time as you go to name and group layers. This will help you later when coding the design, or if you ship if off for coding elsewhere. </p>
<p>Name each layer, and try to use a descriptive and short word &#8211; such as &#8216;menu&#8217; for the navigation. Group specific areas, such as the header or a contact form.</p>
<p><strong>This has a two-fold benefit. </strong></p>
<ol>
<li>You can toggle whole areas (or the whole design) on or off in order to work on the background or other elements. </li>
<li>You can move sections of a design without the need for moving each element. This can save hours per project!</li>
</ol>
<p>So, take the time to stop every five minutes or so, and name and group each element. You&#8217;ll be glad you did!</p>
<p>Make good use of the select tool! You can toggle the select mode between layers and groups. This facilitates mass updating and re-aligning designs, so don&#8217;t forget it!</p>
<h2>Actions</h2>
<div><a href="http://graphicriver.net"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/29c09_4.jpg" width="600" /></a></div>
<p>If you don&#8217;t use actions in your work-flow, then you should begin using them immediately.</p>
<p>Photoshop actions are entirely configurable lists of actions Photoshop should carry out automatically. You can create your own, or choose from the bounty available online. If you work on Photographs for example, and have 400 pictures to edit and resize, this would take a long time. Instead, you can create an action that adjusts the contrast, alters the size and then saves the file in .jpg format, blasting through 400 files in seconds! You must use actions!</p>
<p>If you do not have the knowledge, or experience to create your own actions, <strong><a href="http://graphicriver.net">GraphicRiver</a> has a large selection of actions available for purchase from $1!</strong></p>
<p> The actions on sale range from simple photo effects to this <a href="http://graphicriver.net/item/phoipsum-adobe-photoshop-greek-text-script/77673">action </a>which can add various pre-formatted text sections such as contact details or blog posts in seconds. </p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/29c09_5.jpg" width="600" /></div>
<p>Start using Actions and you will notice a significant increase in your productivity and reduce the amount of times you need to repeat monotonous tasks over and over. </p>
<h3>Creating and Using an Action</h3>
<p>Making your own action is easy. As an example, we&#8217;ll create a simple action to re-size several images at once, then save them. </p>
<p>First off, you need to hit the new action button, on the actions palette.</p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/29c09_7a.jpg" width="600" /></div>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/29c09_7b.jpg" width="600" /></div>
<p>You shouldn&#8217;t need to change any settings as standard, bar changing the name for better organization. Photoshop is now recording your actions. So, all you need to do is re-size the image. Go to image size, and alter the dimensions. The action will change any image to these dimensions. Then hit save.</p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/912c0_7c.jpg" width="600" /></div>
<p>Finally, press stop on the action palette.</p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/912c0_7d.jpg" width="600" /></div>
<p>Now, when you press play on the action you&#8217;ve created, Photoshop will follow the list of defined actions on your image. Although very simple, an action such as this one could save you hours of monotonous resizing photos and images. This is only a very simple look at actions. They can do so much more, so take your time to get to know them and really use them. The beauty of them is in how you can record basically any action in Photoshop &#8211; selecting, changing styles, transforming, re-sizing and saving. </p>
<h2>iPhone &amp; UI Design</h2>
<p>Do you work with user interfaces? If so, you really need to download a GUI element pack for Photoshop.</p>
<p>There are many available for most popular operating systems and mobile platforms. </p>
<p>For example, if you work with the iPhone, you can download the iPhone GUI pack that contains all elements available in the iPhone interface library, and then simply start designing your app. Simple, quick and much easier than attempting to create these from scratch.</p>
<h3>Android GUI Kit</h3>
<div><a href="http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/912c0_9.jpg" width="600" /></a></div>
<p><a href="http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/">http://www.smashingmagazine.com/2009/08/18/android-gui-psd-vector-kit/</a></p>
<p><strong>Teehan Lax Kits</strong></p>
<p>The agency, Teehan Lax have several high quality, life-like UI kits. These are great for building an iphone app sales site, or designing the actual UI of an app. Kits are available for the iPhone, Palm Pre and Browsers.</p>
<h3>Palm Pre</h3>
<div><a href="http://www.teehanlax.com/blog/2009/07/08/palm-pre-gui-psd/"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/912c0_7.jpg" width="600" /></a></div>
<p><a href="http://www.teehanlax.com/blog/2009/07/08/palm-pre-gui-psd/">http://www.teehanlax.com/blog/2009/07/08/palm-pre-gui-psd/</a></p>
<h3>iPhone</h3>
<div><a href="http://www.teehanlax.com/blog/2008/11/06/iphone-gui-psd-update-13/"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/912c0_6.jpg" width="600" /></a></div>
<p><a href="http://www.teehanlax.com/blog/2008/11/06/iphone-gui-psd-update-13/">http://www.teehanlax.com/blog/2008/11/06/iphone-gui-psd-update-13/</a></p>
<h3>Browser Elements</h3>
<div><a href="http://www.teehanlax.com/blog/2008/12/16/browser-form-elements-psd/"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/3295c_8.jpg" width="600" /></a></div>
<p><a href="http://www.teehanlax.com/blog/2008/12/16/browser-form-elements-psd/">http://www.teehanlax.com/blog/2008/12/16/browser-form-elements-psd/</a></p>
<h2>Conclusion</h2>
<p>I hope we&#8217;ve given you some tips that you can use to improve your productivity and efficiency. Photoshop is a wonderful tool, but, if we&#8217;re not careful, we can find ourselves repeating the sames tasks over and over. So be sure to implement the above tips and start saving time, money and your sanity!</p>
<h3><a href="http://nettuts.s3.amazonaws.com/594_timeSavingTips/project_base.zip">Download the Project Base</a></h3>
<div><a href="http://nettuts.s3.amazonaws.com/594_timeSavingTips/project_base.zip"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/3295c_10.jpg" width="600" /></a></div>
<p>Do you have any Photoshop time-saving tips? Have any ideas on other tasks that could be automated to save time and repetition? Feel free to share them with the community via the comments.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/vFQ5FqoMrQYkjIKcZNQc1LSTuqs/0/da"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/3295c_di" border="0"></img></a><br />
<a href="http://feedads.g.doubleclick.net/~a/vFQ5FqoMrQYkjIKcZNQc1LSTuqs/1/da"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/e12e2_di" border="0"></img></a></p>
<div>
<a href="http://feeds.feedburner.com/~ff/nettuts?a=jmAR4vAZwDo:PGT7bhVkiLk:yIl2AUoC8zA"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_nettuts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=jmAR4vAZwDo:PGT7bhVkiLk:F7zBnMyn0Lo"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_nettuts?i=jmAR4vAZwDo:PGT7bhVkiLk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=jmAR4vAZwDo:PGT7bhVkiLk:V_sGLiPBpWU"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_nettuts?i=jmAR4vAZwDo:PGT7bhVkiLk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=jmAR4vAZwDo:PGT7bhVkiLk:gIN9vFwOqvQ"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_nettuts?i=jmAR4vAZwDo:PGT7bhVkiLk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=jmAR4vAZwDo:PGT7bhVkiLk:TzevzKxY174"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_nettuts?d=TzevzKxY174" border="0"></img></a>
</div>
<p><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/78139_jmAR4vAZwDo" height="1" width="1" /></p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming/save-time-and-money-by-systematizing-your-photoshop-workflow/feed</wfw:commentRss>
		</item>
		<item>
		<title>Drupal Development Services Provide Powerful Web Backend Solutions</title>
		<link>http://programmers.biz/programming-articles/drupal-development-services-provide-powerful-web-backend-solutions</link>
		<comments>http://programmers.biz/programming-articles/drupal-development-services-provide-powerful-web-backend-solutions#comments</comments>
		<pubDate>Mon, 08 Mar 2010 02:00:19 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/drupal-development-services-provide-powerful-web-backend-solutions</guid>
		<description><![CDATA[Drupal is a free, open-source content management platform that has become the most adapted back-end solution to websites the world over. Developed and maintained by a community of cosmopolitan user-de&#8230;
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Drupal is a free, open-source content management platform that has become the most adapted back-end solution to websites the world over. Developed and maintained by a community of cosmopolitan user-de&#8230;</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/drupal-development-services-provide-powerful-web-backend-solutions/feed</wfw:commentRss>
		</item>
		<item>
		<title>Designing Tips For Real Estate Websites</title>
		<link>http://programmers.biz/programming-articles/designing-tips-for-real-estate-websites</link>
		<comments>http://programmers.biz/programming-articles/designing-tips-for-real-estate-websites#comments</comments>
		<pubDate>Mon, 08 Mar 2010 02:00:14 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/designing-tips-for-real-estate-websites</guid>
		<description><![CDATA[Once you have decided to design a website for pursuing your real estate interests online, there are certain things that should be considered prior taking up any designing task. First of all, it is necessary to identify the real purpose of building a website.
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Once you have decided to design a website for pursuing your real estate interests online, there are certain things that should be considered prior taking up any designing task. First of all, it is necessary to identify the real purpose of building a website.</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/designing-tips-for-real-estate-websites/feed</wfw:commentRss>
		</item>
		<item>
		<title>Why to redesign your website</title>
		<link>http://programmers.biz/programming-articles/why-to-redesign-your-website</link>
		<comments>http://programmers.biz/programming-articles/why-to-redesign-your-website#comments</comments>
		<pubDate>Sat, 06 Mar 2010 02:00:07 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/why-to-redesign-your-website</guid>
		<description><![CDATA[Do you have yummy ice-creams to sell, or you are a fashion designer? A best crockery seller in the town or you have a branded shoe shop? You are a marketer or a retailer? What so ever your&#8230;
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Do you have yummy ice-creams to sell, or you are a fashion designer? A best crockery seller in the town or you have a branded shoe shop? You are a marketer or a retailer? What so ever your&#8230;</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/why-to-redesign-your-website/feed</wfw:commentRss>
		</item>
		<item>
		<title>3 Steps to a Better User Registration Process on Your Web Site</title>
		<link>http://programmers.biz/programming-articles/3-steps-to-a-better-user-registration-process-on-your-web-site</link>
		<comments>http://programmers.biz/programming-articles/3-steps-to-a-better-user-registration-process-on-your-web-site#comments</comments>
		<pubDate>Sat, 06 Mar 2010 02:00:07 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/3-steps-to-a-better-user-registration-process-on-your-web-site</guid>
		<description><![CDATA[Improving the registration process on a Web site has many obvious benefits. If you require people to register, there must be some benefits to both the user and to you as the site owner, so increasing the number of completed registrations is most likely a primary goal of the site.
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Improving the registration process on a Web site has many obvious benefits. If you require people to register, there must be some benefits to both the user and to you as the site owner, so increasing the number of completed registrations is most likely a primary goal of the site.</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/3-steps-to-a-better-user-registration-process-on-your-web-site/feed</wfw:commentRss>
		</item>
		<item>
		<title>How to Create a Simple iTunes-like Slider</title>
		<link>http://programmers.biz/programming/how-to-create-a-simple-itunes-like-slider</link>
		<comments>http://programmers.biz/programming/how-to-create-a-simple-itunes-like-slider#comments</comments>
		<pubDate>Sat, 06 Mar 2010 02:00:06 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming/how-to-create-a-simple-itunes-like-slider</guid>
		<description><![CDATA[When space is at a premium, making use of sliders is the optimal way to present information. Today, we&#8217;ll take a look at how to create a slider similar to the one used in the iTunes store.


   

Developers often seek the functionality provided by sliders in order to fit lots of information in [...]<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>When space is at a premium, making use of sliders is the optimal way to present information. Today, we&#8217;ll take a look at how to create a slider similar to the one used in the iTunes store.</p>
<p><span></span></p>
<div>
   <img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/fc2ff_itunesVersion.jpg" alt="iTunes Version" />
</div>
<p>Developers often seek the functionality provided by sliders in order to fit lots of information in the space provided. But creating such a slider is not as difficult as you might think. With a little planning and some experimenting, you can create one rather quickly.</p>
<p> I believe a demo is worth a thousand words. <a href="http://nettuts.s3.cdn.plus.org/585_slider/demo/code.html">Hit the demo</a> and try it out yourselves. </p>
<div>
<a href="http://nettuts.s3.cdn.plus.org/585_slider/demo/code.html"><br />
<img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/fc2ff_1.jpg" alt="Tutorial Image" border="0" /><br />
</a>
</div>
<p>Interested? Let&#8217;s get started right away!</p>
<h2>Design Goals</h2>
<p>Before we start coding, here are a few goals for this widget. </p>
<ul>
<li>Minimize the space taken up by images by making the slideshow&#8217;s dimensions the same size of a single image and then fading between them.</li>
<li>Provide a vertical carousel of images on the side showing upcoming images.</li>
<li>Provide a method to manually move the carousel and the slideshow forward. In this instance, we make use of a simple anchor element.</li>
<li>On the carousel, the top most image is the next in line and will be displayed when the <em>next</em> button is clicked.</li>
<li>Minimize DOM manipulation as much as possible. That&#8217;s not to say we aren&#8217;t going to touch the DOM, it&#8217;s just that we aren&#8217;t going to meddle with the DOM too much.</li>
</ul>
<h2>Plan of Action</h2>
<p>There are actually a handful of techniques to make a widget like this. For our purposes today, I&#8217;m going to stick with a technique which adheres to a saying:</p>
<blockquote><p>When in doubt, use brute force.</p>
</blockquote>
<p><strong>Step 1:</strong> Setup the CSS for the gallery container so that all the main images collapse into taking the space of a single image. I&#8217;ll explain this point later below.</p>
<p><strong>Step 2:</strong> Setup the CSS for the thumbnail container so that only three images are visible at once.</p>
<p><strong>Step 3:</strong> Cycle through the images and assign a class to each thumbnail and image with a numeric index to identify each independently. For example, each image gets a class of <em>thumb-xx</em> where <em>xx</em> is a number.</p>
<p><strong>Step 4:</strong> When the <em>next</em> button is clicked, move the carousel one thumbnail up and then display the thumbnail&#8217;s corresponding image.</p>
<p>These are the basic steps involved in creating such an effect. I&#8217;ll explain each step in detail as we go along. </p>
<h2><span>Step 1:</span> Core Markup</h2>
<p>The HTML markup for the demo page looks like so:</p>
<pre>
&lt;!DOCTYPE html&gt;
&lt;html lang="en-GB"&gt;
	&lt;head&gt;
		&lt;title&gt;iTunes slider&lt;/title&gt;
		&lt;link rel="stylesheet" href="style.css" type="text/css" /&gt;
	&lt;/head&gt;

	&lt;body&gt;
    	&lt;div id="container"&gt;
        	&lt;h1&gt;Create a simple iTunes-esque slider with jQuery&lt;/h1&gt;
		&lt;div&gt;by Siddharth for the lovely folks at Net Tuts&lt;/div&gt;
		&lt;p&gt;A simple slider/slideshow which mostly emulates the one on iTunes barring a few changes. Click the down button to cycle the images.&lt;/p&gt; 

		&lt;div id="gallery"&gt;
    		   &lt;img src="img/1.jpg" /&gt;
    		   &lt;img src="img/2.jpg" /&gt;
    		   &lt;img src="img/3.jpg" /&gt;
    		   &lt;img src="img/4.jpg" /&gt;
            	   &lt;img src="img/5.jpg" /&gt;
            	   &lt;img src="img/6.jpg" /&gt;
	        &lt;/div&gt;

                &lt;div id="thumbs"&gt;
    	   	   &lt;img src="img/11.jpg" /&gt;
    		   &lt;img src="img/22.jpg" /&gt;
    		   &lt;img src="img/33.jpg" /&gt;
    		   &lt;img src="img/44.jpg" /&gt;
            	   &lt;img src="img/55.jpg" /&gt;
            	   &lt;img src="img/66.jpg" /&gt;
	        &lt;/div&gt;

        	&lt;a href="#" id="next"&gt;&lt;/a&gt;
        &lt;/div&gt;

	&lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/script&gt;
	&lt;script type="text/javascript" src="js/mocha.js"&gt;&lt;/script&gt;

	&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Disregarding the boiler plate code, we have two container elements full of images: one for the main gallery images and one for the thumbnails. I&#8217;ve given an ID to both of them so they can be easily accessed from the JavaScript. We also include an anchor element which acts as the next button.</p>
<p>We include the jQuery library and our own script file at the end.</p>
<p>At the end of this stage, our demo page looks like just a list of images.</p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_2.jpg" alt="Tutorial Image" border="0" /></div>
<h2><span>Step 2:</span> CSS Styling</h2>
<pre>
*{
	margin: 0;
	padding: 0;
	border: 0 none;
	outline: 0;
}

body{
	font-family: "Lucida Grande", "Verdana", sans-serif;
	font-size: 12px;
}

p{
	margin: 20px 0 40px 0;
}

h1{
	font-size: 30px;
	font-family: "Myriad Pro", "Lucida Grande", "Verdana", sans-serif;
	padding: 0;
	margin: 0;
}

h2{
	font-size: 20px;
}

#container{
	width: 900px;
	margin-left: auto;
	margin-right: auto;
	padding: 50px 0 0 0;
	position: relative;
}

img{
	display: block;
}

#gallery, #thumbs{
	float: left;
}

#gallery{
	width: 800px;
	height: 300px;
	overflow: hidden;
}

#gallery img{
	position: absolute;
}

#thumbs{
	width: 100px;
	height: 300px;
	overflow: hidden;
}

#next{
	display: block;
	width: 47px;
	height: 43px;
	background: url(img/arrow.png);
	position: relative;
	top: 257px;
	left: 855px;
}

#next:hover{
	background: url(img/arrowmo.png);
}

.clear{
	clear: both;
}
</pre>
<p>The CSS is pretty self explanatory but there are a couple of points I want you to take note of:</p>
<p>First up, notice that I&#8217;ve applied <em>position: absolute</em> to <em>#gallery img</em>. This makes sure that the images are stacked on top of each other instead of one below the other. This way we can later manipulate their opacity to decide which image to show.</p>
<p>Secondly, notice that the <em>thumbs</em> element has its height set to 300px. This is because the thumbnails in the demo are 100px tall each and I want the carousel to show 3 images at once. Essentially, for your own implementation, multiply the height of a thumbnail by the number of thumbnails you want to show at once to find the required height of the element.</p>
<p>Also, take note of the fact that we&#8217;ve set its <em>overflow</em> property to <em>hidden</em> to make sure no more than 3 thumbnails are shown at once.</p>
<p>After we&#8217;ve styled our slider, it looks like the image below. Notice that almost everything is in place. The last image is stacked at the top and is thus visible.</p>
<div><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_3.jpg" alt="Tutorial Image" border="0" /></div>
<h2><span>Step 3:</span> JavaScript Implementation</h2>
<p>Now that we have a solid framework and some basic styling in place, we can begin coding the required functionality. Note that we make extensive use of jQuery. Feel free to link to Google&#8217;s CDN if necessary.</p>
<h3>Procuring the Elements and Prepping them</h3>
<p>We first need to acquire the images and their corresponding thumbnails so that we can process them. </p>
<pre>
	var images = $("#gallery img");
	var thumbs = $("#thumbs img");
        var index = 0;
</pre>
<p>The above snippet will take care of obtaining the list of images and thumbnails, and storing them for later use. We also create a variable called <em>index</em> to denote which element to start from. For now, I&#8217;m setting it to start from the first element. Note that <em>index</em> is zero based.</p>
<pre>
	for (i=0; i&lt;thumbs.length; i++)
	{
		$(thumbs[i]).addClass("thumb-"+i);
		$(images[i]).addClass("image-"+i);
	}
</pre>
<p>Next, we just iterate through both the lists and and add a class of <em>thumb-xx</em> or <em>image-xx</em> to each element where xx is a number. This lets us look for each individual thumbnail or image independently. </p>
<h3>Hooking up the Handler</h3>
<p>We now need to create an event handler and attach it to the <em>next</em> button so that we can do something when the button is clicked.</p>
<pre>
$("#next").click(sift);
</pre>
<p>The one liner above will take care of that. Essentially, we ask it to call the <em>sift</em> function everytime <em>next</em> is clicked.</p>
<pre>
function sift()
	{
		if (index&lt;(thumbs.length-1)) {index+=1 ; }
		else {index=0}
		show (index);
	}
</pre>
<p>This is a very simple event handler actually. We just check to see what element is currently selected. If it is the last, we reset the index so the carousel goes back to the first element, thus creating a pseudo infinite carousel. Otherwise, we increment <em>index</em> by 1.</p>
<p>Next, we call the function <em>show</em>, passing in the <em>index</em> variable as a parameter. We&#8217;ll create the function in a bit.</p>
<h2><span>Step 4:</span> Implementing the Core Logic</h2>
<pre>
function show(num)
	{
		images.fadeOut(400);
		$(".image-"+num).stop().fadeIn(400);
		var scrollPos = (num+1)*imgHeight;
		$("#thumbs").stop().animate({scrollTop: scrollPos}, 400);
	}
</pre>
<p>The <em>show</em> function implements the core functionality of this widget. Let me explain each part.</p>
<p>First, we fade out every image the <em>gallery</em> element contains. Next, we fade in just the required image making use of its class. Since each image can be accessed through its class and we have access to the positional index of the image, we just use the following selector: <em>&#8220;.image-&#8221;+num</em></p>
<p>Next, we need to scroll the <em>thumbnail</em> element so that the required image is at the top of the carousel. There are two ways to go on about doing this.</p>
<p>The first method makes use of jQuery&#8217;s <em>position</em> property. This lets us find the element&#8217;s position <em>relative to its parent element.</em> Unfortunately, I&#8217;ve been running into quite a few problems with it and Chrome which means we&#8217;ll have to use our second method.</p>
<p>The next method is actually just as simple. Since we can easily obtain the height of a thumbnail and since each thumbnail is required to be of the same height, we can easily just find the product of the nth element&#8217;s position in the list and the height of a thumbnail to obtain its offset from the top.</p>
<pre>
var imgHeight = thumbs.attr("height");
</pre>
<p>The above line lets us obtain a thumbnail&#8217;s height. Remember that a collection of elements can be queried just like a normal element.</p>
<pre>
var scrollPos = (num+1)*imgHeight;
</pre>
<p>We now calculate the offset of the thumbnail we need. Since we need the thumbnail of the next element in the list and not of that image itself, we increment it by 1 before multiplying it by the height.</p>
<p>With all this info, we can now scroll the element to the height we need.</p>
<pre>
$("#thumbs").stop().animate({scrollTop: scrollPos}, 400);
</pre>
<p>We use jQuery&#8217;s animate property to alter the <em>scrollTop</em> property to the value we calculated above. If you are new to jQuery&#8217;s animation functions, refer to my <a href="http://net.tutsplus.com/tutorials/javascript-ajax/jquery-animations-a-7-step-program/">earlier article</a>. Essentially, we scroll the element x pixels from the top to create a carousel effect. </p>
<h2><span>Step 5:</span> A Few Tweaks</h2>
<h4>Polishing the Pseudo Infinite Effect</h4>
<p>We are essentially done but a few quick bits of code will make it a little bit more polished.</p>
<pre>
thumbs.slice(0,3).clone().appendTo("#thumbs");
</pre>
<p>This line essentially takes the first three thumbnails, copies them over to the end of the list. The <em>slice</em> method selects the first three elements, the <em>clone</em> methods clones these DOM elements and finally the <em>appendTo</em> methods adds them to the passed element.</p>
<p>We can&#8217;t just use the <em>appendTo</em> method since it plucks the selected elements from their current position before placing it as required. We need the <em>clone</em> method to copy them first.</p>
<p>We do this to make sure when we approach the final few thumbnails, the illusion of an infinite carousel remains. Else, the user just sees empty blocks which isn&#8217;t really what we need.</p>
<h4>Making it Auto Rotate</h4>
<p>Making the widget auto rotate is actually very simple. Since we have a proper event handler in place, we just have to call the handler every n microseconds. The following line will take care of that:</p>
<pre>
setInterval(sift, 8000);
</pre>
<p>In the above code, I&#8217;ve asked to call the <em>sift</em> function every eight seconds. Remember, the duration is passed in as microseconds so n thousand equals n seconds.</p>
<h4>Initializing the Widget</h4>
<p>Currently, the page loads with the widget uninitialized. We&#8217;ll need to rectify this. All we need to do is to call the <em>show</em> function passing in the starting position as a parameter.</p>
<p>After you&#8217;ve attached the event handler, add this: </p>
<pre>
show(index);
</pre>
<h2>The Final Code</h2>
<p>And we are done! The final code looks like so:</p>
<pre>
$(document).ready(function()
{
	var index = 0;
	var images = $("#gallery img");
	var thumbs = $("#thumbs img");
	var imgHeight = thumbs.attr("height");
	thumbs.slice(0,3).clone().appendTo("#thumbs");
	for (i=0; i&lt;thumbs.length; i++)
	{
		$(thumbs[i]).addClass("thumb-"+i);
		$(images[i]).addClass("image-"+i);
	}

	$("#next").click(sift);
	show(index);
	setInterval(sift, 8000);

	function sift()
	{
		if (index&lt;(thumbs.length-1)){index+=1 ; }
		else {index=0}
		show (index);
	}

	function show(num)
	{
		images.fadeOut(400);
		$(".image-"+num).stop().fadeIn(400);
		var scrollPos = (num+1)*imgHeight;
		$("#thumbs").stop().animate({scrollTop: scrollPos}, 400);
	}
});
</pre>
<h2>Conclusion</h2>
<p>And there you have it: we&#8217;ve created a simple but useful slider. Hopefully you&#8217;ve found this tutorial interesting and useful. Feel free to reuse this code elsewhere in your projects, and chime in within the comments if you are running into difficulties.</p>
<p>Questions? Nice things to say? Criticisms? Hit the comments section and leave me a comment. Happy coding!</p>
<ul>
<li>Follow us on <a href="http://www.twitter.com/nettuts">Twitter</a>, or subscribe to the <a href="http://feeds.feedburner.com/nettuts" title="Nettuts+ RSS Feed">Nettuts+ RSS Feed</a> for the best web development tutorials on the web. </li>
</ul>
<p><a href="http://feedads.g.doubleclick.net/~a/g4ywpjemk1zXHgwkxs-Lz_PnZdI/0/da"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_di" border="0"></img></a><br />
<a href="http://feedads.g.doubleclick.net/~a/g4ywpjemk1zXHgwkxs-Lz_PnZdI/1/da"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_di" border="0"></img></a></p>
<div>
<a href="http://feeds.feedburner.com/~ff/nettuts?a=YF12A0umgaE:9N-2LjL_Gy4:yIl2AUoC8zA"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_nettuts?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=YF12A0umgaE:9N-2LjL_Gy4:F7zBnMyn0Lo"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/5af76_nettuts?i=YF12A0umgaE:9N-2LjL_Gy4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=YF12A0umgaE:9N-2LjL_Gy4:V_sGLiPBpWU"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/18fd0_nettuts?i=YF12A0umgaE:9N-2LjL_Gy4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=YF12A0umgaE:9N-2LjL_Gy4:gIN9vFwOqvQ"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/18fd0_nettuts?i=YF12A0umgaE:9N-2LjL_Gy4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/nettuts?a=YF12A0umgaE:9N-2LjL_Gy4:TzevzKxY174"><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/18fd0_nettuts?d=TzevzKxY174" border="0"></img></a>
</div>
<p><img src="http://programmers.biz/wp-content/plugins/wp-o-matic/cache/18fd0_YF12A0umgaE" height="1" width="1" /></p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming/how-to-create-a-simple-itunes-like-slider/feed</wfw:commentRss>
		</item>
		<item>
		<title>Directory Submission Packages Campaign</title>
		<link>http://programmers.biz/programming-articles/directory-submission-packages-campaign</link>
		<comments>http://programmers.biz/programming-articles/directory-submission-packages-campaign#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:00:08 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/directory-submission-packages-campaign</guid>
		<description><![CDATA[Some people might want to use the software to submit their website link to a list of directories.Although this is going to be cheap,you must remember that submitting manually would result in higher qu&#8230;
Post from: Programmers.biz
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Some people might want to use the software to submit their website link to a list of directories.Although this is going to be cheap,you must remember that submitting manually would result in higher qu&#8230;</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/directory-submission-packages-campaign/feed</wfw:commentRss>
		</item>
		<item>
		<title>Skip the Requirements - 10 Problems With Web Development Projects, and How to Solve Them</title>
		<link>http://programmers.biz/programming-articles/skip-the-requirements-10-problems-with-web-development-projects-and-how-to-solve-them</link>
		<comments>http://programmers.biz/programming-articles/skip-the-requirements-10-problems-with-web-development-projects-and-how-to-solve-them#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:00:08 +0000</pubDate>
		<dc:creator>Programmers.biz Admin</dc:creator>
		
		<category><![CDATA[Programming Articles]]></category>

		<guid isPermaLink="false">http://programmers.biz/programming-articles/skip-the-requirements-10-problems-with-web-development-projects-and-how-to-solve-them</guid>
		<description><![CDATA[For most businesses, hiring a freelancer or web company to develop a web site is a frustrating but necessary endeavor. After working with over a hundred small businesses and organizations, we&#8217;ve discovered some pitfalls that make the whole thing worse. Fortunately, powerful new platforms like Drupal make it easy to make a steady stream of [...]<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></description>
			<content:encoded><![CDATA[<p>For most businesses, hiring a freelancer or web company to develop a web site is a frustrating but necessary endeavor. After working with over a hundred small businesses and organizations, we&#8217;ve discovered some pitfalls that make the whole thing worse. Fortunately, powerful new platforms like Drupal make it easy to make a steady stream of small changes to your site after it launches. Here&#8217;s how to align the interests of a web developer and a business to make sure your web site succeeds!</p>
<p>Post from: <a href="http://programmers.biz">Programmers.biz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://programmers.biz/programming-articles/skip-the-requirements-10-problems-with-web-development-projects-and-how-to-solve-them/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
