<?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>Chamli Tennakoon :: Art Director &#124; Graphic Designer &#124; Web Designer &#124; Branding &#124; Corporate ID &#124; Package Design &#124; in Orange County &#187; Web Design</title>
	<atom:link href="http://www.chamli.com/category/web-design/feed" rel="self" type="application/rss+xml" />
	<link>http://www.chamli.com</link>
	<description>Web Design in Los Angeles</description>
	<lastBuildDate>Mon, 07 Dec 2009 07:07:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language></language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>35 Excellent Wireframing Resources</title>
		<link>http://www.chamli.com/35-excellent-wireframing-resources</link>
		<comments>http://www.chamli.com/35-excellent-wireframing-resources#comments</comments>
		<pubDate>Mon, 07 Dec 2009 07:01:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=299</guid>
		<description><![CDATA[Wireframing is one of the most valuable parts of any web design project. It can save a designer tons of time by hashing out the details of a site’s architecture, functionality, and content prior to actually starting a visual design. But if done inefficiently, it can end up costing more time and can even create [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wireframing</strong> is one of the most valuable parts of any web design project. It can save a designer tons of time by hashing out the details of a site’s architecture, functionality, and content prior to actually starting a visual design. But if done inefficiently, it can end up costing more time and can even create bigger headaches for both the client and the designer.</p>
<p>Below are more than <strong>35 resources for creating better wireframes, including tutorials</strong> on different methods and a variety of tools available.</p>
<h3>1. Wireframing Articles</h3>
<p>Here are more than twenty wireframing articles, guides, and tutorials to help you improve your wireframing process. There’s information on everything from paper wireframing techniques to using programs like Adobe Illustrator for the wireframing stage of your designs.</p>
<p><a href="http://wireframes.linowski.ca/">Wireframes Magazine</a><br />
This site offers tons of resources and articles about wireframing. They include wireframe samples, UI tools, and job listings, as well as a place for designers to share their wireframes and wireframing tips. Popular articles have covered prototyping with the 960.gs grid system, graph paper sketch layouts, and wireframe moodboards.</p>
<p><a href="http://wireframes.linowski.ca/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/sketch.gif" alt="Sketch in 35 Excellent Wireframing Resources" width="500" height="409" /></a></p>
<p><a href="http://www.sitepoint.com/article/wire-frame-your-site/">Wire Frame Your Site</a><br />
A great introduction to the benefits of wireframing from Sitepoint. It offers a three-step approach to wireframing in addition to expounding on the benefits of using wireframes, including their ability to let you foresee potential problems before you get into the nitty-gritty of designing.</p>
<p><a href="http://www.sitepoint.com/article/wire-frame-your-site/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/sitepointwireframeyoursite.jpg" alt="Sitepointwireframeyoursite in 35 Excellent Wireframing Resources" width="450" height="410" /></a></p>
<p><a href="http://particletree.com/features/ajax-wireframing-approaches/">Ajax Wireframing Approaches</a><br />
A post in a series from Particletree about prototyping Ajax, this covers wireframing techniques. This article covers three excellent methods of wireframing dynamic content: Keyframing, stacking and TOP (Turn On Possibilities), as well as outlining the benefits and drawbacks of each.</p>
<p><a href="http://particletree.com/features/ajax-wireframing-approaches/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/ajaxwireframingapproaches.jpg" alt="Ajaxwireframingapproaches in 35 Excellent Wireframing Resources" width="450" height="381" /></a></p>
<p><a href="http://www.onextrapixel.com/2009/07/15/the-importance-of-wireframes-in-web-design-and-9-tools-to-create-wireframes/">The Importance of Wireframes in Web Design and 9 Tools to Create Wireframes</a><br />
A great overview of why wireframing is a good idea, along with tools for creating your own. This is a really comprehensive article that covers everything from creating wireframes to working with clients during the wireframing process to the benefits of wireframing over visual design in the early stages of a website design.</p>
<p><a href="http://www.onextrapixel.com/2009/07/15/the-importance-of-wireframes-in-web-design-and-9-tools-to-create-wireframes/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/theimportanceofwireframinginwebdesign.jpg" alt="Theimportanceofwireframinginwebdesign in 35 Excellent Wireframing Resources" width="450" height="310" /></a></p>
<p><a href="http://carsonified.com/blog/category/web-apps/wireframing/">20 Steps to Better Wireframing</a><br />
An awesome collection of twenty tips for creating better wireframes. Some of the objectives covered include being clear about your objectives, getting everyone involved and avoiding over-designing your wireframe. Added up, these tips should make anyone’s wireframing process easier and more efficient.</p>
<p><a href="http://carsonified.com/blog/category/web-apps/wireframing/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/20stepstobetterwireframing.jpg" alt="20stepstobetterwireframing in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://www.gracesmith.co.uk/get-wireframing-the-all-in-one-guide/">Get Wireframing: The All-In-One Guide</a><br />
A complete roundup of wireframing guides, techniques, tools, and more. It’s a great resource post with links to other sites, including a section for techniques, tools, examples, paper prototyping, and wireframing articles, among other links.</p>
<p><a href="http://www.gracesmith.co.uk/get-wireframing-the-all-in-one-guide/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/getwireframingtheallinoneguide.jpg" alt="Getwireframingtheallinoneguide in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://www.45royale.com/blog/articles/the-importance-of-wireframing/">The Importance of Wireframing</a><br />
A great article on why you should wireframe, along with resources to get your started. It’s a great rundown of the benefits of wireframing, including its ability to help clients focus and what they can teach you about your clients.</p>
<p><a href="http://www.45royale.com/blog/articles/the-importance-of-wireframing/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/theimportanceofwireframing.jpg" alt="Theimportanceofwireframing in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://www.mstoner.com/index.php/blog/comments/651/pwireframing_paper_wireframing">Pwireframing: Paper Wireframing</a><br />
This is probably one of my favorite wireframing techniques. It’s a paper-based method, but goes way beyond just making some rough sketches. The photos included really help solidify the technique in your mind.</p>
<p><a href="http://www.mstoner.com/index.php/blog/comments/651/pwireframing_paper_wireframing"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/pwireframe.jpg" alt="Pwireframe in 35 Excellent Wireframing Resources" width="450" height="276" /></a></p>
<p><a href="http://blog.semanticfoundry.com/2009/01/01/shades-of-gray-wireframes-as-thinking-device/">Shades of Gray: Wireframes as Thinking Device</a><br />
An article detailing tne designer’s reasons for using wireframes and their purpose. It really covers the personal wireframing experience of the author, including what they get from wireframing beyond the obvious results. Examples are included (both the wireframes and final site design).</p>
<p><a href="http://blog.semanticfoundry.com/2009/01/01/shades-of-gray-wireframes-as-thinking-device/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/shadesofgraywireframesasthinkingdevices.jpg" alt="Shadesofgraywireframesasthinkingdevices in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://www.from-the-couch.com/post.cfm/title/wireframing-over-the-shoulder">Wireframing Over the Shoulder</a><br />
A video showing a full wireframing process from start to finish by From the Couch. This is an actual fast-forwarded video of a designer sketching out a complete wireframe of a real site on paper.</p>
<p><a href="http://www.from-the-couch.com/post.cfm/title/wireframing-over-the-shoulder"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/wireframingovertheshoulder.jpg" alt="Wireframingovertheshoulder in 35 Excellent Wireframing Resources" width="450" height="388" /></a></p>
<p><a href="http://www.90percentofeverything.com/2008/01/02/the-boxing-glove-wireframing-technique/">The ‘Boxing Glove’ Wireframing Technique</a><br />
A guide to a big-picture wireframing technique. This is an incredibly simple and straight-forward technique that emphasizes three elements wireframes should help to clarify: proposition, concept, and context.</p>
<p><a href="http://www.90percentofeverything.com/2008/01/02/the-boxing-glove-wireframing-technique/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/theboxingglovewireframingtechnique.jpg" alt="Theboxingglovewireframingtechnique in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://www.clickz.com/1491921">Framing the Problem</a><br />
An article about wireframing from ClickZ. This article focuses on creating wireframes that answer three simple questions: What types of visitors need to be persuaded? What actions do they need to take? What information do they need to take action?</p>
<p><a href="http://www.clickz.com/1491921"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/framingtheproblem.jpg" alt="Framingtheproblem in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://www.seomoz.org/ugc/seo-wireframing">SEO Wireframing</a><br />
A guide to wireframing for search engine optimization purposes from SEOmoz. It describes the wireframing process strictly from an SEO perspective and reminds designers to keep in mind things like key functions for each page and building navigation with relevant keywords.</p>
<p><a href="http://www.seomoz.org/ugc/seo-wireframing"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/seowireframing.jpg" alt="Seowireframing in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://www.boxesandarrows.com/view/html_wireframes_and_prototypes_all_gain_and_no_pain">HTML Wireframes and Prototypes: All Gain and No Pain</a><br />
A guide to using HTML for wireframing and prototyping websites from Boxes and Arrows. It touts the benefits of creating HTML wireframes over visual-only types and offers up extensive information about creating your own HTML versions.</p>
<p><a href="http://www.boxesandarrows.com/view/html_wireframes_and_prototypes_all_gain_and_no_pain"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/htmlwireframesandprototypesallgainandnopain.jpg" alt="Htmlwireframesandprototypesallgainandnopain in 35 Excellent Wireframing Resources" width="450" height="450" /></a></p>
<p><a href="http://www.infosysblogs.com/eim/2009/06/the_ancient_art_of_wireframing_1.html">The Ancient Art of Wireframing</a><br />
A look at the history and benefits of wireframing. It also looks at more modern techniques appropriate for dynamic websites and offers up new standards for contemporary wireframes.</p>
<p><a href="http://www.infosysblogs.com/eim/2009/06/the_ancient_art_of_wireframing_1.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/theancientartofwireframing.jpg" alt="Theancientartofwireframing in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://www.optaros.com/blogs/i-need-see-it-wireframing-richer-web">“I Need to See It”—Wireframing for a Richer Web</a><br />
A discussion of some of the issues and solutions for wireframing rich media applications. This article also talks about the benefits of both interactive and “high-fidelity” wireframes, including definitions for each and how to go about creating each.</p>
<p><a href="http://www.optaros.com/blogs/i-need-see-it-wireframing-richer-web"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/ineedtoseeit.jpg" alt="Ineedtoseeit in 35 Excellent Wireframing Resources" width="450" height="398" /></a></p>
<p><a href="http://theprodesigner.com/better-perspective-in-wireframing/">Better Perspective in Wireframing</a><br />
A huge list of tips for creating better wireframes. It outlines tips like putting functionality first, focusing on the user experience and working to a deadline.</p>
<p><a href="http://theprodesigner.com/better-perspective-in-wireframing/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/betterperspectiveinwireframing.jpg" alt="Betterperspectiveinwireframing in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://www.peterpixel.nl/writings/wireframing-using-indesign/">Wireframing Using InDesign</a><br />
A downloadable guide to wireframing using Adobe InDesign, along with a sample file you can experiment with. The content comes partially from a workshop that was presented at a Communication and Multimedia Design course at Rotterdam about wireframing.</p>
<p><a href="http://www.peterpixel.nl/writings/wireframing-using-indesign/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/wireframingusingindesign.jpg" alt="Wireframingusingindesign in 35 Excellent Wireframing Resources" width="450" height="436" /></a></p>
<p><a href="http://wireframes.tumblr.com/">I &lt;3 Wireframes</a><br />
This site aggregates wireframe images from Flickr. It’s a great place to check out if you’re not sure what method of wireframing will work best for you, or if you just want to see how other people are approaching wireframing.</p>
<p><a href="http://wireframes.tumblr.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/iheartwireframes.jpg" alt="Iheartwireframes in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://muiomuio.com/web-design/website-wireframes">Website Wireframes</a><br />
This is a great overview of wireframing, including brief reviews of a number of wireframing tools. It includes tips for creating wireframes and an overview of the tools available for it.</p>
<p><a href="http://muiomuio.com/web-design/website-wireframes"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/websitewireframesmuiomuio.jpg" alt="Websitewireframesmuiomuio in 35 Excellent Wireframing Resources" /></a></p>
<p><a href="http://www.workwithiws.com/news/wireframing-web-applications-">Wireframing Web Applications</a><br />
An article focused specifically on wireframing web apps as opposed to less complicated websites. This is an excellent guide to the particular challenges presented when wireframing dynamic applications and includes an overview of tools appropriate for creating dynamic wireframes.</p>
<p><a href="http://www.workwithiws.com/news/wireframing-web-applications-"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/wireframingwebapplications.jpg" alt="Wireframingwebapplications in 35 Excellent Wireframing Resources" width="450" height="350" /></a></p>
<p><a href="http://pasteinteractive.com/blog/2009/01/content-wireframing-ducks-meet-row/">Content Wireframing: Ducks Meet Row.</a><br />
A great guide to wireframing your content. This article covers the particular challenges and requirements of wireframing a site’s content, as opposed to just it’s structure and functionality.</p>
<p><a href="http://pasteinteractive.com/blog/2009/01/content-wireframing-ducks-meet-row/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/contentwireframingducksmeetrow.jpg" alt="Contentwireframingducksmeetrow in 35 Excellent Wireframing Resources" width="450" height="400" /></a></p>
<p><a href="http://graphicdesign.about.com/od/effectivewebsites/ss/wireframes.htm">How to Create Website Wireframes</a><br />
A complete wireframing how-to from About.com. This article is broken down into four parts: the focus of wireframes, what a wireframe should include, how to create a wireframe and the benefits of wireframing.</p>
<p><a href="http://graphicdesign.about.com/od/effectivewebsites/ss/wireframes.htm"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/howtocreatewebsitewireframes.jpg" alt="Howtocreatewebsitewireframes in 35 Excellent Wireframing Resources" width="450" height="341" /></a></p>
<p><a href="http://exitcreative.net/blog/2008/09/how-to-wireframe/">How to Wireframe</a><br />
Here’s a video tutorial for creating a wireframe. It also includes tips on creating better wireframes, like using a grid to line everything up and adding everything you think you’ll need and then removing things afterward.</p>
<p><a href="http://exitcreative.net/blog/2008/09/how-to-wireframe/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/howtowireframevideo.jpg" alt="Howtowireframevideo in 35 Excellent Wireframing Resources" width="450" height="368" /></a></p>
<p><a href="http://konigi.com/notebook/speed-wireframing-nick-finck">Speed Wireframing with Nick Finck</a><br />
A video outlining Nick Finck’s wireframing process. The wireframe created is done using OmniGraffle and a wireframe stencil kit.</p>
<p><a href="http://konigi.com/notebook/speed-wireframing-nick-finck"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/speedwireframingwithnickfinck.jpg" alt="Speedwireframingwithnickfinck in 35 Excellent Wireframing Resources" width="450" height="403" /></a></p>
<h3>2. Wireframing and Mockup Tools</h3>
<p>There are a number of tools available beyond just pen and paper to help you build wireframes for websites and online apps. Below are a few options, as well as some roundup posts to help you choose the right solution for you.</p>
<p><a href="http://www.evolus.vn/Pencil/Home.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/wireframing-resources/pencilproject.jpg" alt="Pencilproject in 35 Excellent Wireframing Resources" width="450" height="342" /></a></p>
<p><a href="http://www.evolus.vn/Pencil/Home.html">Pencil Project</a><br />
A Firefox plugin that lets you do GUI prototyping right in your browser. It includes all the standard drawing tools you’d expect, plus it’s cross-platform compatible and can accept user-defined stencils.</p>
<p><a href="http://www.cmswire.com/cms/featured-articles/web-design-top-5-wireframing-tools-002922.php#evt-never">Web Design: Top 5 Wireframing Tools</a><br />
A review of five wireframing tools from CMS Wire. Tools included are OmniGraffle, MockupScreens, iRise, Axure, and MindJet MindManager.</p>
<p><a href="http://iplotz.com/">iPlotz</a><br />
A tool to create clickable and navigable website mockups. There are free and paid plans available, with prices ranging up to $495.</p>
<p><a href="http://www.jumpchart.com/">Jumpchart</a><br />
Another tool for creating clickable website mockups. Jumpstart has free and paid plans, with prices ranging up to $50/month.</p>
<p><a href="http://konigi.com/node/1416">Wireframes</a><br />
A brief article with a huge list of wireframing software, both desktop and web-based.</p>
<p><a href="http://hello.hotgloo.com/">Hot Gloo</a><br />
A wireframing app designed for designers and programmers. The beta version is currently free to use.</p>
<p><a href="http://aiburn.com/article/building_a_website_wireframe_in_illustrator">Building a Website Wireframe in Illustrator</a><br />
A great guide to using Adobe Illustrator for your wireframes. This is a very complete tutorial, complete with screenshots taken during the process.</p>
<p><a href="http://www.balsamiq.com/products/mockups">Balsamiq Mockups</a><br />
A web-based wireframing and mockup tool. There are free and paid version available. The paid one is $79.</p>
<p><a href="http://www.networkworld.com/newsletters/web/2009/030209web1.html">Wireframing Web Applications</a><br />
An article comparing three different wireframing tools, both desktop and web-based, including Gliffy Online and Balsamiq Mockups.</p>
<p><a href="http://templatr.cc/">Templatr</a><br />
While Templatr is generally thought of as a template generator, it can work really well as a wireframing program. Just choose the layout you want to use and customize it as much or as little as you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/35-excellent-wireframing-resources/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Designing Websites for Kids: Trends and Best Practices</title>
		<link>http://www.chamli.com/designing-websites-for-kids-trends-and-best-practices</link>
		<comments>http://www.chamli.com/designing-websites-for-kids-trends-and-best-practices#comments</comments>
		<pubDate>Mon, 07 Dec 2009 06:42:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Be a Designer]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=294</guid>
		<description><![CDATA[How would you like to design a beautiful, colorful, stimulating website that is captivating, memorable, and allows you to let your creative juices flow without the need to worry too much about conventional usability and best practices? In today’s web design market, it’s rare that such a project would present itself — unless you were [...]]]></description>
			<content:encoded><![CDATA[<p>How would you like to design a beautiful, colorful, stimulating website that is captivating, memorable, and allows you to let your creative juices flow without the need to worry too much about conventional usability and best practices? In today’s web design market, it’s rare that such a project would present itself — unless you were asked to design a website for children!</p>
<p>Websites designed for children have been largely overlooked in web design articles and design roundups, but there are many beautiful and interesting design elements and layouts presented on children’s websites that are worthy of discussion and analysis. There are also <strong>a number of best practices that are exclusive to web design for children’s sites</strong> — practices that should usually not be attempted on a typical website.</p>
<p>This article will showcase a number of popular commercial websites targeted towards children, with an analysis of trends, elements, and techniques used to help keep children interested and stimulated.</p>
<h3>Design That Stimulates the Senses</h3>
<p>Humans are mentally stimulated by a number of factors, and this is especially true with children. Successful children’s websites implement a number of elements and design principles that create an environment suited for a child’s personality and interests.</p>
<h4>Bright, Vivid Colors</h4>
<p>Bright colors will easily capture and hold a child’s attention for long periods of time. Although color choice is a primary factor in designing any type of website, this is especially true when designing a website for children since <strong>colors make a big impression on children’s young minds</strong>. Color choices and combinations that would likely be rejected or laughed at when designing a typical website may be welcomed on a website for children.</p>
<p>How many of the color combinations used in the screenshots below would succeed on a website aimed at an adult audience? Not many. So, when designing a site aimed at kids, use bright, vivid colors that will visually stimulate in an unforgettable way.</p>
<p><a href="http://pbskids.org/">PBS KIDS</a></p>
<p><a href="http://pbskids.org/"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/pbs-colors.jpg" alt="Pbs-colors in Designing Websites for Kids: Trends and Best Practices" width="500" height="335" /></a></p>
<p><a href="http://www.hermanshomepage.com/flash5/player.htm">Herman’s Homepage</a></p>
<p><a href="http://www.hermanshomepage.com/flash5/player.htm"><img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/hermans-colors.jpg" alt="Hermans-colors in Designing Websites for Kids: Trends and Best Practices" width="500" height="351" /></a></p>
<p><a href="http://www.funbrain.com/brain/SweepsBrain/sweepsbrain.html">Funbrain Playground</a></p>
<p><a href="http://www.funbrain.com/brain/SweepsBrain/sweepsbrain.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/funbrain-colors.jpg" alt="Funbrain-colors in Designing Websites for Kids: Trends and Best Practices" width="500" height="354" /></a></p>
<h4>A Happy Mood</h4>
<p>Kids will remember and return to a website if their experience is a happy one. Elements can be incorporated into the design to ensure that a cheerful, positive mood is presented.</p>
<p><a href="http://tv.disney.go.com/playhouse/mickeymouseclubhouse/index.html">Mickey Mouse Clubhouse</a> creates a happy mood by making Mickey himself a visual focal point on the page. His happy face and body language help enhance this happy feeling, creating a welcome atmosphere.</p>
<p><a href="http://tv.disney.go.com/playhouse/mickeymouseclubhouse/index.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/mickey-colors.jpg" alt="Mickey-colors in Designing Websites for Kids: Trends and Best Practices" width="500" height="327" /></a></p>
<p>The <a href="http://www.hasbro.com/playdoh/en_US/">Play-Doh</a> website creates a happy mood using a beaming child as the focal point.</p>
<p><a href="http://www.hasbro.com/playdoh/en_US/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/playdoh-colors.jpg" alt="Playdoh-colors in Designing Websites for Kids: Trends and Best Practices" width="500" height="325" /></a></p>
<p>The <a href="http://www.fifiandtheflowertots.com/">Fifi and the Flowertots</a> website has a large smiling Flowertot character in visual focus, creating a happy mood.</p>
<p><a href="http://www.fifiandtheflowertots.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/fifi-happy.jpg" alt="Fifi-happy in Designing Websites for Kids: Trends and Best Practices" width="500" height="281" /></a></p>
<h4>Elements From Nature</h4>
<p>Children are stimulated by recognizable elements that they can relate to. Because children’s experiences in life are limited, some of the things they are most familiar with are found in nature. Natural elements such as trees, water, snow, and animals are used in the websites shown below. In many cases, these elements are overemphasized through size or simplicity of design.</p>
<p>The <a href="http://disney.go.com/index">Disney</a> website alters its theme depending on what product is being promoted. In this screenshot, they use a Grand Canyon-like landscape to create a memorable visual experience.</p>
<p><a href="http://disney.go.com/index"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/disney-nature.jpg" alt="Disney-nature in Designing Websites for Kids: Trends and Best Practices" width="500" height="318" /></a></p>
<p><a href="http://kids.discovery.com/">Discovery Kids</a> uses an underwater theme.</p>
<p><a href="http://kids.discovery.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/discovery-water.jpg" alt="Discovery-water in Designing Websites for Kids: Trends and Best Practices" width="500" height="329" /></a></p>
<p><a href="http://www.clubpenguin.com/">Club Penguin</a> presents an arctic theme.</p>
<p><a href="http://www.clubpenguin.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/clubpenguin-snow.jpg" alt="Clubpenguin-snow in Designing Websites for Kids: Trends and Best Practices" width="500" height="403" /></a></p>
<p><a href="http://www.cbc.ca/kids/">CBC Kids</a> uses a seasonal theme based on simplistic, eye-catching graphics.</p>
<p><a href="http://www.cbc.ca/kids/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/cbckids-trees.jpg" alt="Cbckids-trees in Designing Websites for Kids: Trends and Best Practices" width="500" height="292" /></a></p>
<p><a href="http://www.popcap.com/">PopCap Games</a> uses a grassy landscape in front of large rays of sun.</p>
<p><a href="http://www.popcap.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/popcap-grass.jpg" alt="Popcap-grass in Designing Websites for Kids: Trends and Best Practices" width="500" height="308" /></a></p>
<h3>Larger-Than-Life Design</h3>
<p>Large design elements have proved to be effective in all types of web design, demonstrated by the fact that large typography, large buttons, and large call-to-action areas have become commonplace in modern design. Because children are naturally drawn to simple, obvious, and recognizable objects, websites designed for children will increase their effectiveness through the use of large design elements.</p>
<h4>Animated Characters</h4>
<p>Large, animated, speaking characters are a fascinating and captivating way to grab and hold a child’s attention. Many sites designed for children use this element effectively.</p>
<p><a href="http://barbie.everythinggirl.com/">Barbie</a></p>
<p><a href="http://barbie.everythinggirl.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/barbie-sound.jpg" alt="Barbie-sound in Designing Websites for Kids: Trends and Best Practices" width="500" height="432" /></a></p>
<p><a href="http://pbskids.org/rogers/castle.html">Mr. Rogers’ Neighborhood</a></p>
<p><a href="http://pbskids.org/rogers/castle.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/mrrogers-characters.jpg" alt="Mrrogers-characters in Designing Websites for Kids: Trends and Best Practices" width="500" height="410" /></a></p>
<p><a href="http://disney.go.com/princess/">Disney Princess</a></p>
<p><a href="http://disney.go.com/princess/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/princess-big.jpg" alt="Princess-big in Designing Websites for Kids: Trends and Best Practices" width="500" height="295" /></a></p>
<p><a href="http://www.thomasandfriends.com/">Thomas the Tank Engine</a></p>
<p><a href="http://www.thomasandfriends.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/thomas-sound.jpg" alt="Thomas-sound in Designing Websites for Kids: Trends and Best Practices" width="500" height="365" /></a></p>
<p><a href="http://www.barney.com/">Barney &amp; Friends</a></p>
<p><a href="http://www.barney.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/barney-sound.jpg" alt="Barney-sound in Designing Websites for Kids: Trends and Best Practices" width="500" height="315" /></a></p>
<h4>Depth in Design</h4>
<p>Children like to let their imaginations run wild in a world that looks and feels real. This kind of atmosphere can be created through depth in design elements. This might include extruded shapes, shadows, landscapes, beveled effects, shiny gradients, or floating objects. Often, many of these elements are present in <strong>cartoon-like</strong> displays, as shown below.</p>
<p>The <a href="http://www.webkinz.com/">Webkinz®</a> “Adoption Center” uses shadows, a life-like character, and other 3-dimensional elements to create a design that has depth.</p>
<p><a href="http://www.webkinz.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/webkinz-sound.jpg" alt="Webkinz-sound in Designing Websites for Kids: Trends and Best Practices" width="500" height="414" /></a></p>
<p><a href="http://www.poissonrouge.com/">Poisson Rouge</a> creates a deep, realistic atmosphere using a window that looks outside at the sun, along with a number of other 3-dimensional elements.</p>
<p><a href="http://www.poissonrouge.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/poissonrouge-big.jpg" alt="Poissonrouge-big in Designing Websites for Kids: Trends and Best Practices" width="500" height="336" /></a></p>
<p><a href="http://www.rainbowmagiconline.com/">Rainbow Magic</a> creates depth in their design through a Flash-animated landscape scene that moves as the user hovers over different elements.</p>
<p><a href="http://www.rainbowmagiconline.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/rainbow-depth.jpg" alt="Rainbow-depth in Designing Websites for Kids: Trends and Best Practices" width="500" height="265" /></a></p>
<h4>Navigation and Call-to-Action Areas That Stand Out</h4>
<p>In any website design, navigation and call-to-action areas should be focal points. Children’s website designers can <strong>oversimplify these areas</strong> so that children can navigate easily. Text-based navigation on children’s websites would not be as effective as large buttons and graphics, because they would lack visual focus on a page.</p>
<p><a href="http://www.peppapig.com/">Peppa Pig</a> has a horizontal navigation bar that includes large icons and easy-to-read descriptions for each item.</p>
<p><a href="http://www.peppapig.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/peppapig-nav.jpg" alt="Peppapig-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="361" /></a></p>
<p>The <a href="http://disney.go.com/pooh/">Winnie The Pooh</a> website incorporates their navigation bar into their “forest” theme, using large wooden graphical elements that won’t be overlooked by the user.</p>
<p><a href="http://disney.go.com/pooh/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/winnie-nav.jpg" alt="Winnie-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="420" /></a></p>
<p><a href="http://www.sesamestreet.org/">Sesame Street</a> has an easy-to-locate horizontal navigation bar, along with large call-to-action areas.</p>
<p><a href="http://www.sesamestreet.org/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/sesame-big.jpg" alt="Sesame-big in Designing Websites for Kids: Trends and Best Practices" width="500" height="382" /></a></p>
<p><a href="http://www.hasbro.com/mylittlepony/en_US/discover/meet-the-ponies.cfm">My Little Pony</a> uses text-based navigation, creating a less-graphical experience, which allows focus on the content elements. This might be ideal in some situations, but on a children’s website a graphic-based navigation bar is more likely to be effective.</p>
<p><a href="http://www.hasbro.com/mylittlepony/en_US/discover/meet-the-ponies.cfm"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/mylittlepony-big.jpg" alt="Mylittlepony-big in Designing Websites for Kids: Trends and Best Practices" width="500" height="324" /></a></p>
<h3>User Interaction</h3>
<p>Probably one of the most important ways for a children’s website to succeed is to include elements that allow a child to interact with the site in some way. Children don’t want to do intense reading or research; <strong>they want to play and be entertained</strong>.</p>
<p>On a typical website, certain design elements are viewed as distracting, unusable, and cumbersome. On a child’s website, those same elements are viewed as an effective means of attracting users.</p>
<h4>Interaction Through Animation and Sound</h4>
<p>Effects and experiences created with Adobe Flash are discouraged in typical modern web design, but on children’s sites there is almost no other option. It’s true that JavaScript animation and effects have come a long way because of the many JavaScript libraries available, but the ease with which complex animations can be created with Flash makes this method the first choice for many commercial websites designed for kids.</p>
<p>The <a href="http://www.paulysplayhouse.com/">Pauly’s Playhouse</a> site, like most of the websites featured in this article, is built entirely in Flash.</p>
<p><a href="http://www.paulysplayhouse.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/paulys-flash.jpg" alt="Paulys-flash in Designing Websites for Kids: Trends and Best Practices" width="500" height="364" /></a></p>
<p>The <a href="http://www.hotwheels.com/">Hot Wheels</a> website includes an animated “car of the day” that zooms onto the screen when the page loads, creating visual interaction.</p>
<p><a href="http://www.hotwheels.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/hotwheels-car.jpg" alt="Hotwheels-car in Designing Websites for Kids: Trends and Best Practices" width="500" height="318" /></a></p>
<p><a href="http://www.roarytheracingcar.com/">Roary the Racing Car</a> has a brief “flash intro” with a “skip” button. This is an old-school trend in typical web design, but is an effective means of catering to a child-based audience. The intro animates through a road until the characters appear on the horizon. This helps the user feel as though they’re personally entering Roary’s animated world.</p>
<p><a href="http://www.roarytheracingcar.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/roary-intro.jpg" alt="Roary-intro in Designing Websites for Kids: Trends and Best Practices" width="500" height="354" /></a></p>
<p>The <a href="http://kids.yahoo.com/">Yahoo! Kids</a> navigation bar is created with Flash and makes sound effects and animates when its items are hovered over. This trend is very common on many of the sites featured in this article.</p>
<p><a href="http://kids.yahoo.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/yahookids-nav.jpg" alt="Yahookids-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="181" /></a></p>
<h4>Interaction Through Video</h4>
<p>Television is known to <strong>captivate child audiences for hours</strong>, which is why “Saturday morning cartoons” have for decades been a lucrative part of the broadcast schedules for many TV Networks. Similarly, video on a child’s website adds a fun, interactive, and educational aspect to a site’s content.</p>
<p><a href="http://www.cbc.ca/kidscbc/#/videos/">Kids’ CBC – Video</a></p>
<p><a href="http://www.cbc.ca/kidscbc/#/videos/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/cbckids-video.jpg" alt="Cbckids-video in Designing Websites for Kids: Trends and Best Practices" width="500" height="392" /></a></p>
<p><a href="http://kids.yahoo.com/movies">Yahoo! Kids Movie Guides</a></p>
<p><a href="http://kids.yahoo.com/movies"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/yahookids-video.jpg" alt="Yahookids-video in Designing Websites for Kids: Trends and Best Practices" width="500" height="417" /></a></p>
<p><a href="http://kids.nationalgeographic.com/Videos/">National Geographic Kids – Videos</a></p>
<p><a href="http://kids.nationalgeographic.com/Videos/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/ngkids-video.jpg" alt="Ngkids-video in Designing Websites for Kids: Trends and Best Practices" width="500" height="375" /></a></p>
<h4>Interaction Through Games</h4>
<p>What child does not enjoy playing games? One of the most effective ways to entertain, educate or otherwise occupy a child on a website is to include a “games” section. Almost all the websites researched for this article include games that educate, stimulate, and allow direct interaction, while also incorporating many of the design elements already discussed. Below are some examples.</p>
<p><a href="http://www.bbc.co.uk/cbeebies/#/lb/gordonthegardengnome/gordonsgardeninggame">CBeebies – Gordon the Garden Gnome</a></p>
<p><a href="http://www.bbc.co.uk/cbeebies/#/lb/gordonthegardengnome/gordonsgardeninggame"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/cbeebies-game.jpg" alt="Cbeebies-game in Designing Websites for Kids: Trends and Best Practices" width="500" height="344" /></a></p>
<p><a href="http://disney.go.com/ToyStory/#/games">Toy Story – Woody’s Big Escape</a></p>
<p><a href="http://disney.go.com/ToyStory/#/games"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/toystory-game.jpg" alt="Toystory-game in Designing Websites for Kids: Trends and Best Practices" width="500" height="389" /></a></p>
<p><a href="http://worldofcars.go.com/">Disney Pixar’s World of Cars</a> allows users to create, share, and race their own custom cars.</p>
<p><a href="http://worldofcars.go.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/pixarcars-create.jpg" alt="Pixarcars-create in Designing Websites for Kids: Trends and Best Practices" width="500" height="388" /></a></p>
<h4>Printable Elements</h4>
<p>Kids like to have something tangible to take with them, to help them remember their experience. Printable <strong>pictures and colouring pages</strong> allow kids to have a keepsake of their experience, while giving website owners an opportunity to enhance and promote their brand outside of the computer screen. Below are some examples of printable colouring pages on kids’ websites.</p>
<p><a href="http://www.pingu.net/ca/english/more_free_pingu_coloring_pages_for_free.htm">Pingu Coloring Pages</a></p>
<p><a href="http://www.pingu.net/ca/english/more_free_pingu_coloring_pages_for_free.htm"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/pingu-coloring.jpg" alt="Pingu-coloring in Designing Websites for Kids: Trends and Best Practices" width="500" height="343" /></a></p>
<p><a href="http://www.crayola.com/coloring_application/">Crayola Digi-Color</a></p>
<p><a href="http://www.crayola.com/coloring_application/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/crayola-coloring.jpg" alt="Crayola-coloring in Designing Websites for Kids: Trends and Best Practices" width="500" height="325" /></a></p>
<p><a href="http://www.peppapig.com/">Peppa Pig Colouring Pages</a></p>
<p><a href="http://www.peppapig.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/peppapig-coloring.jpg" alt="Peppapig-coloring in Designing Websites for Kids: Trends and Best Practices" width="500" height="289" /></a></p>
<p><a href="http://www.thomasandfriends.com/ca/activities_online_coloring_1.asp">Thomas and Friends Online Colouring</a></p>
<p><a href="http://www.thomasandfriends.com/ca/activities_online_coloring_1.asp"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/thomas-coloring.jpg" alt="Thomas-coloring in Designing Websites for Kids: Trends and Best Practices" width="500" height="342" /></a></p>
<p><a href="http://pbskids.org/teletubbies/print.html">Teletubbies – Print To Color</a></p>
<p><a href="http://pbskids.org/teletubbies/print.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/teletubbies-coloring.jpg" alt="Teletubbies-coloring in Designing Websites for Kids: Trends and Best Practices" width="500" height="273" /></a></p>
<h3>Unconventional Methods</h3>
<p>We’ve already discussed a number of elements that, in modern typical web design, are now considered unconventional. Sound, animation, and large obtrusive graphics are often frowned upon in typical web design. On children’s websites, <strong>these elements help the user experience</strong>. Other unconventional elements and design choices are discussed below.</p>
<h4>Changing the Cursor</h4>
<p>This is absolutely viewed as a bad practice in standard web design, but can be a fun, effective way of adding a playful element to a kids’ website theme. This can be done using dynamic HTML, but is more often done via Flash.</p>
<p>The cursor on the <a href="http://kids.discovery.com/">Discovery Kids</a> website turns into a snapping bear trap graphic.</p>
<p><a href="http://kids.discovery.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/discovery-cursor.jpg" alt="Discovery-cursor in Designing Websites for Kids: Trends and Best Practices" width="500" height="307" /></a></p>
<p>The cursor on the <a href="http://www.sesamestreet.org/">Sesame Street</a> website is followed by a yellow star when it hovers over standard HTML elements, and turns into a yellow star surrounded by smaller animated stars when the cursor is moved over clickable Flash elements.</p>
<p><a href="http://www.sesamestreet.org/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/sesame-cursor.jpg" alt="Sesame-cursor in Designing Websites for Kids: Trends and Best Practices" width="500" height="426" /></a></p>
<h4>Talking Navigation</h4>
<p>Sometimes a navigation bar will produce sound effects, but in other cases, the navigation links will sound out what they represent in a cheerful voice.</p>
<p>The <a href="http://pbskids.org/">PBS KIDS</a> navigation bar speaks using children’s voices, when the user hovers over it.</p>
<p><a href="http://pbskids.org/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/pbs-nav.jpg" alt="Pbs-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="138" /></a></p>
<p>The <a href="http://www.bbc.co.uk/cbeebies/">CBeebies</a> navigation bar uses a voice to sound out the destination of each navigation item.</p>
<p><a href="http://www.bbc.co.uk/cbeebies/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/cbeebies-nav.jpg" alt="Cbeebies-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="135" /></a></p>
<p>The <a href="http://www.bobthebuilder.com/">Bob the Builder</a> navigation bar speaks to the user on mouseover.</p>
<p><a href="http://www.bobthebuilder.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/bob-nav.jpg" alt="Bob-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="58" /></a></p>
<p>The <a href="http://www.fifiandtheflowertots.com/">Fifi and the Flowertots</a> features a speaking navigation bar.</p>
<p><a href="http://www.fifiandtheflowertots.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/fifi-nav.jpg" alt="Fifi-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="98" /></a></p>
<h4>Breaking the Grid</h4>
<p>While traditional modern web design techniques have embraced the benefits and aesthetics of grid-based design, kids’ websites can <strong>break free from an overly structured layout</strong> to create a unique world that a child will enjoy experiencing.</p>
<p>This is not to suggest that using a grid as the basis of the design is wrong. It may be beneficial to start with a grid, then <strong>design elements outside the grid</strong> in a controlled manner. This flexibility in design and layout is demonstrated on a number of the sites already discussed, but is also evident in the navigation bars of the examples below.</p>
<p>The navigation bar on the <a href="http://spongebob.ytv.com/">Spongebob Squarepants</a> website is slanted, going against convention in typical grid-based web design.</p>
<p><a href="http://spongebob.ytv.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/spongebob-nav.jpg" alt="Spongebob-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="325" /></a></p>
<p>The <a href="http://tv.disney.go.com/disneychannel/hannahmontana/index.html">Hannah Montana</a> website features navigation bar graphics that break the grid.</p>
<p><a href="http://tv.disney.go.com/disneychannel/hannahmontana/index.html"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/hannah-nav.jpg" alt="Hannah-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="409" /></a></p>
<p>The <a href="http://www.inthenightgarden.co.uk/">In the Night Garden</a> website features a very unusual navigation bar design that bears little resemblance to that found in a conventionally-structured design.</p>
<p><a href="http://www.inthenightgarden.co.uk/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/inthenight-nav.jpg" alt="Inthenight-nav in Designing Websites for Kids: Trends and Best Practices" width="500" height="165" /></a></p>
<p>Below are some examples of websites that utilize a more rigid, grid-based format, and as a result are not as unique, memorable, or captivating as some of those already considered in this article.</p>
<p><a href="http://www.kidswb.com/">Kids WB</a> is rigid, and not as memorable.</p>
<p><a href="http://www.kidswb.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/wb-structure.jpg" alt="Wb-structure in Designing Websites for Kids: Trends and Best Practices" width="500" height="369" /></a></p>
<p>The <a href="http://www.crayola.com/">Crayola</a> website is somewhat old-school with its grid format and vertical navigation.</p>
<p><a href="http://www.crayola.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/crayola-structure.jpg" alt="Crayola-structure in Designing Websites for Kids: Trends and Best Practices" width="500" height="366" /></a></p>
<p><a href="http://www.neopets.com/">Neopets</a> is also designed on a more structured grid.</p>
<p><a href="http://www.neopets.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/neopets-structure.jpg" alt="Neopets-structure in Designing Websites for Kids: Trends and Best Practices" width="500" height="346" /></a></p>
<p>Granted, in some cases a stronger grid-based design would be necessary if the audience was an older child audience, as is the case with <a href="http://www.sikids.com/">SI Kids</a>, shown below.</p>
<p><a href="http://www.sikids.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/sikids-structure.jpg" alt="Sikids-structure in Designing Websites for Kids: Trends and Best Practices" width="500" height="355" /></a></p>
<h3>Taking Responsibility</h3>
<p>If you are attempting to reach the minds and hearts of young, impressionable people through an online experience, you are entrusted with a weighty responsibility. Children are mentally fragile, and easily affected by what they see, hear, and touch. There are certain factors that need to be addressed on every children’s website, to ensure no harm is being brought to the children.</p>
<h4>Promoting Education</h4>
<p>Games and other interactive elements should be created not just to promote your company’s brand and identity, but to help educate and train young minds in a beneficial and positive way. Promoting education through games and activities <strong>will show that your company cares</strong> about the user and how their online experience might affect them in the future.</p>
<p><a href="http://www.fisher-price.com/fp.aspx?st=10&amp;e=gamesLanding&amp;mcat=game_infant,game_toddler,game_preschool">Online Learning Games from Fisher Price</a> include games that vary according to age group.</p>
<p><a href="http://www.fisher-price.com/fp.aspx?st=10&amp;e=gamesLanding&amp;mcat=game_infant,game_toddler,game_preschool"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/fisherprice-games.jpg" alt="Fisherprice-games in Designing Websites for Kids: Trends and Best Practices" width="500" height="302" /></a></p>
<p><a href="http://www.funbrain.com/">Funbrain</a> promotes itself as “The Internet’s #1 Education Site for K-8 Kids and Teachers.”</p>
<p><a href="http://www.funbrain.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/funbrain-education.jpg" alt="Funbrain-education in Designing Websites for Kids: Trends and Best Practices" width="500" height="332" /></a></p>
<h4>Information for Parents</h4>
<p>Parents will be keeping a close eye on their children’s internet habits. Many children’s sites are aware of this, so they include information that is geared towards parents. Sometimes this is in the form of a tip, as is the case with the Sesame Street games website, or simply a navigation item that points to a parent’s section.</p>
<p><a href="http://www.sesamestreet.org/game_player?p_p_lifecycle=0&amp;p_p_id=gamePlayer_WAR_sesameportlets4369&amp;p_p_uid=5630d5f2-163d-11dd-98c7-b9f43dcf5330&amp;t=1257836155383&amp;">Sesame Street Games</a> includes a “Parent Tip” box.</p>
<p><a href="http://www.sesamestreet.org/game_player?p_p_lifecycle=0&amp;p_p_id=gamePlayer_WAR_sesameportlets4369&amp;p_p_uid=5630d5f2-163d-11dd-98c7-b9f43dcf5330&amp;t=1257836155383&amp;"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/sesame-parent.jpg" alt="Sesame-parent in Designing Websites for Kids: Trends and Best Practices" width="500" height="337" /></a></p>
<p><a href="http://www.ben10.net/">BEN 10</a> has a “Parent Stuff” link in their primary navigation bar.</p>
<p><a href="http://www.ben10.net/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/ben10-parents.jpg" alt="Ben10-parents in Designing Websites for Kids: Trends and Best Practices" width="500" height="386" /></a></p>
<p><a href="http://www.thomasandfriends.com/">Thomas the Tank Engine</a> includes a “parents” link.</p>
<p><a href="http://www.thomasandfriends.com/"><img style="display: inline;" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/11/thomas-parents.jpg" alt="Thomas-parents in Designing Websites for Kids: Trends and Best Practices" width="500" height="297" /></a></p>
<h3>Usability Testing</h3>
<p>Finally, one of the best ways to help build a successful online experience for children is through watching children navigate and interact with your site’s games and other unique features. Not all companies will have the budget for extensive testing, but almost all will have the ability to do at least a minimal amount of testing — <strong>even if it’s with just one child</strong>. This will allow you to see the site through a child’s eyes and make any necessary modifications, the same as would be done in any usability tests.</p>
<p>Companies like Disney, Sesame Street, and PBS, of course, have been studying the behaviour of children for years, so many of the examples showcased above could be utilized to form the basis for a successful children’s website, even if no usability testing is done.</p>
<h3>Conclusion</h3>
<p>Here is a summary of both conventional and unconventional best practices for designing a website for kids.</p>
<h4>Conventional Best Practices</h4>
<ul>
<li>Create elements that are large and visually memorable</li>
<li>Use bright, vivid colors that stimulate the senses</li>
<li>Incorporate elements from nature</li>
<li>Create depth in the design</li>
<li>Add navigational elements that are large and easy to find</li>
<li>Use video</li>
<li>Include printable elements</li>
<li>Break the grid</li>
<li>Make modifications based on usability testing</li>
</ul>
<h4>Unconventional Best Practices</h4>
<ul>
<li>Create a happy, playful mood</li>
<li>Use animated characters</li>
<li>Use graphic-heavy navigation bars</li>
<li>Use Flash animation abundantly</li>
<li>Embed motions and sounds that trigger on page load</li>
<li>Include a “games” section</li>
<li>Change the cursor to contribute to the theme</li>
<li>Add voices to navigation rollovers</li>
<li>Be accountable to both children and parents</li>
</ul>
<p>A web designer who has worked on a children’s website would likely say that it was one of the most fun and interesting projects they’ve had the privilege of working on. If you ever have the opportunity to create a user experience that is geared towards children, be sure to follow some of the proven methods demonstrated on many of the sites discussed here, and your website will have a good chance to be a big hit with children.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/designing-websites-for-kids-trends-and-best-practices/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>100 Premium Like But Free Wordpress Themes: Year 2009</title>
		<link>http://www.chamli.com/100-premium-like-but-free-wordpress-themes-year-2009</link>
		<comments>http://www.chamli.com/100-premium-like-but-free-wordpress-themes-year-2009#comments</comments>
		<pubDate>Sun, 06 Dec 2009 18:54:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=281</guid>
		<description><![CDATA[1. TouchRiver Free Wordpress Theme
Touchriver is a 2 column widgetized magazine theme. Theme is enabled with javascript based custom fonts, featured post slider, About Us section, flickr gallery etc.

View Demo
2. Cypher Free Wordpress Theme
Release Date: August 22, 2009
Cypher v.2 is a 2 column, paper themed WordPress theme. Built for Wordpress 2.8+. Cypher v.2 offers support [...]]]></description>
			<content:encoded><![CDATA[<h2>1. <a href="http://web2feel.com/touchriver/" target="_blank">TouchRiver Free Wordpress Theme</a></h2>
<p>Touchriver is a 2 column widgetized magazine theme. Theme is enabled with javascript based custom fonts, featured post slider, About Us section, flickr gallery etc.</p>
<p><a href="http://web2feel.com/touchriver/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/touch-river-free-premium-wordpress-theme.jpg" alt="touch-river-free-premium-wordpress-theme" width="570" height="397" /></a></p>
<p><a href="http://www.jinsonathemes.com/demo/?themedemo=touchriver" target="_blank">View Demo</a></p>
<h2>2. <a href="http://www.dvq.co.nz/theme/cypher-v-2/" target="_blank">Cypher Free Wordpress Theme</a></h2>
<p>Release Date: August 22, 2009</p>
<p>Cypher v.2 is a 2 column, paper themed WordPress theme. Built for Wordpress 2.8+. Cypher v.2 offers support for sidebar widgets, comments, custom default avatars.</p>
<p><a href="http://www.dvq.co.nz/theme/cypher-v-2/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/cypher-free-premium-wordpress-theme.jpg" alt="cypher-free-premium-wordpress-theme" width="570" height="438" /></a></p>
<p><a href="http://themes.dvq.co.nz/demo/?themedemo=cypher" target="_blank">View Demo</a></p>
<h2>3. <a href="http://www.press75.com/the-folio-elements-wordpress-theme/" target="_blank">The Folio Elements Free Wordpress Theme</a></h2>
<p>The Folio Elements theme is the perfect solution for simplistic and light weight “portfolio” type websites.</p>
<p><a href="http://www.press75.com/the-folio-elements-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/folio-elements-free-premium-wordpress-theme.jpg" alt="folio-elements-free-premium-wordpress-theme" width="570" height="361" /></a></p>
<p><a href="http://www.press75.com/demos/folio-elements/" target="_blank">View Demo</a></p>
<h2>4. <a href="http://www.paddsolutions.com/wordpress-theme-magiting/" target="_blank">Magiting Free Wordpress Theme</a></h2>
<p>Release Date: September 16, 2009</p>
<p>Magiting is a featured-packed and multi-colored free WordPress theme with TweetMeme retweet button. It has 2 columns, with an easy Options page for customization. Loaded with Social Bookmarks button, Twitter Account integration, Automatic Thumbnail Resizer without using a plugin or custom field, Adsense ready with lots of advertising blocks.</p>
<p><a href="http://www.paddsolutions.com/wordpress-theme-magiting/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/magiting-free-premium-wordpress-theme.jpg" alt="magiting-free-premium-wordpress-theme" width="570" height="412" /></a></p>
<p><a href="http://www.paddsolutions.com/wpmag/magiting/?wptheme=magiting" target="_blank">View Demo</a></p>
<h2>5. <a href="http://www.thomasveit.com/bluebubble-free-premium-wordpress-portfolio-theme/" target="_blank">BlueBubble – Free Premium Wordpress Portfolio Theme</a></h2>
<p>Release Date: November 12th, 2009</p>
<p>BlueBubble is a Free, Clean, Simple Premium Portfolio Wordpress Theme for Designers, Photographer or any other creative minds! It’s designed for easy showcasing your work and it comes with some very cool features.</p>
<p><a href="http://www.thomasveit.com/bluebubble-free-premium-wordpress-portfolio-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/bluebubble-free-premium-wordpress-theme.jpg" alt="bluebubble-free-premium-wordpress-theme" width="570" height="456" /></a></p>
<p><a href="http://wordpress.thomasveit.com/" target="_blank">View Demo</a></p>
<h2>6. <a href="http://www.press75.com/the-seven-five-wordpress-theme/" target="_blank">Seven Five Free Wordpress Theme</a></h2>
<p>The Seven Five is a semi-automatic “Lifestream” WordPress theme taking minimalism to an entirely new level. This theme is intended for those looking for a simple, efficient and clean solution for integrating all the services you have come to love such as Twitter, Flickr and more. Of course, the Seven Five theme provides all the standard blogging functionality of WordPress as well.</p>
<p><a href="http://www.press75.com/the-seven-five-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/sevenfive-free-premium-wordpress-theme.jpg" alt="sevenfive-free-premium-wordpress-theme" width="570" height="380" /></a></p>
<p><a href="http://www.press75.com/demos/seven-five/" target="_blank">View Demo</a></p>
<h2>7. <a href="http://www.press75.com/the-vodpod-wordpress-theme/" target="_blank">Vodpod Free Wordpress Theme</a></h2>
<p>A fully featured and free video WordPress theme which works seamlessly with Vodpod.com.</p>
<p><a href="http://www.press75.com/the-vodpod-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/vodpod-free-premium-wordpress-theme.jpg" alt="vodpod-free-premium-wordpress-theme" width="570" height="386" /></a></p>
<p><a href="http://www.press75.com/demos/vodpod-theme/" target="_blank">View Demo</a></p>
<h2>8. <a href="http://premiumthemes.net/news/free-livetwit-theme-quick-wordpress-site-to-display-live-tweets-on-any-topic-user.html" target="_blank">LiveTwit Free Wordpress Theme</a></h2>
<p>Release Date: August 13, 2009</p>
<p>This super cool theme streams real time tweets on blog automatically.</p>
<p><a href="http://premiumthemes.net/news/free-livetwit-theme-quick-wordpress-site-to-display-live-tweets-on-any-topic-user.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/livetwit-free-premium-wordpress-theme.jpg" alt="livetwit-free-premium-wordpress-theme" width="570" height="377" /></a></p>
<p><a href="http://premiumthemes.net/demo/livetwit/" target="_blank">View Demo</a></p>
<h2>9. <a href="http://www.simplywp.net/2009/11/02/foodiary-premium-magazine-wordpress-theme/" target="_blank">Foodiary Free Wordpress Theme</a></h2>
<p>Release Date: November 2, 2009</p>
<p>Foodiary is magazine Wordpress theme with 3 columns widgetized footer and advanced features.</p>
<p><a href="http://www.simplywp.net/2009/11/02/foodiary-premium-magazine-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/foodiary-free-premium-wordpress-theme.jpg" alt="foodiary-free-premium-wordpress-theme" width="570" height="365" /></a></p>
<p><a href="http://demo.simplywp.net/?wptheme=foodiary" target="_blank">View Demo</a></p>
<h2>10. <a href="http://www.paddsolutions.com/wordpress-theme-matiyaga/" target="_blank">Matiyaga Free Wordpress Theme</a></h2>
<p>Release Date: September 26, 2009</p>
<p>Matiyaga is a featured-packed and multi-colored free WordPress theme with TweetMeme retweet button. It has 2 columns, with an easy Options page for customization.</p>
<p><a href="http://www.paddsolutions.com/wordpress-theme-matiyaga/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/matijaga-free-premium-wordpress-theme.jpg" alt="matijaga-free-premium-wordpress-theme" width="570" height="394" /></a></p>
<p><a href="http://www.paddsolutions.com/wpmag/matiyaga/?wptheme=matiyaga-blue" target="_blank">View Demo</a></p>
<h2>11. <a href="http://wpvulpe.deviantart.com/art/Spexel-WordPress-Theme-144365102" target="_blank">Spexel Free Wordpress Theme</a></h2>
<p>Release Date: 29 November, 2009</p>
<p>Spexel is a premium quality WordPress theme, AJAX powered featured content, twitter &amp; flickr ready, multi-column, multi-layout, multi-style and built on a very effective design for any kind of website. Completely SEO optimized and Valid XHTML 1.0 Strict &amp; CSS 3.0. Also, Spexel can be customized from a highly advanced Options Page that has over 145 different options!</p>
<p><a href="http://wpvulpe.deviantart.com/art/Spexel-WordPress-Theme-144365102" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/spexel-free-premium-wordpress-theme.jpg" alt="spexel-free-premium-wordpress-theme" width="570" height="413" /></a></p>
<p><a href="http://wpvulpe.com/preview/Spexel/" target="_blank">View Demo</a></p>
<h2>12. <a href="http://www.woothemes.com/2009/09/rockstar/" target="_blank">Rockstar Free Wordpress Theme</a></h2>
<p>Release Date: September 30, 2009</p>
<p>Adii’s previous custom design for his successful personal blog is now available as a free theme. It’s simple layout, and clean colour palette means easy customizations to this neatly coded theme on the ever-popular WooThemes framework.</p>
<p><a href="http://www.woothemes.com/2009/09/rockstar/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/rockstar-free-premium-wordpress-theme.jpg" alt="rockstar-free-premium-wordpress-theme" width="570" height="390" /></a></p>
<p><a href="http://www.woothemes.com/demo/?t=46" target="_blank">View Demo</a></p>
<h2>13. <a href="http://www.woothemes.com/2009/11/bueno/" target="_blank">Bueno Free Wordpress Theme</a></h2>
<p>Release Date: November 25, 2009</p>
<p>Bueno is a clean, minimalistic design which just oozes sophistication in both it’s typography &amp; structure. Stripped of all fancy design elements; the reader’s focus should be on the great content that you produce. Bueno is perfect for the regular (and not-so-regular) blogger.</p>
<p><a href="http://www.woothemes.com/2009/11/bueno/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/bueno-free-premium-wordpress-theme.jpg" alt="bueno-free-premium-wordpress-theme" width="570" height="388" /></a></p>
<p><a href="http://woothemes.com/demo/?t=53" target="_blank">View Demo</a></p>
<h2>14. <a href="http://www.woothemes.com/2009/07/mainstream/" target="_blank">Mainstream Free Wordpress Theme</a></h2>
<p>Release Date: July 23, 200</p>
<p>A vibrant personal blog theme with a colourful selection of styles, built on WooThemes flexible theme framework, boasting a selection of theme options.</p>
<p><a href="http://www.woothemes.com/2009/07/mainstream/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mainstream-free-premium-wordpress-theme.jpg" alt="mainstream-free-premium-wordpress-theme" width="570" height="348" /></a></p>
<p><a href="http://www.woothemes.com/demo/?t=39" target="_blank">View Demo</a></p>
<h2>15. <a href="http://www.woothemes.com/2009/04/meta-morphosis/" target="_blank">Meta-Morphosis Free Wordpress Theme</a></h2>
<p>Release Date: April 24, 2009</p>
<p>Meta-Morphosis is a visually-rich personal blog, with a magazine layout approach. Incorporating some nifty javascript font replacement and javascript widget slider in the footer, Meta-Morphosis should meet all of your personal blogging needs.</p>
<p><a href="http://www.woothemes.com/2009/04/meta-morphosis/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/meta-morphosis-free-premium-wordpress-theme.jpg" alt="meta-morphosis-free-premium-wordpress-theme" width="570" height="392" /></a></p>
<p><a href="http://www.woothemes.com/demo/?t=31" target="_blank">View Demo</a></p>
<h2>16. <a href="http://www.upstartblogger.com/upstart-blogger-wordpress-theme-signal-37" target="_blank">Signal 37 Free Wordpress Theme</a></h2>
<p>Release Date: October 13, 2009</p>
<p>Clean typography, a web 2.0 palette, heavily inspired by 37 signals and their wonderfully clean and focussed designs, Signal 37 is here.</p>
<p><a href="http://www.upstartblogger.com/upstart-blogger-wordpress-theme-signal-37" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/37signals-free-premium-wordpress-theme.jpg" alt="37signals-free-premium-wordpress-theme" width="570" height="433" /></a></p>
<p><a href="http://www.upstartblogger.com/upstart-blogger-wordpress-theme-signal-37" target="_blank">View Demo</a></p>
<h2>17. <a href="http://fearlessflyer.com/2009/07/pork-and-beans-download-for-free/" target="_blank">Pork&amp;Beans Free Wordpress Theme</a></h2>
<p>Release Date: July 19th, 2009</p>
<p><a href="http://fearlessflyer.com/2009/07/pork-and-beans-download-for-free/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/Pork-beans-free-premium-wordpress-theme.jpg" alt="Pork-beans-free-premium-wordpress-theme" width="570" height="395" /></a></p>
<p><a href="http://pork.fearlessflyer.com/" target="_blank">View Demo</a></p>
<h2>18. <a href="http://premiummod.com/freshmortar/" target="_blank">Fresh Mortar Free Wordpress Theme</a></h2>
<p>Release Date: November 11, 2009</p>
<p>Fresh Mortar theme is an ultra-flexible magazine/news premium theme as a result of mashup between Fresh News and Mortar.</p>
<p><a href="http://premiummod.com/freshmortar/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/fresh-mortar-free-premium-wordpress-theme.jpg" alt="fresh-mortar-free-premium-wordpress-theme" width="570" height="396" /></a></p>
<p><a href="http://premiummod.com/demo/?themedemo=freshmortar" target="_blank">View Demo</a></p>
<h2>19. <a href="http://www.smashingmagazine.com/2009/07/10/free-wordpress-theme-paper-wall/" target="_blank">Paper Wall Free Wordpress Theme</a></h2>
<p>Release Date: July 10th, 2009</p>
<p><a href="http://www.smashingmagazine.com/2009/07/10/free-wordpress-theme-paper-wall/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/paper-wall-free-premium-wordpress-theme.jpg" alt="paper-wall-free-premium-wordpress-theme" width="570" height="341" /></a></p>
<p><a href="http://media.smashingmagazine.com/wp-content/uploads/images/indeziner-paper-wall/full_preview.jpg" target="_blank">View Demo</a></p>
<h2>20. <a href="http://www.smashingmagazine.com/2009/08/22/free-podcasting-video-and-photography-wordpress-theme/" target="_blank">Smashing Multimedia Free Wordpress Theme</a></h2>
<p>Release Date: August 22, 2009</p>
<p>Smashing Multimedia is a unique, flexible and advanced WordPress theme for artists, photographers, podcasters, designers and users.</p>
<p><a href="http://www.smashingmagazine.com/2009/08/22/free-podcasting-video-and-photography-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/smashing-multimedia-free-premium-wordpress-theme.jpg" alt="smashing-multimedia-free-premium-wordpress-theme" width="570" height="406" /></a></p>
<p><a href="http://smashingmultimedia.sarah-neuber.de/" target="_blank">View Demo</a></p>
<h2>21. <a href="http://www.smashingthemes.com/free-wordpress-themes/glassical/" target="_blank">Glassical Free Wordpress Theme</a></h2>
<p>Release Date: November 7th, 2009</p>
<p>Glassical is a glossy two column, widget ready and WordPress 2.8 compatible WordPress theme designed for passionate bloggers.</p>
<p><a href="http://www.smashingthemes.com/free-wordpress-themes/glassical/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/glassical-free-premium-wordpress-theme.jpg" alt="glassical-free-premium-wordpress-theme" width="570" height="397" /></a></p>
<p><a href="http://demo.smashingthemes.com/" target="_blank">View Demo</a></p>
<h2>22. <a href="http://www.smashingmagazine.com/2009/11/14/free-high-quality-magento-theme-sigyn-sm/" target="_blank">Sigyn SM Free Wordpress Theme</a></h2>
<p>Release Date: November 14, 2009</p>
<p>The theme has a unique grungy design that stands out and can serve as a good baseline for your Magento-powered online shops.</p>
<p><a href="http://www.smashingmagazine.com/2009/11/14/free-high-quality-magento-theme-sigyn-sm/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/sigynsm-free-premium-wordpress-theme.jpg" alt="sigynsm-free-premium-wordpress-theme" width="570" height="374" /></a></p>
<p><a href="http://demo.silverthemes.com/sigynsm" target="_blank">View Demo</a></p>
<h2>23. <a href="http://leonpaternoster.com/2009/10/introducing-the-scherzo-theme-for-wordpress/" target="_blank">Scherzo Free Wordpress Theme</a></h2>
<p>Release Date: October 4th, 2009</p>
<p>A precise theme with a widget ready sidebar. Built on the idea of making your blog as readable as possible:</p>
<p><a href="http://leonpaternoster.com/2009/10/introducing-the-scherzo-theme-for-wordpress/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/scherzo-free-premium-wordpress-theme.jpg" alt="scherzo-free-premium-wordpress-theme" width="570" height="470" /></a></p>
<p><a href="http://leonpaternoster.com/scherzo/?p=3" target="_blank">View Demo</a></p>
<h2>24. <a href="http://designdisease.com/blog/money-theme-released/" target="_blank">MoneyBlog Free Wordpress Theme</a></h2>
<p>Release Date: September 23, 2009</p>
<p><a href="http://designdisease.com/blog/money-theme-released/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/moneyblog-free-premium-wordpress-theme.jpg" alt="moneyblog-free-premium-wordpress-theme" width="570" height="394" /></a></p>
<p><a href="http://www.moneyblog.com/" target="_blank">View Demo</a></p>
<h2>25. <a href="http://designdisease.com/blog/tipz-theme-released/" target="_blank">Tipz Free Wordpress Theme</a></h2>
<p>Release Date: October 27, 2009</p>
<p><a href="http://designdisease.com/blog/tipz-theme-released/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/tipz-free-premium-wordpress-theme.jpg" alt="tipz-free-premium-wordpress-theme" width="570" height="367" /></a></p>
<p><a href="http://www.tipz.com/" target="_blank">View Demo</a></p>
<h2>26. <a href="http://web2feel.com/ekologic/" target="_blank">Ekologic Free Wordpress Theme</a></h2>
<p>Ekology is the new free premium wordpress theme from web2feel.com. This is a magzine layout theme with thumbnail enabled miniposts, Featured post slider with images, Featured Video section, Customizable About us section, Customizable Banner ads, Google adsense enabled etc.</p>
<p><a href="http://web2feel.com/ekologic/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/ekologic-free-premium-wordpress-theme.jpg" alt="ekologic-free-premium-wordpress-theme" width="570" height="399" /></a></p>
<p><a href="http://www.jinsonathemes.com/demo/?themedemo=ekologic" target="_blank">View Demo</a></p>
<h2>27. <a href="http://web2feel.com/mintozine/" target="_blank">Mintozine Free Wordpress Theme</a></h2>
<p>Mintozine is a free premium wordpress theme. It is a business style wordpress theme. It has a port folio section with image carousal, Custom text panels on the home page, Welcome message, Twitter feeds , Flickr gallery etc.</p>
<p><a href="http://web2feel.com/mintozine/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mintozine-free-premium-wordpress-theme.jpg" alt="mintozine-free-premium-wordpress-theme" width="570" height="385" /></a></p>
<p><a href="http://www.jinsonathemes.com/demo/?themedemo=mintozine" target="_blank">View Demo</a></p>
<h2>28. <a href="http://web2feel.com/creativepress-theme/" target="_blank">Creative Press Free Wordpress Theme</a></h2>
<p>Creativepress is a cms with a business template layout and blog layout mixed together. The theme is very apt for your small business websites . This will let you break away from the conventional blog format sites using wordpress</p>
<p><a href="http://web2feel.com/creativepress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/creative-press-free-premium-wordpress-theme.jpg" alt="creative-press-free-premium-wordpress-theme" width="570" height="398" /></a></p>
<p><a href="http://www.jinsonathemes.com/demo/?themedemo=creativepress" target="_blank">View Demo</a></p>
<h2>29. <a href="http://www.obox-design.com/themes_page.cfm/theme/selecta" target="_blank">Selecta Free Wordpress Theme</a></h2>
<p>With video blogging being the main influencer of this design and coupled with our experience in the vlogging world you will have a theme which allows you to make your videos the main focus of your site.</p>
<p><a href="http://www.obox-design.com/themes_page.cfm/theme/selecta" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/selecta-free-premium-wordpress-theme.jpg" alt="selecta-free-premium-wordpress-theme" width="570" height="379" /></a></p>
<p><a href="http://www.obox-design.com/demo-theme.cfm?theme=selecta" target="_blank">View Demo</a></p>
<h2>30. <a href="http://wpcrunchy.com/2009/10/19/free-magazine-news-style-wordpress-theme-newspress/" target="_blank">NewsPress Free Wordpress Theme</a></h2>
<p>Release Date: October 19th, 2009</p>
<p>Newpress is built under 960 grid system and packed with in-demand features such as featured post, dropdown menu, social bookmarks button, etc</p>
<p><a href="http://wpcrunchy.com/2009/10/19/free-magazine-news-style-wordpress-theme-newspress/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/newspress-free-premium-wordpress-theme.jpg" alt="newspress-free-premium-wordpress-theme" width="570" height="414" /></a></p>
<p><a href="http://wpcrunchy.com/preview/?wptheme=newspress" target="_blank">View Demo</a></p>
<h2>31. <a href="http://wpvulpe.deviantart.com/art/Zeoal-Advanced-WordPress-Theme-140980762" target="_blank">Zaoel Free Wordpress Theme</a></h2>
<p>Release Date: October 21, 2009</p>
<p><a href="http://wpvulpe.deviantart.com/art/Zeoal-Advanced-WordPress-Theme-140980762" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/zaoel-free-premium-wordpress-theme.jpg" alt="zaoel-free-premium-wordpress-theme" width="570" height="461" /></a></p>
<p><a href="http://wpvulpe.com/preview/Zeoal/" target="_blank">View Demo</a></p>
<h2>32. <a href="http://wpvulpe.deviantart.com/art/FXMag-Premium-Magazine-WP-127289354" target="_blank">FXMAG Free Wordpress Theme</a></h2>
<p>Release Date: June 26, 2009</p>
<p>Premium design, being built on a neutral design theme it can be used for literally any niche without much, if any, edits.</p>
<p><a href="http://wpvulpe.deviantart.com/art/FXMag-Premium-Magazine-WP-127289354" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/fx-mag-free-premium-wordpress-theme.jpg" alt="fx-mag-free-premium-wordpress-theme" width="570" height="451" /></a></p>
<p><a href="http://wpvulpe.com/preview/FXMag/" target="_blank">View Demo</a></p>
<h2>33. <a href="http://wpvulpe.deviantart.com/art/FreshMag-Advanced-WP-Theme-131296386" target="_blank">FreshMag Free Wordpress Theme</a></h2>
<p>Release Date: July 28, 2009</p>
<p>FreshMag is a multi-layout, multi-column, multi-style highly customizable Magazine and Blog WordPress theme which features some rare options, its theme options page has about 82+ options that makes this theme extremely customizable.</p>
<p><a href="http://wpvulpe.deviantart.com/art/FreshMag-Advanced-WP-Theme-131296386" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/freshmag-free-premium-wordpress-theme.jpg" alt="freshmag-free-premium-wordpress-theme" width="570" height="427" /></a></p>
<p><a href="http://wpvulpe.com/preview/FreshMag/" target="_blank">View Demo</a></p>
<h2>34. <a href="http://fearlessflyer.com/2009/06/free-wp-theme-blue-rooster/" target="_blank">Blue Rooster Free Wordpress Theme</a></h2>
<p>Release Date: June 5th, 2009</p>
<p>The theme is a two column layout with a extra templates that can convert your blog into a CMS. The sidebar and footer are both widgetized, author and category templates included, as well as social buttons already intact. The theme style is a mix of rounded corners, flat edges and wooden elements with a schema of muted, dark colors on a plain white surface.</p>
<p><a href="http://fearlessflyer.com/2009/06/free-wp-theme-blue-rooster/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/blue-rooster-free-premium-wordpress-theme.jpg" alt="blue-rooster-free-premium-wordpress-theme" width="570" height="416" /></a></p>
<p><a href="http://blue.fearlessflyer.com/" target="_blank">View Demo</a></p>
<h2>35. <a href="http://web2feel.com/chronicle/" target="_blank">Chronicle Free Wordpress Theme</a></h2>
<p>Chronicle is a news magazine niche wordpress theme.<br />
Theme has jquery featured news slider, News highlight section, Featured video, Tabbed content, News previews with thumbnails.</p>
<p><a href="http://web2feel.com/chronicle/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/chronicle-press-free-premium-wordpress-theme.jpg" alt="chronicle-press-free-premium-wordpress-theme" width="570" height="375" /></a></p>
<p><a href="http://www.jinsonathemes.com/demo/?themedemo=chronicle" target="_blank">View Demo</a></p>
<h2>36. <a href="http://designdisease.com/blog/lapofluxury-theme-released/" target="_blank">LapOfLuxuryFree Wordpress Theme</a></h2>
<p>Release Date: September 28, 2009</p>
<p><a href="http://designdisease.com/blog/lapofluxury-theme-released/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/lap-luxury-free-premium-wordpress-theme.jpg" alt="lap-luxury-free-premium-wordpress-theme" width="570" height="420" /></a></p>
<p><a href="http://www.lapofluxury.com/" target="_blank">View Demo</a></p>
<h2>37. <a href="http://www.smashingmagazine.com/2009/02/23/magazeen-free-magazine-look-wordpress-theme/" target="_blank">Magazeen Free Wordpress Theme</a></h2>
<p>Release Date: February 23rd, 2009</p>
<p><a href="http://www.smashingmagazine.com/2009/02/23/magazeen-free-magazine-look-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/magazeen-free-premium-wordpress-theme.jpg" alt="magazeen-free-premium-wordpress-theme" width="570" height="430" /></a></p>
<p><a href="http://demo.wefunction.com/?wptheme=Magazeen" target="_blank">View Demo</a></p>
<h2>38. <a href="http://www.smashingmagazine.com/2009/05/04/download-gallery-a-free-wordpress-theme/" target="_blank">Gallery Free Wordpress Theme</a></h2>
<p>Release Date: May 4th, 2009</p>
<p><a href="http://www.smashingmagazine.com/2009/05/04/download-gallery-a-free-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mix-css-free-premium-wordpress-theme.jpg" alt="mix-css-free-premium-wordpress-theme" width="570" height="396" /></a></p>
<p><a href="http://mixcss.com/" target="_blank">View Demo</a></p>
<h2>39. <a href="http://themeshift.com/destyle/" target="_blank">deStyle Free Wordpress Theme</a></h2>
<p>Release Date: Year 2009</p>
<p><a href="http://themeshift.com/destyle/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/de-style-free-premium-wordpress-theme.jpg" alt="de-style-free-premium-wordpress-theme" width="570" height="400" /></a></p>
<p><a href="http://demo.themeshift.com/destyle/" target="_blank">View Demo</a></p>
<h2>40. <a href="http://www.woothemes.com/2009/02/irresistible/" target="_blank">Irresistible Free Wordpress Theme</a></h2>
<p>Release Date: February, 2009</p>
<p>Irresistible is a visually-rich personal blog, with a little bit of a multimedia focus. Incorporating some nifty video-options and widgets, Irresistible should meet all of your personal blogging needs. Just add your content to the mix.</p>
<p><a href="http://www.woothemes.com/2009/02/irresistible/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/irresistible-free-premium-wordpress-theme.jpg" alt="irresistible-free-premium-wordpress-theme" width="570" height="373" /></a></p>
<p><a href="http://woothemes.com/demo/?t=25" target="_blank">View Demo</a></p>
<h2>41. <a href="http://freebiesdock.com/freemium-wordpress-theme/" target="_blank">FreebiesDock Free Wordpress Theme</a></h2>
<p>Release Date: January 6, 2009</p>
<p><a href="http://freebiesdock.com/freemium-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/freebiesdock-free-premium-wordpress-theme.jpg" alt="freebiesdock-free-premium-wordpress-theme" width="570" height="351" /></a></p>
<p><a href="http://demo.freebiesdock.com/" target="_blank">View Demo</a></p>
<h2>42. <a href="http://www.smashingmagazine.com/2009/01/28/vintage-and-blues-wordpress-themes/" target="_blank">Vintage and Blues Free Wordpress Theme</a></h2>
<p>Release Date: January 28th, 2009</p>
<p><a href="http://www.smashingmagazine.com/2009/01/28/vintage-and-blues-wordpress-themes/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/blues-vintage-free-premium-wordpress-theme.jpg" alt="blues-vintage-free-premium-wordpress-theme" width="570" height="394" /></a></p>
<p><a href="http://dev1.agriya.com/wpthemes/?wptheme=wordpress-brown" target="_blank">View Demo</a></p>
<h2>43. <a href="http://topwpthemes.com/hikozine/" target="_blank">HikoZine Free Wordpress Theme</a></h2>
<p>Release Date: October 29, 2009</p>
<p><a href="http://topwpthemes.com/hikozine/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/hikozine-free-premium-wordpress-theme.jpg" alt="hikozine-free-premium-wordpress-theme" width="570" height="407" /></a></p>
<p><a href="http://wpjunction.com/themes/hikozine/" target="_blank">View Demo</a></p>
<h2>44. <a href="http://topwpthemes.com/ibusiness/" target="_blank">iBusiness Free Wordpress Theme</a></h2>
<p>Release Date: October 29, 2009</p>
<p><a href="http://topwpthemes.com/ibusiness/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/ibusiness-free-premium-wordpress-theme.jpg" alt="ibusiness-free-premium-wordpress-theme" width="570" height="409" /></a></p>
<p><a href="http://wpjunction.com/themes/ibusiness/" target="_blank">View Demo</a></p>
<h2>45. <a href="http://www.smashingmagazine.com/2009/07/30/free-portfolio-wordpress-theme-creative-by-nature/" target="_blank">Creative by Nature Free Wordpress Theme</a></h2>
<p>Release Date: July 30th, 2009</p>
<p><a href="http://www.smashingmagazine.com/2009/07/30/free-portfolio-wordpress-theme-creative-by-nature/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/creative-nature-free-premium-wordpress-theme.jpg" alt="creative-nature-free-premium-wordpress-theme" width="570" height="369" /></a></p>
<p><a href="http://cssmayo.com/preview/creative_by_nature/" target="_blank">View Demo</a></p>
<h2>46. <a href="http://graphpaperpress.com/2009/06/18/work-a-holic/" target="_blank">Work-a-holic Free Wordpress Theme</a></h2>
<p>Release Date: June 18th, 2009</p>
<p><a href="http://graphpaperpress.com/2009/06/18/work-a-holic/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/work-a-holic-free-premium-wordpress-theme.jpg" alt="work-a-holic-free-premium-wordpress-theme" width="570" height="401" /></a></p>
<p><a href="http://graphpaperpress.com/2009/06/18/work-a-holic/" target="_blank">View Demo</a></p>
<h2>47. <a href="http://5thirtyone.com/the-unstandard" target="_blank">TheUnstandard Free Wordpress Theme</a></h2>
<p>Release Date: Jul 7, 2009</p>
<p>The Unstandard is a split two / three column WordPress 2.6+ compatible theme.</p>
<p><a href="http://5thirtyone.com/the-unstandard" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/TheUnstandard-free-premium-wordpress-theme.jpg" alt="TheUnstandard-free-premium-wordpress-theme" width="570" height="400" /></a></p>
<p><a href="http://theunstandard.5thirtyone.com/" target="_blank">View Demo</a></p>
<h2>48. <a href="http://wordspop.com/themes/fotofolio/" target="_blank">FotoFolio Free Wordpress Theme</a></h2>
<p>Release Date: Year 2009</p>
<p>Fotofolio is a free wordpress template designed for easy creation online portfolio for Visual Workers; Photography, Graphic Design, Manga, Architect, etc. Fotofolio is very simple and easy to use, please read the instalation and usage for details. Fotofolio is created by Pupung Budi Purnama</p>
<p><a href="http://wordspop.com/themes/fotofolio/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/fotofolio-free-premium-wordpress-theme.jpg" alt="fotofolio-free-premium-wordpress-theme" width="570" height="486" /></a></p>
<p><a href="http://demo.wordspop.com/fotofolio/" target="_blank">View Demo</a></p>
<h2>49. <a href="http://redworks.sk/wp-themes/linquist/" target="_blank">Linquist Free Wordpress Theme</a></h2>
<p>Linquist is a simple, portfolio oriented theme, without the usual blogging garbage. Inspired by and partially based on the fantastic Sharpfolio theme.</p>
<p><a href="http://redworks.sk/wp-themes/linquist/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/linquist-free-premium-wordpress-theme.jpg" alt="linquist-free-premium-wordpress-theme" width="570" height="422" /></a></p>
<p><a href="http://linquist.redworks.sk/" target="_blank">View Demo</a></p>
<h2>50. <a href="http://wpesp.com/portfolio/" target="_blank">Portfolio WPESP Free Wordpress Theme</a></h2>
<p>Release Date: January 21, 2009</p>
<p>Portfolio – WPESP Theme is a “minimalist” Theme based on the idea of portfolio created by DAILYWP. The Theme is a starting point in the creation of portfolios, using Wordpress as CMS.</p>
<p><a href="http://wpesp.com/portfolio/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/wpesp-portfolio-free-premium-wordpress-theme.jpg" alt="wpesp-portfolio-free-premium-wordpress-theme" width="570" height="398" /></a></p>
<p><a href="http://demo.wpesp.com/portfolio/" target="_blank">View Demo</a></p>
<h2>51. <a href="http://graphpaperpress.com/2009/06/10/fullscreen-wordpress-theme/" target="_blank">Fullscreen Free Wordpress Theme</a></h2>
<p>Release Date: June 10th, 2009</p>
<p>Fullscreen is a free one-column photography and multimedia theme for Wordpress that can be used for portfolios, photoblogs, videoblogs, and virtually anything else where you want your content to be front and center. It provides visual artists (photographers, painters, videographers, motionographers, illustrators) a better way of presenting their latest work online using a minimalist side-scrolling homepage.</p>
<p><a href="http://graphpaperpress.com/2009/06/10/fullscreen-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/fullscreen-free-premium-wordpress-theme.jpg" alt="fullscreen-free-premium-wordpress-theme" width="570" height="415" /></a></p>
<p><a href="http://graphpaperpress.com/demo/2009/?p=67" target="_blank">View Demo</a></p>
<h2>52. <a href="http://www.skinpress.com/astra/" target="_blank">Astra Free Wordpress Theme</a></h2>
<p>Release Date: November 11, 2009</p>
<p>Striking wordpress theme with featured posts, social icons, 125×125 ads, twitter updates, threaded comments, multi page format.</p>
<p><a href="http://www.skinpress.com/astra/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/astra-free-premium-wordpress-theme.jpg" alt="astra-free-premium-wordpress-theme" width="570" height="434" /></a></p>
<p><a href="http://www.skinpress.com/demo/" target="_blank">View Demo</a></p>
<h2>53. <a href="http://www.skinpress.com/bluemania/" target="_blank">Bluemania Free Wordpress Theme</a></h2>
<p>Release Date: May 4, 2009</p>
<p>This is a 2 column design that includes an extremely funky and highly prominent RSS icon to draw visitors to your syndicated news feeds.</p>
<p><a href="http://www.skinpress.com/bluemania/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/bluemania-free-premium-wordpress-theme.jpg" alt="bluemania-free-premium-wordpress-theme" width="570" height="412" /></a></p>
<p><a href="http://www.skinpress.com/demo/" target="_blank">View Demo</a></p>
<h2>54. <a href="http://www.skinpress.com/treehouse/" target="_blank">Tree House Free Wordpress Theme</a></h2>
<p>Release Date: May 3, 2009</p>
<p>This is an extremely endearing design. If you want your Wordpress site to have more than a hint of cute and current, then this theme is worth a close look. It makes use of an adorable twitter icon that is sure to draw many of your visitors to subscribing to your twitter feed.</p>
<p><a href="http://www.skinpress.com/treehouse/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/treehouse-free-premium-wordpress-theme.jpg" alt="treehouse-free-premium-wordpress-theme" width="570" height="421" /></a></p>
<p><a href="http://www.skinpress.com/demo/" target="_blank">View Demo</a></p>
<h2>55. <a href="http://www.wpthemespress.com/splendour/" target="_blank">Splendour Free Wordpress Theme</a></h2>
<p>Release Date: October 23, 2009</p>
<p>Splendour, 3 Columns premium wordpress theme for free. It comes with greate features like login panel on homepage, featured video, Adsense ready, wp-pagenavigation integrated, post thumbnails and post excerpts and much more.</p>
<p><a href="http://www.wpthemespress.com/splendour/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/splendour-free-premium-wordpress-theme.jpg" alt="splendour-free-premium-wordpress-theme" width="570" height="405" /></a></p>
<p><a href="http://web2feel.com/demosite2/" target="_blank">View Demo</a></p>
<h2>56. <a href="http://www.wpnow.com/themes/simplista.html" target="_blank">Simplista Free Wordpress Theme</a></h2>
<p>Release Date: June 17, 2009</p>
<p>Advanced clean personal portfolio type theme from WPSnow for free!</p>
<p><a href="http://www.wpnow.com/themes/simplista.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/simplista-free-premium-wordpress-theme.jpg" alt="simplista-free-premium-wordpress-theme" width="570" height="417" /></a></p>
<p><a href="http://www.wpnow.com/demo/#simplista" target="_blank">View Demo</a></p>
<h2>57. <a href="http://newwpthemes.com/wordpress-theme/livien/" target="_blank">Livien Free Wordpress Theme</a></h2>
<p>Release Date: November 9th, 2009</p>
<p>Livien is an elegant designed free WordPress theme with featured content option. Suitable for any niche. Theme Options at admin panel</p>
<p><a href="http://newwpthemes.com/wordpress-theme/livien/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/livien-free-premium-wordpress-theme.jpg" alt="livien-free-premium-wordpress-theme" width="570" height="426" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=Livien-185" target="_blank">View Demo</a></p>
<h2>58. <a href="http://newwpthemes.com/wordpress-theme/layer-press/" target="_blank">Layer Press Free Wordpress Theme</a></h2>
<p>Release Date: November 4th, 2009</p>
<p>Layer Press is free premium WordPress theme suitable for any niche. Dark style design. Theme Options at admin panel.</p>
<p><a href="http://newwpthemes.com/wordpress-theme/layer-press/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/layer-press-free-premium-wordpress-theme.jpg" alt="layer-press-free-premium-wordpress-theme" width="570" height="419" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=LayerPress-181" target="_blank">View Demo</a></p>
<h2>59. <a href="http://newwpthemes.com/wordpress-theme/strownes/" target="_blank">Strownes Free Wordpress Theme</a></h2>
<p>Release Date: October 30th, 2009</p>
<p>Strownes is elegant and professional designed free WordPress theme with featured content. Suitable for any niche. Theme Options at admin panel.</p>
<p><a href="http://newwpthemes.com/wordpress-theme/strownes/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/strownes-free-premium-wordpress-theme.jpg" alt="strownes-free-premium-wordpress-theme" width="570" height="430" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=Strownes-166" target="_blank">View Demo</a></p>
<h2>60. <a href="http://newwpthemes.com/wordpress-theme/braw/" target="_blank">Braw Free Wordpress Theme</a></h2>
<p>Release Date: November 17th, 2009</p>
<p>Braw is a free premium WordPress theme suitable for any niche. Theme Options at admin panel.</p>
<p><a href="http://newwpthemes.com/wordpress-theme/braw/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/braw-free-premium-wordpress-theme.jpg" alt="braw-free-premium-wordpress-theme" width="570" height="425" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=Braw-204" target="_blank">View Demo</a></p>
<h2>61. <a href="http://www.freewebsitetemplates.com/forum/f39/free-wordpress-theme-brownmag-free-download-8209/" target="_blank">BrownMag Free Wordpress Theme</a></h2>
<p>Release Date: October 3, 2009</p>
<p>2 column free wordpress theme.</p>
<p><a href="http://www.freewebsitetemplates.com/forum/f39/free-wordpress-theme-brownmag-free-download-8209/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/brownmag-free-premium-wordpress-theme.jpg" alt="brownmag-free-premium-wordpress-theme" width="570" height="394" /></a></p>
<p><a href="http://wpjunction.com/themes/brown/" target="_blank">View Demo</a></p>
<h2>62. <a href="http://wpsmash.com/magnolia-free-wordpress-premium-theme/" target="_blank">Magnolia Free Wordpress Theme</a></h2>
<p>Release Date: 12 November, 2009</p>
<p>Magnolia is a Premium WordPress theme which can be used for many purposes, including personal blog or simply informative, this theme comes with many great features, which are: a beautiful dynamic slider, nice login panel with j query, 3 special developed widgets (popular posts, recent comments and twitter updates), 7 color styles ( green, marine, blue, orange, burgundy, purple, blue&amp;purple), widget sidebar and footer and much more.</p>
<p><a href="http://wpsmash.com/magnolia-free-wordpress-premium-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/magnolia-free-premium-wordpress-theme.jpg" alt="magnolia-free-premium-wordpress-theme" width="570" height="399" /></a></p>
<p><a href="http://wpsmash.com/preview/Magnolia/" target="_blank">View Demo</a></p>
<h2>63. <a href="http://www.elegantwpthemes.com/?p=426" target="_blank">ElegantRed Free Wordpress Theme</a></h2>
<p>Release Date: November 11th, 2009</p>
<p>ElegantRed is two columns free wordpress theme with simple, clean look, Unique and modern style, having the classic combination of white, silver, maroon and red, Ideal for Autos, Cars, technology, and other niche.</p>
<p><a href="http://www.elegantwpthemes.com/?p=426" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/elegant-red-free-premium-wordpress-theme.jpg" alt="elegant-red-free-premium-wordpress-theme" width="570" height="437" /></a></p>
<p><a href="http://www.elegantwpthemes.com/preview/426" target="_blank">View Demo</a></p>
<h2>64. <a href="http://www.wpthemespress.com/hexamag/" target="_blank">HexaMag Free Wordpress Theme</a></h2>
<p>Release Date: November 16, 2009</p>
<p>HexaMag is a 2 columns mag style wordpress theme, which comes with Featured content slider, W3C valid xhtml/css and much more.</p>
<p><a href="http://www.wpthemespress.com/hexamag/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/hexamag-free-premium-wordpress-theme.jpg" alt="hexamag-free-premium-wordpress-theme" width="570" height="419" /></a></p>
<p><a href="http://wpjunction.com/themes/hexamag/" target="_blank">View Demo</a></p>
<h2>65. <a href="http://www.wpthemespress.com/tarzine/" target="_blank">Tarzine Free Wordpress Theme</a></h2>
<p>TarZine, 2 Columns free wordpress theme which comes with many features like featured content slider, feedburner RSS subscription and much more.</p>
<p><a href="http://www.wpthemespress.com/tarzine/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/tarzine-free-premium-wordpress-theme.jpg" alt="tarzine-free-premium-wordpress-theme" width="570" height="419" /></a></p>
<p><a href="http://wpjunction.com/themes/tarzine/" target="_blank">View Demo</a></p>
<h2>66. <a href="http://spectrum-theme.com/" target="_blank">Spectrum Free Wordpress Theme</a></h2>
<p>Release Date: October 1, 2009</p>
<p><a href="http://spectrum-theme.com/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/spectrum-free-premium-wordpress-theme.jpg" alt="spectrum-free-premium-wordpress-theme" width="570" height="386" /></a></p>
<p><a href="http://spectrum-theme.com/" target="_blank">View Demo</a></p>
<h2>67. <a href="http://www.themesboutique.com/theme/celadon" target="_blank">Celadon Free Wordpress Theme</a></h2>
<p>Release Date: July 21, 2009</p>
<p>Celadon is a free theme for WordPress that focuses on great looks and usability</p>
<p><a href="http://www.themesboutique.com/theme/celadon" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/celadon-free-premium-wordpress-theme.jpg" alt="celadon-free-premium-wordpress-theme" width="570" height="415" /></a></p>
<p><a href="http://demo.themesboutique.com/?themedemo=celadon" target="_blank">View Demo</a></p>
<h2>68. <a href="http://flexithemes.com/themes/modern-style/" target="_blank">Modern Style Free Wordpress Theme</a></h2>
<p>Release Date: October 13th, 2009</p>
<p>Modern Style is free premium WordPress theme, suitable for any type of website with theme options at admin panel.</p>
<p><a href="http://flexithemes.com/themes/modern-style/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/modern-style-free-premium-wordpress-theme.jpg" alt="modern-style-free-premium-wordpress-theme" width="570" height="427" /></a></p>
<p><a href="http://flexithemes.com/demo/ModernStyle/" target="_blank">View Demo</a></p>
<h2>69. <a href="http://www.customblogdesigner.com/softy-wordpress-theme/" target="_blank">Softy Free Wordpress Theme</a></h2>
<p><a href="http://www.customblogdesigner.com/softy-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/softy-free-premium-wordpress-theme.jpg" alt="softy-free-premium-wordpress-theme" width="570" height="406" /></a></p>
<p><a href="http://www.customblogdesigner.com/demo/index.php?wptheme=Softy" target="_blank">View Demo</a></p>
<h2>70. <a href="http://www.wpskinner.com/2009/10/26/moi-magazine-free-wordpress-theme-release/" target="_blank">Moi Magazine Free Wordpress Theme</a></h2>
<p>Release Date: October 26, 2009</p>
<p>Moi Magazine is a free 2 column magazine style Wordpress Theme. It looks very modern and elegant from the front end and offering vast Admin options at the back end.</p>
<p><a href="http://www.wpskinner.com/2009/10/26/moi-magazine-free-wordpress-theme-release/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/moi-magazine-free-premium-wordpress-theme.jpg" alt="moi-magazine-free-premium-wordpress-theme" width="570" height="389" /></a></p>
<p><a href="http://wpcodex.com/demo/?themedemo=moi-magazine" target="_blank">View Demo</a></p>
<h2>71. <a href="http://www.wpskinner.com/2009/11/03/new-york-free-wordpress-theme-release/" target="_blank">New York Free Wordpress Theme</a></h2>
<p>Release Date: November 3, 2009</p>
<p><a href="http://www.wpskinner.com/2009/11/03/new-york-free-wordpress-theme-release/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/new-york-free-premium-wordpress-theme.jpg" alt="new-york-free-premium-wordpress-theme" width="570" height="417" /></a></p>
<p><a href="http://wpcodex.com/demo/?themedemo=new-york" target="_blank">View Demo</a></p>
<h2>72. <a href="http://www.simplywp.net/2009/11/25/cashzone-free-wordpress-theme/" target="_blank">CashZone Free Wordpress Theme</a></h2>
<p>Release Date: November 25, 2009</p>
<p>This sleek minimalist theme comes in 2 columns with dark blue color scheme.</p>
<p><a href="http://www.simplywp.net/2009/11/25/cashzone-free-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/cashzone-free-premium-wordpress-theme.jpg" alt="cashzone-free-premium-wordpress-theme" width="570" height="425" /></a></p>
<p><a href="http://demo.simplywp.net/themes/?wptheme=cashzone" target="_blank">View Demo</a></p>
<h2>73. <a href="http://www.theme-junkie.com/2009/09/16/free-wordpress-theme-channel/" target="_blank">Channel Free Wordpress Theme</a></h2>
<p>Release Date: September 16th, 2009</p>
<p><a href="http://www.theme-junkie.com/2009/09/16/free-wordpress-theme-channel/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/channel-free-premium-wordpress-theme.jpg" alt="channel-free-premium-wordpress-theme" width="570" height="422" /></a></p>
<p><a href="http://theme-junkie.com/demo/channel/" target="_blank">View Demo</a></p>
<h2>74. <a href="http://www.theme-junkie.com/themes/fashionpress/" target="_blank">FashionPress Free Wordpress Theme</a></h2>
<p>Release Date: October 9, 2009</p>
<p><a href="http://www.theme-junkie.com/themes/fashionpress/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/fashionpress-free-premium-wordpress-theme.jpg" alt="fashionpress-free-premium-wordpress-theme" width="570" height="427" /></a></p>
<p><a href="http://www.theme-junkie.com/demo/fashionpress/" target="_blank">View Demo</a></p>
<h2>75. <a href="http://www.getacustomdesign.com/news/corporate-life-free-wordpress-theme/" target="_blank">Corporate Life Free Wordpress Theme</a></h2>
<p>Release Date: September 9, 2009</p>
<p><a href="http://www.getacustomdesign.com/news/corporate-life-free-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/corporate-life-free-premium-wordpress-theme.jpg" alt="corporate-life-free-premium-wordpress-theme" width="570" height="415" /></a></p>
<p><a href="http://www.corporatelife.getacustomdesign.com/?theme=corporatemetall" target="_blank">View Demo</a></p>
<h2>76. <a href="http://dpxmag.com/cleanpress-a-free-premium-wordpress-theme.html" target="_blank">Clean Press Free Wordpress Theme</a></h2>
<p>Release Date: October 23, 2009</p>
<p><a href="http://dpxmag.com/cleanpress-a-free-premium-wordpress-theme.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/clean-press-free-premium-wordpress-theme.jpg" alt="clean-press-free-premium-wordpress-theme" width="570" height="424" /></a></p>
<p><a href="http://dpxmag.com/cleanpress/" target="_blank">View Demo</a></p>
<h2>77. <a href="http://www.themelab.com/2009/09/03/jungleland-free-wordpress-theme/" target="_blank">Jungle Land Free Wordpress Theme</a></h2>
<p>Release Date: September 3, 2009</p>
<p><a href="http://www.themelab.com/2009/09/03/jungleland-free-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/jungleland-free-premium-wordpress-theme.jpg" alt="jungleland-free-premium-wordpress-theme" width="570" height="415" /></a></p>
<p><a href="http://demo.themelab.com/?wptheme=Jungleland" target="_blank">View Demo</a></p>
<h2>78. <a href="http://www.paddsolutions.com/wordpress-theme-mainam/" target="_blank">Mainam Free Wordpress Theme</a></h2>
<p>Release Date: July 18, 2009</p>
<p>Mainam is a featured-packed and multi-colored free WordPress theme with TweetMeme retweet button. It has 3 columns, with an easy Options page for customization. Loaded with Social Bookmarks button, Twitter Account integration, Automatic Thumbnail Resizer without using a plugin or custom field, Adsense ready with lots of advertising blocks.</p>
<p><a href="http://www.paddsolutions.com/wordpress-theme-mainam/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mainam-free-premium-wordpress-theme.jpg" alt="mainam-free-premium-wordpress-theme" width="570" height="427" /></a></p>
<p><a href="http://www.paddsolutions.com/wpmag/mainam/?wptheme=mainam-vintage" target="_blank">View Demo</a></p>
<h2>79. <a href="http://www.kreativethemes.com/furvious/" target="_blank">Furvious Free Wordpress Theme</a></h2>
<p>Release Date: 25 November, 2009</p>
<p>A fantastic design with 5 color styles to be choose. Who says free themes can’t have admin panel?Publishing featured contents never been this easie</p>
<p><a href="http://www.kreativethemes.com/furvious/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/furvious-free-premium-wordpress-theme.jpg" alt="furvious-free-premium-wordpress-theme" width="570" height="393" /></a></p>
<p><a href="http://demo.kreativethemes.com/furvious/" target="_blank">View Demo</a></p>
<h2>80. <a href="http://www.wpzoom.com/themes/profile/" target="_blank">Profile Free Wordpress Theme</a></h2>
<p>Release Date: November 30th, 2009</p>
<p>Profile is a light, minimalistic design which is intended for small presentational sites and works as a small business card. Establish your online presence in less than 5 minutes!</p>
<p><a href="http://www.wpzoom.com/themes/profile/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/profile-free-premium-wordpress-theme.jpg" alt="profile-free-premium-wordpress-theme" width="570" height="544" /></a></p>
<p><a href="http://www.wpzoom.com/demo/profile/" target="_blank">View Demo</a></p>
<h2>81. <a href="http://www.wpzoom.com/themes/travelogue/" target="_blank">Travelogue Free Wordpress Theme</a></h2>
<p>Release Date: July 13th, 2009</p>
<p>A very simple Free Theme for WordPress blogs of travel-related topics: travel, fishing, navigation, marine, etc.</p>
<p><a href="http://www.wpzoom.com/themes/travelogue/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/travelogue-free-premium-wordpress-theme.jpg" alt="travelogue-free-premium-wordpress-theme" width="570" height="406" /></a></p>
<p><a href="http://www.themescloset.com/demo/travelogue/" target="_blank">View Demo</a></p>
<h2>82. <a href="http://azmind.com/2009/06/05/free-wordpress-theme-azsands/" target="_blank">Azsands Free Wordpress Theme</a></h2>
<p>Release Date: June 5, 2009</p>
<p>The theme comes with 125×125 advertising space, “About me” space and a right widgetized sidebar.</p>
<p><a href="http://azmind.com/2009/06/05/free-wordpress-theme-azsands/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/azsands-free-premium-wordpress-theme.jpg" alt="azsands-free-premium-wordpress-theme" width="570" height="391" /></a></p>
<p><a href="http://azmind.com/wp-themes-demo/?wptheme=AzSands-theme" target="_blank">View Demo</a></p>
<h2>83. <a href="http://www.mkels.com/wordpress-themes/urban/free-wordpress-theme-keko.html" target="_blank">KeKo Free Wordpress Theme</a></h2>
<p>Release Date: June 26th 2009</p>
<p>KeKo is a 2 columns fixed width Wordpress theme with theme option and twitter integrated. This urban grunge style theme is suitable for use on any niche blogs such as music, personal, social, etc.</p>
<p><a href="http://www.mkels.com/wordpress-themes/urban/free-wordpress-theme-keko.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/keko-free-premium-wordpress-theme.jpg" alt="keko-free-premium-wordpress-theme" width="570" height="388" /></a></p>
<p><a href="http://www.mkels.com/demo/" target="_blank">View Demo</a></p>
<h2>84. <a href="http://blog.squarefour.net/2009/05/28/introducing-new-wordpress-photoblog-theme/" target="_blank">Phloggin Free Wordpress Theme</a></h2>
<p>Release Date: May 28th, 2009</p>
<p><a href="http://blog.squarefour.net/2009/05/28/introducing-new-wordpress-photoblog-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/foreigner-photoblog-free-premium-wordpress-theme.jpg" alt="foreigner-photoblog-free-premium-wordpress-theme" width="570" height="420" /></a></p>
<p><a href="http://www.foreignerperspective.com/" target="_blank">View Demo</a></p>
<h2>85. <a href="http://newwpthemes.com/wordpress-theme/blue-station/" target="_blank">Blue Station Free Wordpress Theme</a></h2>
<p>Release Date: July 6, 2009</p>
<p>Blue Station high quality free premium WordPress theme suitable for daily blogging. Theme has admin options page.</p>
<p><a href="http://newwpthemes.com/wordpress-theme/blue-station/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/blue-station-free-premium-wordpress-theme.jpg" alt="blue-station-free-premium-wordpress-theme" width="570" height="425" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=BlueStation-40" target="_blank">View Demo</a></p>
<h2>86. <a href="http://www.paddsolutions.com/wordpress-theme-marangal/" target="_blank">Marangal Free Wordpress Theme</a></h2>
<p>Release Date: June 24, 2009</p>
<p>Marangal is a featured-packed, multi-colored and 3 columns free WordPress theme. It has an easy Options page to customize your theme. It is loaded with Feedburner Email Subscription, Twitter Account integration, YouTube Video integration, Flickr Thumbnails, Automatic Thumbnail Resizer, Adsense ready with advertising blocks.</p>
<p><a href="http://www.paddsolutions.com/wordpress-theme-marangal/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/marangal-free-premium-wordpress-theme.jpg" alt="marangal-free-premium-wordpress-theme" width="570" height="403" /></a></p>
<p><a href="http://www.paddsolutions.com/wpmag/marangal/?wptheme=marangal" target="_blank">View Demo</a></p>
<h2>87. <a href="http://newwpthemes.com/wordpress-theme/black-motion/" target="_blank">Black Motion Free Wordpress Theme</a></h2>
<p>Release Date: July 15th, 2009</p>
<p>Black Motion is high quality free premium WordPress theme. Suitable for any niche.</p>
<p><a href="http://newwpthemes.com/wordpress-theme/black-motion/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/black-motion-free-premium-wordpress-theme.jpg" alt="black-motion-free-premium-wordpress-theme" width="570" height="428" /></a></p>
<p><a href="http://newwpthemes.com/preview/?wptheme=BlackMotion-51" target="_blank">View Demo</a></p>
<h2>88. <a href="http://led24.de/wordpress-themes/2008-dimaggio-wordpress-theme-released/" target="_blank">Dimaggio Free Wordpress Theme</a></h2>
<p>Release Date: February 21, 2009</p>
<p>Dimaggio theme is another free WordPress theme by Led24.de for the WordPress community. The theme is a 2-column wide desing, perfect for personal and small blogs.</p>
<p><a href="http://led24.de/wordpress-themes/2008-dimaggio-wordpress-theme-released/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/dimaggio-free-premium-wordpress-theme.jpg" alt="dimaggio-free-premium-wordpress-theme" width="570" height="399" /></a></p>
<p><a href="http://led24.de/wordpress-themes/dimaggio/" target="_blank">View Demo</a></p>
<h2>89. <a href="http://www.mkels.com/wordpress-themes/magazine/free-wordpress-theme-minaflow.html" target="_blank">MinaFlow Free Wordpress Theme</a></h2>
<p>Release Date: June 17th 2009</p>
<p>MinaFlow is a 3 columns fixed width WordPress theme. It is a Magazine style theme comes with theme option to make it easier for you to customize some of the features available on this theme.</p>
<p><a href="http://www.mkels.com/wordpress-themes/magazine/free-wordpress-theme-minaflow.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mina-flow-free-premium-wordpress-theme.jpg" alt="mina-flow-free-premium-wordpress-theme" width="570" height="398" /></a></p>
<p><a href="http://www.mkels.com/demo/index.php?wptheme=MinaFlow" target="_blank">View Demo</a></p>
<h2>90. <a href="http://www.mkels.com/wordpress-themes/technology/free-wordpress-theme-vibrantech.html" target="_blank">VibranTech Free Wordpress Theme</a></h2>
<p>Release Date: January 8th 2009</p>
<p>VibranTech is a two columns lime blue WordPress theme with four featured content frontpage. The four featured columns on top is best to present your featured articles or popular news to quickly catch the attention of your readers.</p>
<p><a href="http://www.mkels.com/wordpress-themes/technology/free-wordpress-theme-vibrantech.html" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/vibrantech-free-premium-wordpress-theme.jpg" alt="vibrantech-free-premium-wordpress-theme" width="570" height="418" /></a></p>
<p><a href="http://www.mkels.com/demo/index.php?wptheme=Vibrantech" target="_blank">View Demo</a></p>
<h2>91. <a href="http://www.danielfajardo.com/dfblog/" target="_blank">dfBlog Free Wordpress Theme</a></h2>
<p>Release Date: July 3, 2009</p>
<p>dfBlog is a free Theme for WordPress with a web design minimalist, clear and clean, with fixed page width in two columns and the sidebar at the right side.</p>
<p><a href="http://www.danielfajardo.com/dfblog/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/dfblog-free-premium-wordpress-theme.jpg" alt="dfblog-free-premium-wordpress-theme" width="570" height="441" /></a></p>
<p><a href="http://www.danielfajardo.com/dfblog/" target="_blank">View Demo</a></p>
<h2>92. <a href="http://monkeypr.ajansretro.com/" target="_blank">MonkeyPR Free Wordpress Theme</a></h2>
<p>Release Date: September 7th, 2009</p>
<p>2 columns, right sidebar, widget ready, 125×125px ad spots ready, Ajax sliding header content, sticky post feature, footer content section.</p>
<p><a href="http://monkeypr.ajansretro.com/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/monkeypr-free-premium-wordpress-theme.jpg" alt="monkeypr-free-premium-wordpress-theme" width="570" height="554" /></a></p>
<p><a href="http://monkeypr.ajansretro.com/demo/" target="_blank">View Demo</a></p>
<h2>93. <a href="http://www.freethemelayouts.com/showcase/apollo-wordpress-theme/" target="_blank">Apollo Free Wordpress Theme</a></h2>
<p>Release Date: August 26th, 2009</p>
<p><a href="http://www.freethemelayouts.com/showcase/apollo-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/apollo-free-premium-wordpress-theme.jpg" alt="apollo-free-premium-wordpress-theme" width="570" height="431" /></a></p>
<p><a href="http://www.freethemelayouts.com/blog/index.php?wptheme=apollo" target="_blank">View Demo</a></p>
<h2>94. <a href="http://bizzartic.com/2009/05/10/berita-business-wordpress-theme/" target="_blank">Berita Free Wordpress Theme</a></h2>
<p>Release Date: May 10th, 2009</p>
<p><a href="http://bizzartic.com/2009/05/10/berita-business-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/berita-free-premium-wordpress-theme.jpg" alt="berita-free-premium-wordpress-theme" width="570" height="442" /></a></p>
<p><a href="http://www.freethemelayouts.com/blog/index.php?wptheme=darkforest" target="_blank">View Demo</a></p>
<h2>95. <a href="http://cssjockey.com/imagination/" target="_blank">Imagination Free Wordpress Theme</a></h2>
<p>Release Date: 2009</p>
<p>Imagination is a Fully Customizable WordPress Theme and comes pre-loaded with 9 different site-wide styles to choose from, with just a click.</p>
<p><a href="http://cssjockey.com/imagination/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/imagination-free-premium-wordpress-theme.jpg" alt="imagination-free-premium-wordpress-theme" width="570" height="429" /></a></p>
<p><a href="http://cssjockey.com/imagination/" target="_blank">View Demo</a></p>
<h2>96. <a href="http://www.dvq.co.nz/theme/freestyle-v-1/" target="_blank">FreeStyle Free Wordpress Theme</a></h2>
<p>Release Date: June 18, 2009</p>
<p>Built for Wordpress 2.8+. FreeStyle has built-in support for sidebar widgets, comments, custom default avatars</p>
<p><a href="http://www.dvq.co.nz/theme/freestyle-v-1/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/free-style-free-premium-wordpress-theme.jpg" alt="free-style-free-premium-wordpress-theme" width="570" height="390" /></a></p>
<p><a href="http://themes.dvq.co.nz/demo/?themedemo=freestyle" target="_blank">View Demo</a></p>
<h2>97. <a href="http://www.dvq.co.nz/theme/simplicity-v-2/" target="_blank">Simplicity Free Wordpress Theme</a></h2>
<p>Release Date: August 22, 2009</p>
<p><a href="http://www.dvq.co.nz/theme/simplicity-v-2/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/simplicity-free-premium-wordpress-theme.jpg" alt="simplicity-free-premium-wordpress-theme" width="570" height="386" /></a></p>
<p><a href="http://themes.dvq.co.nz/demo/?themedemo=simplicity" target="_blank">View Demo</a></p>
<h2>98. <a href="http://web2feel.com/zherald/" target="_blank">Zherald Free Wordpress Theme</a></h2>
<p>Release Date: April 28, 2009</p>
<p><a href="http://web2feel.com/zherald/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/zherald-free-premium-wordpress-theme.jpg" alt="zherald-free-premium-wordpress-theme" width="570" height="399" /></a></p>
<p><a href="http://web2feel.com/demosite2/?wptheme=zherald" target="_blank">View Demo</a></p>
<h2>99. <a href="http://wordpress.org/extend/themes/mystique" target="_blank">Mystique Free Wordpress Theme</a></h2>
<p>Release Date: November 30, 2009</p>
<p>Feature-packed theme with a solid design, built-in widgets and a intuitive theme settings interface… Designed by digitalnature.</p>
<p><a href="http://wordpress.org/extend/themes/mystique" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/mystique-free-premium-wordpress-theme.jpg" alt="mystique-free-premium-wordpress-theme" width="570" height="409" /></a></p>
<p><a href="http://wp-themes.com/mystique/" target="_blank">View Demo</a></p>
<h2>100. <a href="http://www.freethemelayouts.com/showcase/calmdream-wordpress-theme/" target="_blank">Calm Dream Free Wordpress Theme</a></h2>
<p>Release Date: November, 2009</p>
<p><a href="http://www.freethemelayouts.com/showcase/calmdream-wordpress-theme/" target="_blank"><img src="http://www.1stwebdesigner.com/wp-content/uploads/2009/12/100-wordpress-themes-2009/calm-dream-free-premium-wordpress-theme.jpg" alt="calm-dream-free-premium-wordpress-theme" width="570" height="419" /></a></p>
<p><a href="http://www.freethemelayouts.com/blog/index.php?wptheme=calmdream" target="_blank">View Demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/100-premium-like-but-free-wordpress-themes-year-2009/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>10 Ways to Green Your Home Office</title>
		<link>http://www.chamli.com/10-ways-to-green-your-home-office</link>
		<comments>http://www.chamli.com/10-ways-to-green-your-home-office#comments</comments>
		<pubDate>Sun, 06 Dec 2009 18:49:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Feng Shui]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=276</guid>
		<description><![CDATA[
If you’re a freelancer who works at home full time or most of the time, give yourself a pat on the back. You’re doing the planet a great service. By working at home you’re reducing the use of fuels and limiting the amount of pollution generated by modern means of transportation.
However, there is still a [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-277" href="http://www.chamli.com/10-ways-to-green-your-home-office/green-home-office"><img class="alignleft size-full wp-image-277" title="green-home-office" src="http://www.chamli.com/wp-content/uploads/2009/12/green-home-office.jpg" alt="green-home-office" width="590" height="300" /></a></p>
<p>If you’re a freelancer who works at home full time or most of the time, give yourself a pat on the back. You’re doing the planet a great service. By working at home you’re reducing the use of fuels and limiting the amount of pollution generated by modern means of transportation.</p>
<p>However, there is still a lot more you can do to help protect the environment. In this post, we’ll show you ten ways to make your home office more environmentally friendly and an even better place to work.</p>
<p>Let’s  start by reviewing the three Rs of eco-friendliness.</p>
<p><span id="more-5501"> </span></p>
<h3>The 3Rs of Eco-friendliness</h3>
<p>The three Rs of eco-friendliness are:</p>
<ul>
<li>Reduce — Reduce the number of stuff you use and consume, as well as the amount of trash and pollution you produce.</li>
<li>Reuse — Reuse whatever you can before tossing it out.</li>
<li>Recycle — Participate in your city’s recycling program by segregating your garbage, or further reduce your garbage by recycling things instead of throwing them away.</li>
</ul>
<p>Now that we’ve reviewed the basic eco-friendly concepts let’s move on to specific tips to help you make your office green. Here are the ten specific ways you can have a greener home office:</p>
<h3>1. Use low VOC paint.</h3>
<p>Volatile organic compounds (VOC) are chemicals that cause paint and other materials to have a strong, migraine-inducing odor. However, the smells are only part of the problem. These vapors can also have negative effects on our health, especially when you’re exposed indoors. So make sure to <a title="Green Home Office Innovations" href="http://ecosimply.com/5-green-tech-innovations-for-the-home-office-445.html" target="_blank">use low- or no-VOC paints for your home office</a>.</p>
<h3>2. Rest your feet on natural flooring.</h3>
<p>Instead of a carpet, which requires a lot of energy and effort to keep clean, why not use natural tile, wood (more on sustainable wood below), or plain paint on your flooring. If you’re using rugs, look for those made of natural materials, like hemp or bamboo.</p>
<h3>3. Choose “green” lighting.</h3>
<p>Use natural light from a window, as much as possible. And, replace all your bulbs with CFL bulbs. Compact fluorescent lights (CFL) use up less energy, last longer, and produce less pollution than incandescent bulbs. They also give a warm, pleasant light.</p>
<h3>4. Make sure your office furniture is eco-friendly.</h3>
<p>For home office furniture, be creative and shop in thrift stores and garage sales for reusable or recyclable furniture. If you must buy something new, make sure it’s sustainable furniture — made from fast-growing woods, upholstered with organic fabrics, finished with non-toxic chemicals and paints, and locally made. Look for furniture made with wood certified by the Forest Stewardship Council (FSC).</p>
<h3>5. Be wise with paper.</h3>
<p>Home offices use a lot of paper. Reduce the impact of your paper use by buying paper made with 100 percent post-consumer waste, chlorine-free, and FSC certified. That said, use paper only when you need it, and do use both sides of each sheet. By the way, you can even find paper that isn’t made from trees. You may enjoy this list of <a title="Eco friendly Stationery" href="http://ecosimply.com/green-beautiful-and-irresistible-stationery-1014.html" target="_blank">green and beautiful stationery</a>.</p>
<p>Whichever type of paper you choose, make sure to put it in the recycling bin when you do dispose of it.</p>
<h3>6. Be environment-conscious when you print.</h3>
<p>Printer manufacturers are becoming eco-conscious as well. For example, you’ll find specific printers from HP, Dell and Samsung that claim to be eco-friendly. In general, you want a printer that’s Energy Star compliant, has a power save mode, and ink save mode. If your printer does duplex printing, then reusing sheets of paper becomes so much easier.</p>
<p>Refill ink cartridges rather than buying new ones. Or, dispose of your printer cartridges through companies that recycle them, such as <a title="Waste Farmers" href="http://www.wastefarmers.com/" target="_blank">Waste Farmers</a>. <a title="Funding Factory" href="http://www.fundingfactory.com/" target="_blank">Funding Factory</a> buys used printer cartridges and raises money for non-profits and schools. <a title="Ewaste" href="http://ewaste.com/" target="_blank">Ewaste</a> recycles printers and other computer equipment.</p>
<h3>7. Be stingy… with energy.</h3>
<p>Challenge yourself to keep reducing your electricity bill. This is good for the earth — and your wallet. Use solar-powered gadgets. Invest in smart power strips, which detect when a piece of equipment is not in use and cut power to it automatically. Otherwise, your office equipment keeps sucking up electricity even when you’re not using it.</p>
<h3>8. Keep your air clean, fresh, and chemical free.</h3>
<p>Add some green to your office, literally, by bringing some plants indoors. Plants absorb toxins in the air and look pretty, to boot. Use a programmable thermostat, set on a low temperature, to regulate your use of the heater in winter. Another winter tip: humidify your air naturally by hanging wet laundry indoors. In warmer months, open your windows and use an electric fan for as long as you can bear it before switching on the air conditioner.</p>
<h3>9. Clean your home office naturally.</h3>
<p>Cleaning supplies can also bring plenty of VOCs and other harmful toxins into your home office. Fortunately,  green cleaning supplies are becoming fashionable and increasingly available. Look for cleaning supplies that don’t contain chlorine and other bleaches and are bio-degradable. Or, learn how to use nature’s cleaners: vinegar, water, baking soda, and borax.</p>
<h3>10. If you must leave the house…</h3>
<p>It’s inevitable; you’ll have to leave the house sometime. If so, consider walking, biking or taking the bus or subway to your destination instead of automatically reaching for your car keys. And, if a car is in order, find somebody who can carpool with you.</p>
<h3>How Green Is Your Home Office?</h3>
<p>Going green is a gradual process. If you begin taking baby steps to green your home office now, you’ll soon find yourself wanting to green your entire home and your whole lifestyle. If you’d like to learn more about going green, visit our sister blog, <a title="EcoSimply" href="http://ecosimply.com/" target="_blank">EcoSimply.com</a>.</p>
<p>In the meantime, do tell: how green is your home office?</p>
<p><small>Photo by <a title="JeffWilcox Flickr" href="http://www.flickr.com/photos/jeffwilcox/" target="_blank">JeffWilcox</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/10-ways-to-green-your-home-office/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Best jQuery Plugins of 2009</title>
		<link>http://www.chamli.com/the-best-jquery-plugins-of-2009</link>
		<comments>http://www.chamli.com/the-best-jquery-plugins-of-2009#comments</comments>
		<pubDate>Sun, 06 Dec 2009 18:39:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=267</guid>
		<description><![CDATA[Content Sliders
This year we saw a growing popularity in using content sliders as a way to display several pieces of content within a limited area or to engage the user with the sliding animation. Normally this is done in a featured banner area near the top of the page. There were several jQuery plugins written [...]]]></description>
			<content:encoded><![CDATA[<h2>Content Sliders</h2>
<p>This year we saw a growing popularity in using content sliders as a way to display several pieces of content within a limited area or to engage the user with the sliding animation. Normally this is done in a featured banner area near the top of the page. There were several jQuery plugins written in ‘09 to accomplish this type of effect, but here are our favorites.</p>
<h3><a href="http://css-tricks.com/anythingslider-jquery-plugin/" target="_blank">AnythingSlider</a></h3>
<p><a href="http://css-tricks.com/anythingslider-jquery-plugin/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_1.jpg" alt="jquery plugins" /></a></p>
<p>AnythingSlider is created by Chris Coyier of CSS-Tricks and is a fully featured slider that is widely useful.</p>
<h3><a href="http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider" target="_blank">Easy Slider</a></h3>
<p><a href="http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_3.jpg" alt="jquery plugins" /></a></p>
<p>Easy Slider is a content slider that gives you the the option to choose between classic previous/next navigation or to use a numeric “pagination” style navigation.</p>
<h3><a href="http://www.ndoherty.biz/tag/coda-slider/" target="_blank">Coda-Slider 2.0</a></h3>
<p><a href="http://www.ndoherty.biz/tag/coda-slider/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_7.jpg" alt="jquery plugins" /></a></p>
<p>Coda-Slider 2.0 is aimed to mimic the slider effect on the promo page for Panic’s Coda software. The original version was hacked together in 2007, but this 2.0 version is built from the ground up.</p>
<h2>Image Galleries</h2>
<p>The days of having to use Flash to create image galleries with cross fading or sliding transitions are long gone. Thanks to jQuery these types of effects can be easily achieved with javascript. Here are our favorite image gallery plugins from this year.</p>
<h3><a href="http://devkick.com/lab/galleria/" target="_blank">Galleria</a></h3>
<p><a href="http://devkick.com/lab/galleria/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_4.jpg" alt="jquery plugins" /></a></p>
<p>Galleria is a javascript image gallery written in jQuery. It loads the images one by one from an unordered list and displays thumbnails when each image is loaded. It will create thumbnails for you if you choose so, scaled or unscaled, centered and cropped inside a fixed thumbnail box defined by CSS.</p>
<h3><a href="http://www.catchmyfame.com/2009/08/13/jquery-panel-gallery-1-1-plugin-released/" target="_blank">jQuery Panel Gallery</a></h3>
<p><a href="http://www.catchmyfame.com/2009/08/13/jquery-panel-gallery-1-1-plugin-released/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_5.jpg" alt="jquery plugins" /></a></p>
<p>jQuery Panel Gallery is a compact image gallery that can easily be configured. Not one image needs to be sliced or edited to work with this plugin. The plugin handles everything itself. You can even configure fading transitions per image.</p>
<h3><a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html" target="_blank">slideViewer</a></h3>
<p><a href="http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_10.jpg" alt="jquery plugins" /></a></p>
<p>slideViewer checks for the number of images within your list, and dynamically creates a set of links to command (slide) you pictures. Also, clicking on each image will make the gallery slide to the next picture.</p>
<h3><a href="http://www.buildinternet.com/project/supersized/" target="_blank">Supersized</a></h3>
<p><a href="http://www.buildinternet.com/project/supersized/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_6.jpg" alt="jquery plugins" /></a></p>
<p>Supersized cycles images with transitions and preloading. It automatically resizes images to fill browser while maintaining image dimension ratio.</p>
<h2>Navigation</h2>
<p>I believe navigation is an aspect of a web site that should kept simple and easy to use. However, if there is a need to create a more engaging nav, jQuery is your best bet. Here are a few of the best from ‘09.</p>
<h3><a href="http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/" target="_blank">jquery mb.menu</a></h3>
<p><a href="http://pupunzi.open-lab.com/mb-jquery-components/mb-_menu/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_8.jpg" alt="jquery plugins" /></a></p>
<h3><a href="http://www.queness.com/post/256/horizontal-scroll-menu-with-jquery-tutorial" target="_blank">Horizontal Scroll Menu with jQuery </a></h3>
<p><a href="http://www.queness.com/post/256/horizontal-scroll-menu-with-jquery-tutorial" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_16.jpg" alt="jquery plugins" /></a></p>
<p>This isn’t a plugin, but I had to include it since it is such a cool effect. It’s a horizontal scroll menu that scrolls automatically according to your mouse axis-Y movement.</p>
<h3><a href="http://www.newmediacampaigns.com/page/autosprites-jquery-menu-plugin" target="_blank">AutoSprites</a></h3>
<p><a href="http://www.newmediacampaigns.com/page/autosprites-jquery-menu-plugin" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_9.jpg" alt="jquery plugins" /></a></p>
<h2>Forms and Tables</h2>
<p>Working with forms and tables is probably not the most glamorous part of web design and development, but it has to be done. There were several plugins released this year to help you spice things up a bit. Here are our favorites.</p>
<h3><a href="http://www.unwrongest.com/projects/password-strength/" target="_blank">Password Strength</a></h3>
<p><a href="http://www.unwrongest.com/projects/password-strength/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_12.jpg" alt="jquery plugins" /></a></p>
<p>Password Strength tries to calculate how many possibilities the hacker needs to try to guess your password.</p>
<h3><a href="http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin" target="_blank">Ajax Fancy Capcha</a></h3>
<p><a href="http://www.webdesignbeach.com/beachbar/ajax-fancy-captcha-jquery-plugin" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_13.jpg" alt="jquery plugins" /></a></p>
<p>Ajax Fancy Captcha is a jQuery plugin that helps you protect your web pages from bots and spammers. It introduces a new, intuitive way of completing “verify humanity” tasks.</p>
<h3><a href="http://www.chromaloop.com/posts/chromatable-jquery-plugin" target="_blank">Chromatable</a></h3>
<p><a href="http://www.chromaloop.com/posts/chromatable-jquery-plugin" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/jquery_tables_10.jpg" alt="jquery tables" /></a></p>
<p>Chromatable allows you to easily create scrolling tables with fixed headers.</p>
<h3><a href="http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/" target="_blank">jqTransform</a></h3>
<p><a href="http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_14.jpg" alt="jquery plugins" /></a></p>
<p>jqTransform is a styling plugin which allows you to skin form elements.</p>
<h3><a href="http://www.uploadify.com/" target="_blank">Uploadify</a></h3>
<p><a href="http://www.uploadify.com/" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/12/jquery_2009_15.jpg" alt="jquery plugins" /></a></p>
<p>Uploadify allows the easy integration of a multiple (or single) file uploads on your website.</p>
<h3><a href="http://www.jankoatwarpspeed.com/post/2009/07/20/Expand-table-rows-with-jQuery-jExpand-plugin.aspx" target="_blank">jExpand </a></h3>
<p><a href="http://www.jankoatwarpspeed.com/post/2009/07/20/Expand-table-rows-with-jQuery-jExpand-plugin.aspx" target="_blank"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/jquery_tables_1.jpg" alt="jquery tables" /></a></p>
<p>jExpand is ultra lightweight jQuery plugin that will make your tables expandable. Typical for line of business applications, this feature can help you organize tables better. This way, tables can hold more information such as images, lists, diagrams and other elements.</p>
<h2>Related Posts</h2>
<p>Here&#8217;s some other articles that you will definitely find useful.</p>
<h3><a title="Permanent Link to The Best Free WordPress Themes of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-wordpress-themes-of-2009">The Best Free WordPress Themes of 2009</a></h3>
<p><a title="Permanent Link to The Best Free WordPress Themes of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-wordpress-themes-of-2009"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/themes_2009.jpg" alt="" /></a></p>
<h3><a title="Permanent Link to The Best Photoshop Tutorials of 2009" rel="bookmark" href="http://webdesignledger.com/tutorials/the-best-photoshop-tutorials-of-2009">The Best Photoshop Tutorials of 2009</a></h3>
<p><a title="Permanent Link to The Best Photoshop Tutorials of 2009" rel="bookmark" href="http://webdesignledger.com/tutorials/the-best-photoshop-tutorials-of-2009"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/photoshop_tuts_2009.jpg" alt="" /></a></p>
<h3><a title="Permanent Link to The Best Free Icon Sets of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-icon-sets-of-2009">The Best Free Icon Sets of 2009</a></h3>
<p><a title="Permanent Link to The Best Free Icon Sets of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-icon-sets-of-2009"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/icons_09.jpg" alt="" /></a></p>
<h3><a title="Permanent Link to The Best Free Fonts of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-fonts-of-2009">The Best Free Fonts of 2009</a></h3>
<p><a title="Permanent Link to The Best Free Fonts of 2009" rel="bookmark" href="http://webdesignledger.com/freebies/the-best-free-fonts-of-2009"><img src="http://webdesignledger.com/wp-content/uploads/2009/11/fonts_2009.jpg" alt="" /></a></p>
<div>
<h5>Want more from WDL?</h5>
<p>How about lots of premium files to make your designs look amazing?</p>
<p><a href="http://webdesignledger.com/wdl-premium">Learn More</a></div>
<p><a href="http://www.coveractionpro.com/364-0-1-4.html" target="_blank"><img style="border: medium none; margin: 0pt 0pt 0pt 25px; width: 550px; height: auto;" src="http://www.coveractionpro.com/idevaffiliate/banners/cap2-extreme.jpg" border="0" alt="" /></a></p>
<p><!-- You can start editing here. --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/the-best-jquery-plugins-of-2009/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 5 Most Popular Colors</title>
		<link>http://www.chamli.com/top-5-most-popular-colors</link>
		<comments>http://www.chamli.com/top-5-most-popular-colors#comments</comments>
		<pubDate>Fri, 13 Nov 2009 19:02:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=177</guid>
		<description><![CDATA[Colors can affect the usability of your Web site. Web browsers have standard colors that are used for links (blue for links, violet for visited links, and red for active links). When you use other colors, you run the risk of confusing your customers. Also, colors of other elements of your page can affect your [...]]]></description>
			<content:encoded><![CDATA[<p>Colors can affect the usability of your Web site. Web browsers have standard colors that are used for links (blue for links, violet for visited links, and red for active links). When you use other colors, you run the risk of confusing your customers. Also, colors of other elements of your page can affect your readers. For example, color blind customers might not recognize color coded images.</p>
<p><a rel="attachment wp-att-178" href="http://www.chamli.com/top-5-most-popular-colors/picture-4"><img class="alignnone size-full wp-image-178" title="Picture 4" src="http://www.chamli.com/wp-content/uploads/2009/11/Picture-4.png" alt="Picture 4" width="328" height="264" /></a><a rel="attachment wp-att-179" href="http://www.chamli.com/top-5-most-popular-colors/picture-3"><img class="alignnone size-full wp-image-179" title="Picture 3" src="http://www.chamli.com/wp-content/uploads/2009/11/Picture-3.png" alt="Picture 3" width="323" height="289" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/top-5-most-popular-colors/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beginner’s Guide To Ruby On Rails: Part 2</title>
		<link>http://www.chamli.com/beginner%e2%80%99s-guide-to-ruby-on-rails-part-2</link>
		<comments>http://www.chamli.com/beginner%e2%80%99s-guide-to-ruby-on-rails-part-2#comments</comments>
		<pubDate>Sat, 06 Jun 2009 16:25:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=143</guid>
		<description><![CDATA[Last week we published Getting Started With Ruby On Rails, the first part of our Ruby On Rails introduction. We explained basic ideas behind Ruby and presented concepts and essential components of the language. In this article you’ll learn more about Rails, you will learn how to get Ruby on Rails running on your computer, [...]]]></description>
			<content:encoded><![CDATA[<p>Last week we published <a href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/">Getting Started With Ruby On Rails</a>, the first part of our Ruby On Rails introduction. We explained basic ideas behind Ruby and presented concepts and essential components of the language. In this article you’ll learn more about Rails, you will learn how to get Ruby on Rails running on your computer, and get an overview of the basic functionality of Rails and demonstrate how Rails’ main parts work together.</p>
<p>I assume you’re <strong>already familiar with some other form of Web development</strong>, whether PHP, Python, Perl or Java, and relational databases like MySQL. First, we’ll introduce Rails and Ruby and the basic ideas behind both. I’ll teach you just enough Ruby so that you understand the code samples. I’ll tell you how to get Ruby on Rails running on your computer, and I’ll give you an overview of the basic functionality of Rails and demonstrate how Rails’ main parts work together.</p>
<p>After reading these parts, you should have an idea of whether Rails is for you. If you get the feeling that it is, I’ll point you to some good tutorials on the Web that you can use to learn Rails. I’ll also provide a lot of further reading recommendations so you can dig as deep into the topic as you like.</p>
<p>You may want to take a look at the following related posts:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/">Getting Started With Ruby On Rails: Part 1</a></li>
<li><a href="http://www.smashingmagazine.com/2009/02/25/ruby-on-rails-tips/">10 Useful Tips For Ruby On Rails Developers</a></li>
</ul>
<h3>Get Rolling</h3>
<p>To get your feet wet with Rails, it’s best to simply install it on your own machine and start playing around. This requires just a few steps.</p>
<p>On Windows do the following:</p>
<ol>
<li><strong>Install Ruby 1.8.6</strong> using the one-click installer from <a href="http://www.ruby-lang.org/">www.ruby-lang.org</a>. Make sure to select “Enable Rubygems” during installation. It’s probably a good idea to install ruby as admin.</li>
<li><strong>Update Rubygems</strong>. Rubygems is Ruby’s package management system, and Rails needs a newer version than the one that ships with the installer. To do this, execute <code>gem update --system</code> in the console as admin. Next, you’ll need to add the <a href="http://www.github.com/">GitHub</a> gem server to Rubygems with <code>gem sources -a http://gems.github.com</code></li>
<li><strong>Install Rails</strong> and its dependencies with <code>gem install rails</code> and <code>gem install mysql</code>. (You can use other databases, but MySQL is the easiest to set up.)</li>
<li>Install the <strong>MySQL Database</strong> from <a href="http://www.mysql.com/">mysql.com</a>. If you’ve done Web development before, you probably already have it on your machine.</li>
<li><strong>Create a Rails application</strong>. Enter <code>rails -d mysql &lt;appname&gt;</code>. “Appname” will be the name of the sub-directory your app is created in.</li>
<li>Go into the created application’s directory and execute <code>ruby script/server</code>. Point your browser to <code>localhost:3000</code>. You should see the <strong>Rails welcome page</strong>. Follow its instructions.</li>
</ol>
<p><img src="http://media2.smashingmagazine.com/images/introduction-to-rails/rails_welcome.jpg" alt="" /></p>
<p>To edit Ruby code, you can use any text editor. If you just <em>have</em> to have a fancy IDE, try <a href="http://www.netbeans.org/">NetBeans</a>. I recommend <a href="http://notepad-plus.sourceforge.net/">Notepad++</a>, a great, lightweight freeware editor.</p>
<p>On a Mac, you’re lucky. <strong>Mac OS 10.5</strong> comes with Ruby, Rails and SqLite3. You just need to update your packages by issuing a few commands:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>sudo gem install rubygems-update </span></span></li>
<li><span>sudo update_rubygems </span></li>
<li class="alt"><span> </span></li>
<li><span>gem install rails </span></li>
<li class="alt"><span>gem install mongrel </span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">sudo gem install rubygems-update
sudo update_rubygems

gem install rails
gem install mongrel</pre>
<p>If you need more detailed help on installing Rails on <strong>10.4 Tiger</strong>, check out the <a href="http://wiki.rubyonrails.org/getting-started/installation/mac">tutorial on the Rails wiki</a> or in <a href="http://craiccomputing.blogspot.com/2008/11/installing-rails-22-on-mac-os-x-mysql.html">this blog post</a>. Now you can create your app with <code>rails &lt;appname&gt;</code>.</p>
<p>On Linux, the installation depends on your distribution.</p>
<h3>A Bird’s Eye View Of Rails’ Inner Workings</h3>
<p>This is the part I find missing in most other tutorials about any topic. I want to present an <strong>overview</strong> of the most important components of Ruby on Rails to help you understand how they work together to process requests. I will be more detailed in the controller section because that’s the most important one, and if I left things out there I wouldn’t be able to paint the whole picture.</p>
<h4>Controller</h4>
<p>When the request hits your server running the Rails app, the first component handling it is the <strong>ActionController</strong>.</p>
<p>The ActionController and all of its parts correspond to the controller-part of the MVC stack. Before actually handling the request, the ActionController inspects it to determine which of the controllers in your application is responsible for the request.</p>
<p>These lookups are called <strong>routes</strong> and are defined in <code>config/routes.rb</code>. If you take a look in that file, you’ll see lines similar to these:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>ActionController::Routing::Routes.draw </span><span class="keyword">do</span><span> |map| </span></span></li>
<li><span> map.resources <span class="symbol">:users</span><span> </span></span></li>
<li class="alt"><span> map.connect <span class="string">&#8216;:controller/:action/:id&#8217;</span><span> </span></span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">ActionController::Routing::Routes.draw do |map|
  map.resources :users
  map.connect ':controller/:action/:id'
end</pre>
<p>The details of route definition could fill an article of their own. If you’re interested in its precise workings, take a look at the <code>ActionController::Routing</code> documentation in the  <a href="http://api.rubyonrails.com/">Rails API</a>.</p>
<p>Simplified, two kind of routes appear here. The last one is the <strong>traditional style</strong> of defining routes. These are formed like simple regular expressions, with the <code>:foo</code> part being a placeholder.</p>
<p>If a request’s URL matches one of these expressions, its parts are mapped to the placeholders. These are then examined to determine the correct controller, the action within the controller and further parameters like <code>id</code> (<code>id</code> always contains the id of the object that the client wants to work with). For example, a URL like <code>/foo/bar/123</code> would be mapped to the <code>FooController</code>; the <code>bar</code> action and the value of <code>params[:id]</code> would be <code>123</code>.</p>
<p>The first line is a shortcut to create a large number of those routes in one sweep. Routes created this way adhere to the <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST principles</a>. Again, this is a topic large enough to warrant its own article. For the sake of this introduction, let me just illustrate the effect of <code>map.resources :users</code> as an example. If you put such a line in your <code>routes.rb</code> you’re telling Rails that you want <em>users</em> to be a <strong>resource</strong>. That means seven routes are installed that all point to the <code>UserController</code>.<br />
These seven routes match not only against the URL of the request but also the HTTP method. The mappings are:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>GET      /users </span><span class="comment"># will point to the index action</span><span> </span></span></li>
<li><span>GET      /users/<span class="keyword">new</span><span> </span><span class="comment"># will point to the new action</span><span> </span></span></li>
<li class="alt"><span>POST     /users            <span class="comment"># will point to the create action</span><span> </span></span></li>
<li><span>GET      /users/<span class="symbol">:id</span><span> </span><span class="comment"># will point to the show action</span><span> </span></span></li>
<li class="alt"><span>GET      /users/<span class="symbol">:id</span><span>/edit </span><span class="comment"># will point to the edit action</span><span> </span></span></li>
<li><span>PUT      /users/<span class="symbol">:id</span><span> </span><span class="comment"># will point to the update action</span><span> </span></span></li>
<li class="alt"><span>DELETE   /users/<span class="symbol">:id</span><span> </span><span class="comment"># will point to the destroy action</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">GET      /users            # will point to the index action
GET      /users/new        # will point to the new action
POST     /users            # will point to the create action
GET      /users/:id        # will point to the show action
GET      /users/:id/edit   # will point to the edit action
PUT      /users/:id        # will point to the update action
DELETE   /users/:id        # will point to the destroy action</pre>
<p>All of these actions of the <code>UserController</code> are expected to behave in certain ways.</p>
<ul>
<li>The <code>index</code> action should display a list of all existing users.</li>
<li>The <code>new</code> action should display a form for the creation of a new user that is submitted to <code>/users</code> via <code>POST</code>.</li>
<li>The <code>create</code> action should take the form’s input and create a new user in the database.</li>
<li>The <code>show</code> action should display the user with the corresponding id.</li>
<li>The <code>edit</code> action should display a form for editing the user. The form should submit to <code>/users/:id/</code> via <code>PUT</code>.</li>
<li>The <code>update</code> action receives the form data and updates the user in the database.</li>
<li>The <code>destroy</code> action deletes the user from the database.</li>
</ul>
<p>Because <code>PUT</code> and <code>DELETE</code> aren’t supported by all browsers, forms that are supposed to use these methods submit via <code>POST</code> and tell the server their <em>intended</em> method via a hidden form field named <code>_method</code>.</p>
<p>Once controller, action and parameters are determined, the action can be called. But before that actually happens, Rails inspects the <strong>filter chain</strong> for the action to see if there are any filters to be executed before the action runs. Such filters are incredibly useful for things like user authentication. To ensure that only logged-in users of your application can access certain actions, you would define a filter that checks the session for valid credentials. Such a filter could look like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">class</span><span> UserController &lt; ApplicationController </span></span></li>
<li><span> </span></li>
<li class="alt"><span> <span class="comment"># Require valid login to access the update action</span><span> </span></span></li>
<li><span> before_filter(<span class="symbol">:require_login</span><span>, </span><span class="symbol"> <img src='http://www.chamli.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly</span><span> =&gt; </span><span class="symbol">:update</span><span>) </span></span></li>
<li class="alt"><span> </span></li>
<li><span> <span class="comment"># Lots of actions defined here</span><span> </span></span></li>
<li class="alt"><span> <span class="comment"># &#8230;</span><span> </span></span></li>
<li><span> <span class="comment"># &#8230;</span><span> </span></span></li>
<li class="alt"><span> </span></li>
<li><span>private </span></li>
<li class="alt"><span> </span></li>
<li><span> <span class="keyword">def</span><span> require_login </span></span></li>
<li class="alt"><span> render(<span class="symbol">:text</span><span> =&gt; </span><span class="string">&#8220;Unauthorized&#8221;</span><span>, </span><span class="symbol">:status</span><span> =&gt; 401) </span><span class="keyword">unless</span><span> session[</span><span class="symbol">:user_valid</span><span>] </span></span></li>
<li><span> <span class="keyword">end</span><span> </span></span></li>
<li class="alt"><span> </span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">class UserController &lt; ApplicationController

  # Require valid login to access the update action
  before_filter(:require_login, <img src='http://www.chamli.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly =&gt; :update)

  # Lots of actions defined here
  # ...
  # ...

private

  def require_login
    render(:text =&gt; "Unauthorized", :status =&gt; 401) unless session[:user_valid]
  end

end</pre>
<p>Let’s analyze this example line by line. The UserController inherits from the ApplicationController. All of your controllers should. The ApplicationController can then contain code that should be <strong>shared among all the controllers</strong> in your application. You could, for example, put the <code>require_login</code> filter in there to require a valid log-in for <em>all</em> your controllers.</p>
<p>The next line declares a before filter. By making the declaration using the symbol <code>:require_login</code>, you’re telling Rails to use the <code>require_login</code> method as a filter. This alone would apply the filter to all actions<br />
in the UserController. The additional parameter <code> <img src='http://www.chamli.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> nly =&gt; :update</code> tells Rails to use the filter only when the client wants to access the <code>update</code> action. In a real controller, this line would be followed by the definitions of all the actions your controller contains. In this example, they’re omitted for brevity.</p>
<p>The keyword <code>private</code> marks all the methods defined afterward as private to the UserController. This implies that they can’t be used as actions. We don’t want <code>require_login</code> to be used as an action, so we’re putting it here.</p>
<p><code>Require_login</code> checks if the field <code>:user_valid</code> in the session is present. This is, of course, a pretty drastic simplification of a real authentication scheme, but it’s sufficient for the sake of illustrating filters. Unless a user is logged in, the filter renders a simple error message.</p>
<p>Now, here’s a detail you need to know to understand this. Rails works through all the filters applying to an action and only <strong>aborts request processing</strong> for three reasons:</p>
<ol>
<li>A filter raises an Error.</li>
<li>A filter returns false.</li>
<li>A filter renders somethings or redirects.</li>
</ol>
<p>So, this single line is all that is needed to protect our sensitive actions against malicious clients. Again, I’m simplifying this a bit. To make an application really secure, you will of course need a little bit more code to properly maintain session state. To find out more about filters, read the <code>ActionController::Filters::ClassMethods</code> documentation in the Rails API.</p>
<p>Let’s see how Rails continues with the processing of the request.</p>
<p class="showcase"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/introduction-to-rails/request.jpg" alt="" /></p>
<p>After the client’s request has passed all filters, the action finally executes. Let’s run with our example from the filters section and assume the client wants to execute the <code>update</code> action after editing the user in a <code>from</code> provided by the <code>edit</code> action. Both actions could be defined like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">def</span><span> edit </span></span></li>
<li><span> <span class="variable">@user</span><span> = User.find(params[</span><span class="symbol">:id</span><span>]) </span></span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
<li><span> </span></li>
<li class="alt"><span><span class="keyword">def</span><span> update </span></span></li>
<li><span> <span class="variable">@user</span><span> = User.find(params[</span><span class="symbol">:id</span><span>]) </span></span></li>
<li class="alt"><span> <span class="keyword">if</span><span> </span><span class="variable">@user</span><span>.update_attributes(params[</span><span class="symbol">:user</span><span>]) </span></span></li>
<li><span> redirect_to users_url </span></li>
<li class="alt"><span> <span class="keyword">else</span><span> </span></span></li>
<li><span> render <span class="symbol">:action</span><span> =&gt; </span><span class="symbol">:edit</span><span> </span></span></li>
<li class="alt"><span> <span class="keyword">end</span><span> </span></span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">def edit
  @user = User.find(params[:id])
end

def update
  @user = User.find(params[:id])
  if @user.update_attributes(params[:user])
    redirect_to users_url
  else
    render :action =&gt; :edit
  end
end</pre>
<p>Let’s work through this line by line again. First, note that <strong>actions are defined as simple parameter-less methods on the controller</strong>. Their input and output is realized a little differently from what you’d expect from a method. Actions retrieve all the information they need to process the request from their controller through a few accessors, mainly <code>params</code> and <code>session</code>. There are more (<code>cookies</code>, <code>request</code>), but they’re not used nearly as often as these two, and I don’t want to complicate matters more than is necessary here.</p>
<p>The <code>params</code> method returns all the <strong>parameters of a request</strong>. These usually result from its querystrings or the postbody, but can also be created from JSON or XML data structures. Through routes, parts of the URL can also become parameters. This is where the <code>:id</code> parameter in the example is read from. If the client requests <code>/users/123/edit/</code> and we have a route definition <code>map.resources :users</code>, then 123 becomes the <code>:id</code> parameter for the edit action, because the route definition generates (among others) a route that looks like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>map.route </span><span class="string">&#8216;/users/:id/edit&#8217;</span><span>, </span></span></li>
<li><span> <span class="symbol">:controller</span><span> =&gt; </span><span class="string">&#8216;users&#8217;</span><span>, </span></span></li>
<li class="alt"><span> <span class="symbol">:action</span><span> =&gt; </span><span class="string">&#8216;edit&#8217;</span><span>, </span></span></li>
<li><span> <span class="symbol">:method</span><span> =&gt; </span><span class="symbol">:get</span><span> </span></span></li>
<li class="alt"><span> </span></li>
<li><span>&lt;!&#8211; The <span class="string">&#8220;session&#8221;</span><span> method can be used to access data </span><span class="keyword">in</span><span> the session. Whatever you put </span><span class="keyword">in</span><span> here will be available </span><span class="keyword">in</span><span> subsequent actions </span><span class="keyword">in</span><span> the same session. This is commonly used to store log-</span><span class="keyword">in</span><span> information </span><span class="keyword">or</span><span> things like shopping cart contents. &#8211;&gt; </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">map.route '/users/:id/edit',
          :controller =&gt; 'users',
          :action     =&gt; 'edit',
          :method     =&gt; :get

&lt;!-- The "session" method can be used to access data in the session. Whatever you put in here will be available in subsequent actions in the same session. This is commonly used to store log-in information or things like shopping cart contents. --&gt;</pre>
<p>For output, an action basically has two options. It can either <strong>redirect the user or render a template</strong>. The templates for a Rails application are organized the same way the controllers are. They reside in <code>app/templates/&lt;controllername&gt;/&lt;action&gt;.html.erb</code>, and if no output is specified in the action, Rails renders the template belonging to that action by default. That’s why you don’t see any output code in the edit action. The only line in <code>edit</code> pulls the user we want to edit out of the database and puts it into an instance variable of the controller to make it available to the template.</p>
<p>The <code>update</code> action begins with the same statement, again fetching the user form the database. In its next step, the user’s attributes are updated with the data that the action received from the client-side form. The update returns <em>true</em> on success. In this case, the client is redirected to the list of users.</p>
<p>This redirection deserves closer inspection. The <code>redirect_to</code> command takes a URL, but instead of hard-coding these URLs (<code>/users</code> in this case), it is conventional to use URL helpers like <code>users_url</code>. The helpers are generated automatically by the route or resource definitions.</p>
<p>If updating the user’s attributes does not succeed, two things happen inside the <code>update_attributes</code> call. First the user’s <code>errors</code> property will be filled with details on why the update didn’t succeed, and the call will return false instead of true. As a result, the client is not redirected; instead, <code>render</code> is called, with <code>:action =&gt; :edit</code> as its parameter. This tells <code>render</code> to render the template belonging to the <code>edit</code> action of the current controller.</p>
<p>Why not redirect to the edit action, you may ask? We could do that, but we’d lose all the edits we made to the user and lose information on the errors that occurred. When the edit-template is rendered instead during the processing of the <code>update</code> action, <strong>the user that failed to update is still in memory with all its pending edits and the errors</strong>. We can use this data in the template to pre-fill the form with the values we just entered (but didn’t save to the database) and provide information to the client on what went wrong.</p>
<p>There’s one last important thing to note here about <code>render</code> and <code>redirect_to</code>. It is not apparent from these examples, but <strong>calling <code>render</code> or <code>redirect_to</code> does not stop the processing of the action</strong>. These are both just methods and not special control flow statements. So, when <code>render</code> is called, the template isn’t rendered yet; rather, the controller renders the template <em>after</em> the action has processed. Any statements following a <code>render</code> are still executed.</p>
<h4>Model</h4>
<p>The second important part of MVC in Rails is the Model. Its role is played by the <strong>ActiveRecord</strong> module, an implementation of the <a title="P of EAA: Active Record" href="http://martinfowler.com/eaaCatalog/activeRecord.html">pattern of the same name</a>. ActiveRecord::Base functions as a base class for the models in your application. If you derive your models from this class, you’ll have them <strong>automatically linked to tables in your database</strong> and can very easily load, edit, save, create, delete or list them. Mappings between the structure and behavior of your models and the tables in the database are fully automated mostly, provided that you adhere to a few rules in the design of your tables. The general principles are:</p>
<ol>
<li>Your table name is the pluralized, underscored variant of your classname. So, a class <code>User</code> would be mapped to the table <code>users</code>.<code>CookieRecipe</code> would be mapped to <code>cookie_recipes</code>.</li>
<li>Your table needs to have its primary key on an integer column called <code>id</code> with the <code>auto increment</code> property.</li>
<li>Associations to other tables are stored in columns that are named after them. If you want to store posts belonging to a user, the <code>posts</code> table would need a <code>user_id</code> column</li>
</ol>
<p class="showcase"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/introduction-to-rails/active_record.jpg" alt="" /></p>
<p>If you have a table and class that are connected via their name, like <code>users</code> and <code>User</code>, any column in the table is available on the model as a property. If you want to create a User, you’d just instantiate an object in Rails:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>u = User.</span><span class="keyword">new</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">u = User.new</pre>
<p>Then you can begin setting its properties:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>u.name = </span><span class="string">&#8220;Michael&#8221;</span><span> </span></span></li>
<li><span>u.age  = 35 </span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">u.name = "Michael"
u.age  = 35</pre>
<p>You could also provide these settings upon creation:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>u = User.</span><span class="keyword">new</span><span>(</span><span class="symbol">:name</span><span> =&gt; </span><span class="string">&#8220;Michael&#8221;</span><span>, </span><span class="symbol">:age</span><span> =&gt; 35) </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">u = User.new(:name =&gt; "Michael", :age =&gt; 35)</pre>
<p>To store the new user in the database, tell it to save:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>u.save </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">u.save</pre>
<p>You can find records in a lot of ways:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>u = User.find(123) </span><span class="comment"># finds the user with id 123</span><span> </span></span></li>
<li><span>u = User.find(<span class="symbol">:all</span><span>) </span><span class="comment"># returns an array containing all users</span><span> </span></span></li>
<li class="alt"><span>u = User.find_by_name(<span class="string">&#8220;Michael&#8221;</span><span>) </span><span class="comment"># a &#8221;magic&#8221; finder</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">u = User.find(123)               # finds the user with id 123
u = User.find(:all)              # returns an array containing all users
u = User.find_by_name("Michael") # a "magic" finder</pre>
<p>I don’t want to go into the details of all of these options. You can find them all in the ActiveRecord::Base module documentation in the Rails API. I’d rather introduce two important features of ActiveRecord: <strong>associations</strong> and validations.</p>
<p>I have already mentioned associations briefly and given an example of <em>posts</em> belonging to <em>users</em>. How would you actually implement that? Well, as mentioned, you first put a <code>user_id</code> column in the <code>posts</code> table to link the two tables. Then you need to make your models aware of the link (unfortunately, it doesn’t do that automatically). But don’t worry, you only need two lines of code for that:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">class</span><span> User &lt; ActiveRecord::Base </span></span></li>
<li><span> has_many <span class="symbol">:posts</span><span> </span></span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
<li><span> </span></li>
<li class="alt"><span><span class="keyword">class</span><span> Post &lt; ActiveRecord::Base </span></span></li>
<li><span> belongs_to <span class="symbol">:user</span><span> </span></span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">class User &lt; ActiveRecord::Base
  has_many :posts
end

class Post &lt; ActiveRecord::Base
  belongs_to :user
end</pre>
<p>That’s it. These two lines make helpers available in both models that allow for navigating the models. Given a post, you could access its user via <code>post.user</code> or get all posts of a user by saying <code>user.posts</code>.</p>
<p><strong>Validations</strong> are constraints that you can define in your model to ensure that the model is only saved to the database if those constraints are met. Rails provides a lot of predefined validations that ensure that a property isn’t empty, is within a certain numeric range or matches a regular expression. But you can basically use anything you can write down in code as a validation. Say you want to ensure that your posts have titles not longer than 100 characters and that the post body is always present. You would extend your <code>Post</code> class like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">class</span><span> Post &lt; ActiveRecord::Base </span></span></li>
<li><span> belongs_to <span class="symbol">:user</span><span> </span></span></li>
<li class="alt"><span> </span></li>
<li><span> validates_presence_of <span class="symbol">:body</span><span> </span></span></li>
<li class="alt"><span> validates_length_of   <span class="symbol">:title</span><span>, </span><span class="symbol">:maximum</span><span> =&gt; 100 </span></span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">class Post &lt; ActiveRecord::Base
  belongs_to :user

  validates_presence_of :body
  validates_length_of   :title, :maximum =&gt; 100
end</pre>
<p>A call to the <code>save</code> method on a post that doesn’t comply with these restrictions will return <em>false</em>, and the post will not be saved to the database. You can then examine the post’s <strong><em>errors</em> object</strong> by accessing <code>post.errors</code> and communicate to the users what went wrong. The Rails-provided validations all come with descriptive error messages that you could retrieve with <code>post.errors.full_messages</code>, for example.</p>
<p>ActiveRecord has a lot more depth and functionality than presented here. Even complex models and their relations can be handled pretty comfortably. But presenting all this exceeds the scope of this article. The API doesn’t help much if you want to explore all these possibilities; so, to get a deeper introduction, I recommend the <a href="http://www.railsenvy.com/2007/8/8/activerecord-tutorial">Rails Envy ActiveRecord tutorial</a>.</p>
<h4>View</h4>
<p>We’re almost at the end of our overview. The last missing part is MVC’s <em>V</em>, the <em>View</em>. All the components related to this are aggregated under the <strong>ActionView</strong> module. At the core of Rails’ views are the <em>ERB templates</em>, but they are backed by a large library of helpers that can be used to generate forms, URLs, sub-templates and other little tools that can make your life easier.</p>
<p>In the controller example, I talked about how the <code>render</code> method is used to render a template. An action that doesn’t explicitly render or redirect automatically renders its corresponding template in <code>app/templates/&lt;controller&gt;/&lt;action&gt;.html.erb</code>. The file extension <code>.erb</code> stands for “Embedded Ruby,” and that’s what the templates are: HTML files that are dynamically filled with content through the use of special script tags that contain Ruby code. These special tags work very similar to the ones PHP uses. Let’s take a look at an example:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&lt;html&gt; </span></span></li>
<li><span> &lt;head&gt; </span></li>
<li class="alt"><span> &lt;title&gt;&lt;%= <span class="variable">@pagetitle</span><span> %&gt;&lt;/title&gt; </span></span></li>
<li><span> &lt;/head&gt; </span></li>
<li class="alt"><span> &lt;body&gt; </span></li>
<li><span> &lt;h1&gt;Post: &lt;%= h <span class="variable">@post</span><span>.title %&gt;&lt;/h1&gt; </span></span></li>
<li class="alt"><span> &lt;p&gt;Written on &lt;%= <span class="variable">@post</span><span>.date %&gt;&lt;/p&gt; </span></span></li>
<li><span> </span></li>
<li class="alt"><span> &lt;div id=<span class="string">&#8220;postcontent&#8221;</span><span>&gt; </span></span></li>
<li><span> &lt;%= h <span class="variable">@post</span><span>.content %&gt; </span></span></li>
<li class="alt"><span> &lt;/div&gt; </span></li>
<li><span> </span></li>
<li class="alt"><span> &lt;% <span class="keyword">if</span><span> </span><span class="variable">@post</span><span>.user.posts.count &gt; 1 %&gt; </span></span></li>
<li><span> &lt;p&gt;Other posts by &lt;%= <span class="variable">@post</span><span>.user.name %&gt;:&lt;/p&gt; </span></span></li>
<li class="alt"><span> &lt;ul&gt; </span></li>
<li><span> &lt;% <span class="variable">@post</span><span>.user.posts.</span><span class="keyword">each</span><span> </span><span class="keyword">do</span><span> |post| %&gt; </span></span></li>
<li class="alt"><span> &lt;li&gt;&lt;%= h post.title %&gt;&lt;/li&gt; </span></li>
<li><span> &lt;% <span class="keyword">end</span><span> %&gt; </span></span></li>
<li class="alt"><span> &lt;/ul&gt; </span></li>
<li><span> &lt;% <span class="keyword">end</span><span> %&gt; </span></span></li>
<li class="alt"><span> &lt;/body&gt; </span></li>
<li><span>&lt;/html&gt; </span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;&lt;%= @pagetitle %&gt;&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;h1&gt;Post: &lt;%= h @post.title %&gt;&lt;/h1&gt;
    &lt;p&gt;Written on &lt;%= @post.date %&gt;&lt;/p&gt;

    &lt;div id="postcontent"&gt;
      &lt;%= h @post.content %&gt;
    &lt;/div&gt;

    &lt;% if @post.user.posts.count &gt; 1 %&gt;
      &lt;p&gt;Other posts by &lt;%= @post.user.name %&gt;:&lt;/p&gt;
      &lt;ul&gt;
        &lt;% @post.user.posts.each do |post| %&gt;
          &lt;li&gt;&lt;%= h post.title %&gt;&lt;/li&gt;
        &lt;% end %&gt;
      &lt;/ul&gt;
    &lt;% end %&gt;
  &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Tags beginning with <code>&lt;%=</code> <strong>evaluate the expression they contain and insert them into the document</strong>. The little <code>h</code> you see sometimes is a helper function provided by ActionView that escapes characters that are not valid HTML. You should always use this if you’re displaying user-entered content to prevent cross-site scripting attacks.</p>
<p>Below the postcontent div, you can see another type of erb tag, without the equals sign. This means that its content is <strong>executed but not inserted into the document</strong>. We’re opening a conditional statement here. Everything between the <code>if</code> and the <code>end</code> will only be executed if the current post’s user has other posts. This affects both Ruby and HTML code.</p>
<p>The next tag is also pretty interesting and different from the ones used before. We’re combining the power of Ruby blocks here with ERB to iterate over a user’s posts. The <code>each</code> method executes its block for each of the members of a collection and makes the current member available to the block. I’ve called the block’s parameter <code>post</code> here, so we can refer to the current post under this name within the block. In ERB, you can put HTML within blocks just as if it were code.</p>
<p>You’ll notice that I’m using two instance variables in this template, <code>@pagetitle</code> and <code>@post</code>. They are the main means of <strong>passing data from the controller to the template</strong>. Instance variables that exist in the controller can also be accessed in the template. It’s that simple.</p>
<p>From the content of the page, you can see that we’re probably rendering the <code>show</code> action of a <code>post</code>’s resource here. The controller action to feed this template with data could look like this:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">def</span><span> show </span></span></li>
<li><span> <span class="variable">@post</span><span> = Post.find(params[</span><span class="symbol">:id</span><span>) </span></span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">def show
  @post = Post.find(params[:id)
end</pre>
<p>The <code>@pagetitle</code> could be the result of a before filter:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>before_filter </span><span class="symbol">:set_title</span><span> </span></span></li>
<li><span><span class="keyword">def</span><span> set_title </span></span></li>
<li class="alt"><span> <span class="variable">@pagetitle</span><span> = </span><span class="string">"Showing Post #{params[:id]}&#8221;</span><span> </span></span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">before_filter :set_title
def set_title
  @pagetitle = "Showing Post #{params[:id]}"
end</pre>
<p>Rails’ templates can harness the full power of the Ruby language and have access to the full stack right down to the models. This <strong>power can easily be misused</strong> to put controller logic or model operations into the templates. But you’re only hurting yourself (and your colleagues) if you do that. You should only put code in the templates that is directly related to displaying data.</p>
<p>As with ActiveRecord, this only scratches the surface of what’s possible with ActionView. Three of the most useful features not introduced here are:</p>
<ul>
<li>Layouts that can be nested so that you don’t have to repeat identical structures in your templates over and over.</li>
<li>Partials, small template snippets that can be used to render collections and inserted into other templates</li>
<li>Generation of JSON and XML to create Web services, AJAX interfaces and RSS feeds.</li>
</ul>
<p>To go deeper into the topic, check out the <a title="Layouts and Rendering in Rails" href="http://guides.rubyonrails.org/layouts_and_rendering.html">Layouts and Rendering in Rails</a> guide on Rails Guides.</p>
<h3>Learning <em>From</em> Rails</h3>
<p>Rails takes Ruby’s aim of increasing programmer productivity and happiness and applies it to Web frameworks. Its debut was a truly revelatory experience because it showed developers that that power doesn’t have to come with the clumsiness that other frameworks exhibited at the time.</p>
<p>Today, the ideas of Rails can be found in many imitators in other languages, but if you’re not tied to any one of them, Ruby on Rails is definitely worth checking out. You’ll rediscover the fun in programming, and even if you don’t stick with Rails, you definitely won’t regret the learning experience.</p>
<p>The greatest thing about Rails, however, is how it can change your perception of programming in general once you understand its design and the reasons behind it.</p>
<p>First, simply using Ruby — a language that’s quite different from ones you’ve used before, yet similar enough not to be totally alienating — opens up your mind to <strong>new ways of thinking</strong> and new ways of perceiving programming languages. You’ll suddenly begin to question things you’ve taken for granted. You’ll frown at first on the prospect of opening up and redefining core classes at runtime, but once you’ve done it and seen that your program still runs and looks nicer than before, you’ll appreciate the flexibility and also become a more responsible programmer. You’ll curse every semicolon and every empty pair of braces that other languages force upon you.</p>
<p>For many programmers, Ruby even paved the way to radically different territory, namely <strong>functional programming</strong>. Ruby is an imperative language, but its treatment of code blocks as objects equal to Strings, Numbers or any other class and its support of closures will slowly prepare your mind for languages like Lisp, Haskell and OCaml, where passing around functions is the predominant way of writing programs. You’ll have a much broader palette of solutions for the problems you’re tackling each day, and those problems will stop looking like all nails.</p>
<p>Rails very much builds upon these wisdoms and makes much use of meta-programming (class rewriting) and functional programming principles. In this way, Rails becomes more than a framework, and becomes rather a <a title="Agile DSL Development in Ruby" href="http://www.slideshare.net/adorepump/agile-dsl-development-in-ruby-presentation">domain-specific language for writing Web applications</a>. The exploitation of Ruby’s dynamic features enables a brevity in Rails’ API that does <strong>not obscure your code’s intention</strong>. After using Rails for a while, you’ll start to develop your own programs in this way.</p>
<p>Rails encourages <strong>strict separation of code</strong> between your models, controllers and views. Once you’ve written an app in this straightjacket, you’ll begin to see its tremendous benefits. You will develop a sharper eye for the correct location of code. Things you’ve put in your controllers in the past will take their place in the models, and your design will become more fluent, cleaner and more flexible, especially if you let Rails encourage you to thoroughly test your app.</p>
<p>Even if your flirtation with Rails doesn’t turn into a long-term relationship, you’ll gain invaluable experiences that will improve your style in whatever you develop in future.</p>
<h3>Further resources</h3>
<p>In the hope that your interest has now been piqued and you have an idea of what to expect, I’d like to point you to some resources that will really teach you how to write Web application in Rails.</p>
<p>Further, I’ll point you to some important sources of news, because despite its maturity, Rails is moving at blazing speeds. Don’t misunderstand me: you won’t have to study new features each week to keep up with programming in Rails, but by monitoring the right news sources, you’ll learn invaluable tips and tricks that you won’t find in the tutorials.</p>
<p>First of all, there are <strong>books</strong>. The advantage of computer books is that they’re usually comprehensive and professionally edited. The disadvantage is that most of them are outdated by the day they hit the shelves. So, the only books you should really bother reading are the ones that are just out. Fortunately, the standard Rails manual, “Agile Web Development with Rails” is just receiving the finishing touches for its third edition, which will cover the most recent changes in the framework. It’s good for beginners and doesn’t go very deep, but that’s okay. If you want to go deep, you can just read blog articles about the subjects you’re interested in after you’re done with the book.</p>
<p><img style="display: inline;" src="http://media1.smashingmagazine.com/images/introduction-to-rails/awdr.jpg" alt="" /> <img style="display: inline;" src="http://media2.smashingmagazine.com/images/introduction-to-rails/pickaxe.jpg" alt="" /> <img style="display: inline;" src="http://media2.smashingmagazine.com/images/introduction-to-rails/rubyway.jpg" alt="" /></p>
<p>To learn Ruby, you could try <em>Programming Ruby</em> (the “Pickaxe”), the guide written by the Pragmatic Programmers that first brought Ruby to the west. Its <a title="Programming Ruby: The Pragmatic Programmer's Guide" href="http://ruby-doc.org/docs/ProgrammingRuby/">first edition is even free</a> and can be found at <a href="http://ruby-doc.org/">ruby-doc.org</a> alongside the <a title="RDoc Documentation" href="http://ruby-doc.org/core/">official Ruby API</a>. The second (and upcoming third) edition is definitely worth the money, though, especially for its chapter about the inner details of Ruby’s object and method dispatch system.</p>
<p>People who don’t like the Pickaxe usually recommend Hal Fulton’s “The Ruby Way,” which teaches the language in a more task-oriented way.</p>
<p>If you’re just entering the world of Rails, you’ll also have access to what will probably be a pretty awesome library of documentation (if it isn’t already!). A few months ago, the Rails team launched an effort to provide comprehensive, up-to-date and free information about everything Rails at <a href="http://guides.rubyonrails.org/">Rails Guides</a>.</p>
<p>If you’ve taken your first steps, you should subscribe to the <a href="http://www.smashingmagazine.com/2009/03/27/ultimate-beginners-guide-to-ruby-on-rails/weblog.rubyonrails.com">official Ruby on Rails blog</a>, mainly for important announcements and its “This Week in Rails” feature, which provides a very convenient overview of the development of Rails.</p>
<p>If you want to keep in touch with the greater Rails eco-system, you should subscribe to the <a href="http://www.railsenvy.com/">Rails Envy podcast</a>. These guys will point you to nice plug-ins, tips, tricks and important blog posts every week.</p>
<p>You could, of course, just read those blogs yourself, but beware: Rails has a lot going on in it, and I prefer to have the information predigested in some form. However, if you’d like something to chew on during those boring hours at work, check out these blogs:</p>
<ul>
<li><a href="http://ryandaigle.com/">Ryan’s Scraps</a></li>
<li><a href="http://blog.hasmanythrough.com/">has_many :through</a></li>
<li><a href="http://www.robbyonrails.com/">Robby on Rails</a></li>
<li><a href="http://weblog.jamisbuck.org/">Jamis Buck’s blog</a></li>
<li><a href="http://blog.caboo.se/">caboose</a></li>
<li><a href="http://www.igvita.com/">Ilya Grigorik’s blog</a></li>
<li><a href="http://onrails.org/">On Rails</a></li>
<li><a href="http://blog.nanorails.com/">nano RAILS</a></li>
<li><a href="http://railscasts.com/">Railscasts</a></li>
</ul>
<p>Should you get stuck in your adventures, Googling often helps because most of the problems that beginners experience are similar, and for almost any hurdle you may encounter, somebody somewhere has already written a blog post about it. If this is not the case with your problem, ask for help on the <a href="http://groups.google.com/group/rubyonrails-talk">Ruby on Rails mailing list</a> or the <a href="http://www.ruby-lang.org/en/community/mailing-lists/">Ruby mailing list</a>. The people in the Ruby community are usually very friendly and helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/beginner%e2%80%99s-guide-to-ruby-on-rails-part-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started With Ruby On Rails</title>
		<link>http://www.chamli.com/getting-started-with-ruby-on-rails</link>
		<comments>http://www.chamli.com/getting-started-with-ruby-on-rails#comments</comments>
		<pubDate>Sat, 06 Jun 2009 16:24:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=140</guid>
		<description><![CDATA[If you’re a Web developer who’s been curious about Ruby on Rails but has never gotten around to trying it out because you couldn’t find a suitable overview of its advantages, then this article is for you.
We want to bring Ruby on Rails closer to those who want to take a peek first, without going [...]]]></description>
			<content:encoded><![CDATA[<p>If you’re a Web developer who’s been curious about Ruby on Rails but has never gotten around to trying it out because you couldn’t find a suitable overview of its advantages, then this article is for you.</p>
<p>We want to bring Ruby on Rails closer to those who want to take a peek first, without going through an entire tutorial. So, this article is structured a little different from most other introductions out there; hopefully it is more useful because of this.</p>
<p>I assume you’re <strong>already familiar with some other form of Web development</strong>, whether PHP, Python, Perl or Java, and relational databases like MySQL. First, we’ll introduce Rails and Ruby and the basic ideas behind both. I’ll teach you just enough Ruby so that you understand the code samples. I’ll tell you how to get Ruby on Rails running on your computer, and I’ll give you an overview of the basic functionality of Rails and demonstrate how Rails’ main parts work together.</p>
<p><strong>This tutorial consists of two articles</strong>: in the current, first article we get started with some basic concepts and essential components of Ruby on Rails. In the second part (it will be published next week) you will learn how to install the engine; you’ll also take a closer look at Rails’ inner workings and discover main advantages of Ruby on Rails. Please <strong>stay tuned</strong>.</p>
<p><strong>After reading these parts, you should have an idea of whether Rails is</strong> for you. If you get the feeling that it is, I’ll point you to some good tutorials on the Web that you can use to learn Rails. I’ll also provide a lot of further reading recommendations so you can dig as deep into the topic as you like.</p>
<p>I’m taking this approach because Rails is almost 5 years old now and has become very complex. There are a lot of “Create-your-own-blog-in-5-minutes”-type tutorials out there already, and rather than adding another one, I wanted to provide this kind of rough overview to help you decide whether to take this adventure.</p>
<p>You may want to take a look at the following related posts:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2009/02/25/ruby-on-rails-tips/">10 Useful Tips For Ruby On Rails Developers</a></li>
</ul>
<h3>The Idea Behind Rails</h3>
<p><img src="http://media2.smashingmagazine.com/images/introduction-to-rails/rails.jpg" alt="" /></p>
<p>Ruby on Rails was created by David Heinemeier Hansson as a kind of byproduct of Basecamp’s development at 37signals in 2004. Basecamp was built in Ruby because Hansson found PHP and Java not powerful or flexible enough. It was quite an obscure language back then, without the large eco-system available today. To make development easier, Hansson rolled his own Web development framework, based on simple ideas that had proven successful elsewhere. Rails is founded on pragmatism and established paradigms instead of exotic new ideas. And that’s what made it so successful.</p>
<p>Rails is based on the <strong>Model-View-Controller</strong> pattern that splits your application into three parts:</p>
<ul>
<li>The <strong>Models</strong> are your business objects describing the structure and behavior of the problem your application is trying to solve. These are usually backed by an Object-Relational-Mapping framework that persists your objects to a database in the background.</li>
<li>The <strong>Views</strong> are the templates that render data to the user and all the logic surrounding presentational aspects of your app.</li>
<li>The <strong>Controller</strong> sits at the heart of everything, processing requests from clients, initiating changes in the models and triggering the rendering of the templates.</li>
</ul>
<p class="showcase"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/introduction-to-rails/mvc.jpg" alt="" /></p>
<p>Rails is “<strong>opinionated software</strong>.” It doesn’t want to be everything for everyone. It focuses on one way of doing things and streamlines all its parts around that way. That’s not to say there’s no possibility of doing things differently if you need to, but you’ll definitely have it easier if you do things “the Rails way.” And that way happened to be exactly the right one not only for Hansson but for a lot of other developers, too, another important reason for Rails’ success.</p>
<p>Programmer productivity was the main goal during Rails’ development, not performance. This has led to a <em>lot</em> of controversy and claims that arise over and over about how Rails can’t scale. This is Rails’ own fault to a certain degree. In its early days, it had the image of a Web development framework messiah of hope and wonder that would lead us all to the promised land were applications wrote themselves. The Rails team didn’t do enough to keep expectations more realistic, and some people became disappointed.</p>
<p>While it’s true that Ruby on Rails is slower than comparable stacks on PHP or Python, it certainly does scale, as hundreds of successful deployments are proving. You’ll just need to scale sooner and put some thought into it. Remember also that Ruby’s current default implementation is terribly inefficient, but alternatives are on the way. There’s nothing inherently slow about the language, though, as blazing-fast implementations of Smalltalk (a language very similar to Ruby) prove. Ruby will only get faster. As the saying goes, you don’t have a performance problem until you have a performance problem, and all this talk should not scare you yet. You haven’t even started. <img src='http://www.chamli.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Now, before I introduce you to the framework, let’s get started with Ruby.</p>
<h3>A Gem From Japan</h3>
<p><img style="display: inline;" src="http://media1.smashingmagazine.com/images/introduction-to-rails/ruby.jpg" alt="" /></p>
<p>Ruby on Rails owes not only half its name but its entire feel and flexibility to “Ruby,” that neat little language from Japan.</p>
<p>Ruby came out in 1995 and was developed by Yukihiro Matsumoto, or “Matz” as he’s called in the community. Version 1.0 was released in 1999 and slowly gained recognition in the west from then on.</p>
<p>A key point in the spread of Ruby was the release of “Programming Ruby,” also called the “Pickaxe” (a reference to its cover illustration), by the Pragmatic Programmers. “Programming Ruby” was the first comprehensive English guide to the language and API.</p>
<p>Ruby was designed with simple principles in mind. Matz took the most successful and powerful elements from his favorite programming languages — Perl, Smalltak and Lisp — and combined them into one language with easy syntax. One goal was to make Ruby feel “natural, not simple” and to create a language “that was more powerful than Perl, and more object-oriented than Python.” This results in Ruby’s core principle: Everything is an object.</p>
<h4>Objects</h4>
<p>Let’s stop here and examine this. Really, <strong><em>everything</em> is an object in Ruby</strong>. <code>True</code> and <code>false</code> are objects, literals are objects, classes are objects. You can call a method on a numeric literal:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; 5.</span><span class="keyword">next</span><span> </span></span></li>
<li><span>=&gt; 6 </span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; 5.next
=&gt; 6</pre>
<p>Operators in Ruby are nothing but methods:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; 5 * 10 </span></span></li>
<li><span>=&gt; 50 </span></li>
<li class="alt"><span>&gt;&gt; 5.*(10)  <span class="comment"># times-operator called as a method (dot-notation)</span><span> </span></span></li>
<li><span>=&gt; 50       <span class="comment"># with a parameter (in parentheses)</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; 5 * 10
=&gt; 50
&gt;&gt; 5.*(10)  # times-operator called as a method (dot-notation)
=&gt; 50       # with a parameter (in parentheses)</pre>
<p>Ruby is extremely flexible and open. Almost everything about it can be changed or manipulated at runtime:</p>
<ul>
<li>You can add and remove methods and variables to and from objects.</li>
<li>You can add and remove methods and variables to and from classes.</li>
<li>You can truly manipulate <em>any</em> class this way, even core classes like <code>String</code> and <code>Integer</code>!</li>
</ul>
<p>Here’s an example:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; </span><span class="string">&#8220;hi&#8221;</span><span>.repeat(4) </span></span></li>
<li><span>NoMethodError: undefined method `repeat&#8217; <span class="keyword">for</span><span> </span><span class="string">&#8220;hi&#8221;</span><span>:</span><span class="builtin">String</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="keyword">class</span><span> </span><span class="builtin">String</span><span> </span><span class="comment"># Open the string class and add the method</span><span> </span></span></li>
<li><span>&gt;&gt;   <span class="keyword">def</span><span> repeat(i) </span></span></li>
<li class="alt"><span>&gt;&gt;     <span class="keyword">self</span><span> * i </span></span></li>
<li><span>&gt;&gt;   <span class="keyword">end</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="keyword">end</span><span> </span></span></li>
<li><span>=&gt; <span class="keyword">nil</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="string">&#8220;hi&#8221;</span><span>.repeat(4) </span><span class="comment"># Call it again on a fresh String literal</span><span> </span></span></li>
<li><span>=&gt; <span class="string">&#8220;hihihihi&#8221;</span><span> </span><span class="comment"># And there it is!</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; "hi".repeat(4)
NoMethodError: undefined method `repeat' for "hi":String
&gt;&gt; class String     # Open the string class and add the method
&gt;&gt;   def repeat(i)
&gt;&gt;     self * i
&gt;&gt;   end
&gt;&gt; end
=&gt; nil
&gt;&gt; "hi".repeat(4)   # Call it again on a fresh String literal
=&gt; "hihihihi"       # And there it is!</pre>
<p>Here, I defined the method <code>repeat</code> on the String core class, and it was immediately available on a string literal.</p>
<p>And he who giveth, taketh away:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; </span><span class="keyword">class</span><span> </span><span class="builtin">String</span><span> </span><span class="comment"># Open up the method again</span><span> </span></span></li>
<li><span>&gt;&gt;   undef_method <span class="symbol">:repeat</span><span> </span><span class="comment"># And remove the method</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="keyword">end</span><span> </span></span></li>
<li><span>=&gt; <span class="builtin">String</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="string">&#8220;hi&#8221;</span><span>.repeat(4) </span><span class="comment"># Try to call it</span><span> </span></span></li>
<li><span>NoMethodError: undefined method `repeat&#8217; <span class="keyword">for</span><span> </span><span class="string">&#8220;hi&#8221;</span><span>:</span><span class="builtin">String</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; class String             # Open up the method again
&gt;&gt;   undef_method :repeat   # And remove the method
&gt;&gt; end
=&gt; String
&gt;&gt; "hi".repeat(4)           # Try to call it
NoMethodError: undefined method `repeat' for "hi":String</pre>
<p>I could have also done this with predefined methods. They are no more “special” than the methods we have defined.</p>
<p>Let’s review the definition of <code>repeat</code> in the above example for some more interesting tidbits. Note that we’re not saying <code>return</code> anywhere in the body. That is because in Ruby, <strong>methods always implicitly return the value of their last expression</strong>. You could of course always jump out of a method by using <code>return</code> before reaching the last statement, but you don’t have to. The expression we’re returning is <code>self * i</code>. <code>Self</code> is equal to <code>this</code> in Java and <code>$this</code> in PHP and always refers to the current object. The times-operator on a string repeats the string as often as told by the second operand/parameter, <code>i</code> in this case.</p>
<h4>Loops</h4>
<p>You rarely see manual iterations in Ruby, like <code>for</code> or <code>while</code> loops. Instead, Collections come with their own iterators that you can pass blocks to, which are executed for every element in the collection:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>a = </span><span class="string">&#8220;Hey &#8221;</span><span> </span></span></li>
<li><span>[1, 2, 3].<span class="keyword">each</span><span> </span><span class="keyword">do</span><span> |num| </span></span></li>
<li class="alt"><span> puts a * num </span></li>
<li><span><span class="keyword">end</span><span> </span></span></li>
<li class="alt"><span> </span></li>
<li><span><span class="comment"># Outputs:</span><span> </span></span></li>
<li class="alt"><span><span class="comment"># Hey</span><span> </span></span></li>
<li><span><span class="comment"># Hey Hey</span><span> </span></span></li>
<li class="alt"><span><span class="comment"># Hey Hey Hey</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">a = "Hey "
[1, 2, 3].each do |num|
    puts a * num
end

# Outputs:
# Hey
# Hey Hey
# Hey Hey Hey</pre>
<p>What you see here is an array literal containing numbers. On that array, the <code>each</code> method is called, an iterator that takes a block and calls the block for every element in the array. The block starts with the <code>do</code>, followed by a list of its parameters enclosed in pipe symbols. Here we have one parameter called <code>num</code> that will take on the value of the array element in each iteration. Inside the block, we’re simply outputting the result of a * num. The definition of <code>*</code> on Strings is to repeat the string accordingly. We could have put the String inside the Block, but I wanted to demonstrate that blocks have access to their surrounding scope.</p>
<h4>Syntax</h4>
<p>Ruby likes to keep the syntax clean and friendly. You can see this in the above examples. Although heavily influenced by Perl, Ruby doesn’t have Perl’s excessive use of special characters. You can use semicolons to end lines, but you don’t have to (and no Ruby programmer does). You don’t need to surround method parameters with braces in unambiguous situations (although it is recommended you do so if they enhance readability), and you especially don’t need to provide empty braces around an <em>empty</em> parameter list. That’s what makes accessors look so much like native properties.</p>
<p>Blocks are framed by <code>do</code> and <code>end</code>. You should only use equivalent curly braces if your blocks don’t span several lines. The only significant use of special characters is found at <strong>variable declaration</strong>. Variables in Ruby are prefixed with special characters to indicate their scope. Variables starting with a lowercase letter are local variables. Variables starting with an uppercase letter are constants. (This means that all classes are constants, too, since classes start with uppercase letters.) Instance variables start with an <code>@</code>. Class variables that are shared among all instances of a class start with <code>@@</code>. Finally, global variables all start with a <code>$</code>.</p>
<p>You’ll often find methods ending in <code>?</code> or <code>!</code>. These are not special characters. It is merely conventional in Ruby to use question marks for methods that query an object for a Boolean condition, like <code>Array#empty?</code>, or exclamation marks for methods that are destructible:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; a = [5, 1, 9, 2, 7] </span><span class="comment"># Create an array and store it in a</span><span> </span></span></li>
<li><span>=&gt; [5, 1, 9, 2, 7] </span></li>
<li class="alt"><span>&gt;&gt; a.sort                <span class="comment"># sort merely returns a new, sorted array</span><span> </span></span></li>
<li><span>=&gt; [1, 2, 5, 7, 9] </span></li>
<li class="alt"><span>&gt;&gt; a </span></li>
<li><span>=&gt; [5, 1, 9, 2, 7]       <span class="comment"># a still is in its original order</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; a.sort!               <span class="comment"># sort! instead sorts the original array</span><span> </span></span></li>
<li><span>=&gt; [1, 2, 5, 7, 9] </span></li>
<li class="alt"><span>&gt;&gt; a </span></li>
<li><span>=&gt; [1, 2, 5, 7, 9]       <span class="comment"># a was changed</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; a = [5, 1, 9, 2, 7]   # Create an array and store it in a
=&gt; [5, 1, 9, 2, 7]
&gt;&gt; a.sort                # sort merely returns a new, sorted array
=&gt; [1, 2, 5, 7, 9]
&gt;&gt; a
=&gt; [5, 1, 9, 2, 7]       # a still is in its original order
&gt;&gt; a.sort!               # sort! instead sorts the original array
=&gt; [1, 2, 5, 7, 9]
&gt;&gt; a
=&gt; [1, 2, 5, 7, 9]       # a was changed</pre>
<h4>Conditionals</h4>
<p>Conditionals in Ruby are very similar to other programming languages, with two notable exceptions. First, it’s possible to put a conditional <em>after</em> the statement it protects to make the code more readable:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>execute_dangerous_operation() </span><span class="keyword">if</span><span> user.is_authorized? </span></span></li>
<li><span> </span></li>
<li class="alt"><span><span class="comment"># is equal to</span><span> </span></span></li>
<li><span> </span></li>
<li class="alt"><span><span class="keyword">if</span><span> user.is_authorized? </span></span></li>
<li><span> execute_dangerous_operation() </span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">execute_dangerous_operation() if user.is_authorized?

# is equal to

if user.is_authorized?
  execute_dangerous_operation()
end</pre>
<p>Secondly, Ruby has not only an <code>if</code> but an <code>unless</code>. This is a syntactic nicety for when you want to check for the <em>absence</em> of a condition in a more readable manner:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span class="keyword">unless</span><span> user.is_admin? </span></span></li>
<li><span> user.delete </span></li>
<li class="alt"><span><span class="keyword">else</span><span> </span></span></li>
<li><span> <span class="keyword">raise</span><span> </span><span class="string">&#8220;Can&#8217;t delete admins&#8221;</span><span> </span></span></li>
<li class="alt"><span><span class="keyword">end</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">unless user.is_admin?
  user.delete
else
  raise "Can't delete admins"
end</pre>
<h4>Symbols</h4>
<p>Sometimes you’ll see names starting with a <code>:</code> (colon). These are a very special feature of Ruby called symbols. Symbols can be used to index hashes or mark states in a variable like you would with an ENUM in C. They are very similar to Strings but also very different. The point about symbols is that they don’t really occupy space in memory, and the same symbol literal always resolves to the exact same symbol:</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>&gt;&gt; </span><span class="string">&#8220;a&#8221;</span><span>.object_id </span><span class="comment"># object_id returns Ruby&#8217;s internal identifier for an object</span><span> </span></span></li>
<li><span>=&gt; 3477510 </span></li>
<li class="alt"><span>&gt;&gt; <span class="string">&#8220;a&#8221;</span><span>.object_id </span></span></li>
<li><span>=&gt; 3475550        <span class="comment"># a new object on the heap</span><span> </span></span></li>
<li class="alt"><span>&gt;&gt; <span class="symbol">:a</span><span>.object_id </span></span></li>
<li><span>=&gt; 184178 </span></li>
<li class="alt"><span>&gt;&gt; <span class="symbol">:a</span><span>.object_id </span></span></li>
<li><span>=&gt; 184178         <span class="comment"># the same literal refers to the exact same Symbol object</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">&gt;&gt; "a".object_id  # object_id returns Ruby's internal identifier for an object
=&gt; 3477510
&gt;&gt; "a".object_id
=&gt; 3475550        # a new object on the heap
&gt;&gt; :a.object_id
=&gt; 184178
&gt;&gt; :a.object_id
=&gt; 184178         # the same literal refers to the exact same Symbol object</pre>
<p>You’ll find them very often as parameters to methods, where they indicate how a method should work,</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">view plain</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">copy to clipboard</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">print</a><a onclick="dp.sh.Toolbar.Command('About',this);return false;" href="http://www.smashingmagazine.com/2009/03/19/getting-started-with-ruby-on-rails/#">?</a></div>
</div>
<ol class="dp-rb">
<li class="alt"><span><span>User.find(</span><span class="symbol">:all</span><span>) </span><span class="comment">#find all users</span><span> </span></span></li>
<li><span>User.find(<span class="symbol">:first</span><span>) </span><span class="comment">#find the first user</span><span> </span></span></li>
</ol>
</div>
<pre class="ruby" style="display: none;">User.find(:all)   #find all users
User.find(:first) #find the first user</pre>
<p>or as pointers to methods and variables (see the <code>undef_method</code> example in the “Objects” paragraph above).</p>
<h4>Classes and Modules</h4>
<p>Ruby supports single inheritance only, but for added flexibility it supports a feature called <strong>Mixins</strong>. In Ruby, it’s possible to define <em>Modules</em> that contain Methods and constants and to include these modules in a class via the <code>include</code> method. This way, you can extend the functionality of a class very easily.</p>
<p>Many of Ruby’s core classes even use this mechanism.<code>Array</code> and <code>Hash</code>, for example, both include the <code>Enumerable</code> module to provide a lot of convenience methods for iterating over their contents.</p>
<p>Often, Modules pose certain requirements to classes that include them. The <code>Enumerable</code> Module, for example, requires classes to provide at least an <code>each</code> method and an implementation of <code>&lt;=&gt;</code>, too, if its sorting features are to be used.</p>
<p>Modules also serve other purposes. Most importantly, they can be used to organize code into namespaces. Because classes are constants (which means you can’t assign another class to the same name), they can be stored in modules. These modules can then be nested to form namespaces.</p>
<p>These paragraphs probably won’t enable you to write Ruby programs, but you should be able to understand the code samples in this article now. If you want to explore Ruby a little, try the great interactive tutorial at <a href="http://tryruby.hobix.com/">Try Ruby</a>, or take a peek at one of the books listed at the end of this article. If you just want to see some more code samples, check out the <a href="http://en.wikipedia.org/wiki/Ruby_%28programming_language">Wikipedia page on Ruby</a>.</p>
<p>In the second part of this tutorial we will get rolling with Ruby on Rails, install the engine, take a closer look at Rails’ inner workings and discover main advantages of Ruby on Rails. Please stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/getting-started-with-ruby-on-rails/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>53 CSS-Techniques You Couldn’t Live Without</title>
		<link>http://www.chamli.com/53-css-techniques-you-couldn%e2%80%99t-live-without</link>
		<comments>http://www.chamli.com/53-css-techniques-you-couldn%e2%80%99t-live-without#comments</comments>
		<pubDate>Sat, 06 Jun 2009 09:36:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=129</guid>
		<description><![CDATA[CSS is important. And it is being used more and more often. Cascading Style Sheets offer many advantages you don’t have in table-layouts &#8211; and first of all a strict separation between layout, or design of the page, and the information, presented on the page. Thus the design of pages can be easily changed, just [...]]]></description>
			<content:encoded><![CDATA[<p>CSS is important. And it is being used more and more often. Cascading Style Sheets offer many advantages you don’t have in table-layouts &#8211; and first of all a strict separation between layout, or design of the page, and the information, presented on the page. Thus the design of pages can be easily changed, just replacing a css-file with another one. Isn’t it great? Well, actually, it is.</p>
<p>Over the last few years web-developers have written many articles about CSS and developed many useful techniques, which can save you a lot of time &#8211; of course, if you are able to find them in time. Below you’ll find a list of techniques we , as web-architects, really couldn’t live without. They are essential and they indeed make our life easier. Let’s take a look at <strong>53 CSS-based techniques you should always have ready to hand if you develop web-sites</strong>. <em>Links checked: June/11 2008.</em></p>
<p>You might want to take a look at the article <a href="http://www.smashingmagazine.com/2008/02/21/powerful-css-techniques-for-effective-coding/">Powerful CSS-Techniques For Effective Coding</a>.</p>
<p>1. <a href="http://www.nundroo.com/navigation/">CSS Based Navigation</a></p>
<p><a href="http://www.nundroo.com/navigation/"><img style="margin-left: 4em;" src="http://media2.smashingmagazine.com/images/css/css-techniques0000.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>2. <a href="http://superfluousbanter.org/archives/2004/05/navigation-matrix-reloaded/">Navigation Matrix Reloaded</a></p>
<p><a href="http://superfluousbanter.org/archives/2004/05/navigation-matrix-reloaded/"><img style="margin-left: 4em;" src="http://media2.smashingmagazine.com/images/css/css-techniques0001.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>3. <a href="http://exploding-boy.com/images/cssmenus/menus.html">CSS Tabs</a></p>
<p><a href="http://exploding-boy.com/images/cssmenus/menus.html"><img style="margin-left: 4em;" src="http://media1.smashingmagazine.com/images/css/css-techniques0002.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>4. <a href="http://www.khmerang.com/index.php?p=118">CSS Bar Graphs</a> (<a href="http://applestooranges.com/blog/post/css-for-bar-graphs/?id=55">CSS For Bar Graphs</a>)</p>
<p><a href="http://www.khmerang.com/index.php?p=118"><img style="margin-left: 4em;" src="http://media1.smashingmagazine.com/images/css/css-techniques0003.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>5. <a href="http://icant.co.uk/sandbox/footercollapsetables/">Collapsing Tables: An Example</a></p>
<p><a href="http://icant.co.uk/sandbox/footercollapsetables/"><img style="margin-left: 4em;" src="http://media2.smashingmagazine.com/images/css/css-techniques0004.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>6. <a href="http://www.flog.co.nz/lab/ARC/ARC.htm">Adam’s Radio &amp; Checkbox Customisation Method</a></p>
<p><a href="http://www.flog.co.nz/lab/ARC/ARC.htm"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0005.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>7. <a href="http://www.mezzoblue.com/tests/revised-image-replacement/">CSS Image Replacement</a></p>
<p><a href="http://www.mezzoblue.com/tests/revised-image-replacement/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0006.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>8. CSS Shadows (<a href="http://web-graphics.com/mtarchive/001589.php">CSS Shadows Roundup</a>)</p>
<p><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0007.gif" alt="CSS-Technique" width="485" height="170" /></p>
<p>9. <a href="http://www.smileycat.com/miaow/archives/000044.html">CSS Rounded Corners Roundup</a> (<a href="http://www.html.it/articoli/nifty/index.html">Nifty Corners</a>)</p>
<p><a href="http://www.smileycat.com/miaow/archives/000044.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0008.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>10. <a href="http://www.mandarindesign.com/troops.html">Drop Cap &#8211; Capital Letters with CSS</a></p>
<p><a href="http://www.mandarindesign.com/troops.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0009.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>11. <a href="http://www.mandarindesign.com/troops.html#opacitybackgroundhard">Define Image Opacity with CSS</a></p>
<p><a href="http://www.mandarindesign.com/troops.html#opacitybackgroundhard"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0010.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>12. <a href="http://www.smileycat.com/miaow/archives/000230.html">How to Create a Block Hover Effect for a List of Links</a></p>
<p><a href="http://www.smileycat.com/miaow/archives/000230.html"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0011.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>13. <a href="http://www.sitepoint.com/test/pullquote.htm">Pullquotes with CSS</a> (<a href="http://www.456bereastreet.com/archive/200609/automatic_pullquotes_with_javascript_and_css/">Automatic Pullquotes with JavaScript and CSS</a></p>
<p><a href="http://www.sitepoint.com/test/pullquote.htm"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0012.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>14. <a href="http://www.surfare.net/%7Etoolman/temp/diagram.html">CSS Diagrams</a></p>
<p><a href="http://www.surfare.net/%7Etoolman/temp/diagram.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0013.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>15. <a href="http://couchfort.net/article/59/css-curves">CSS Curves</a></p>
<p><a href="http://couchfort.net/article/59/css-curves"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0014.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>16. <a href="http://www.themaninblue.com/experiment/footerStickAlt/">Footer Stick</a> allows for the footer of a Web page to appear either at the bottom of the browser window or the bottom of the Web page content – whichever is visually lowest.</p>
<p><a href="http://www.themaninblue.com/experiment/footerStickAlt/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0015.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>17. <a href="http://www.frankmanno.com/ideas/css-imagemap/">CSS Image Map</a></p>
<p><a href="http://www.frankmanno.com/ideas/css-imagemap/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0016.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>18. <a href="http://moneytreesystems.com/css/picpopup.html">CSS Image Pop-Up</a></p>
<p><a href="http://moneytreesystems.com/css/picpopup.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0017.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>19. CSS Image Preloader</p>
<p><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0018.gif" alt="CSS-Technique" width="485" height="170" /></p>
<p>20. <a href="http://www.ampsoft.net/webdesign-l/image-button.html">CSS Image Replacement for Buttons</a></p>
<p><a href="http://www.ampsoft.net/webdesign-l/image-button.html"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0019.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>21. <a href="http://lab.arc90.com/2006/07/link_thumbnail.php">Link Thumbnail</a></p>
<p><a href="http://lab.arc90.com/2006/07/link_thumbnail.php"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0020.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>22. <a href="http://mikecherim.com/experiments/css_map_pop.php">CSS Map Pop</a></p>
<p><a href="http://mikecherim.com/experiments/css_map_pop.php"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0021.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>23. <a href="http://mikecherim.com/gbcms_xml/news_page.php?id=12">PHP-based CSS Style Switcher</a></p>
<p><a href="http://mikecherim.com/gbcms_xml/news_page.php?id=12"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0022.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>24. <a href="http://mikecherim.com/gbcms_xml/news_page.php?id=0">CSS Unordered List Calender</a> (<a href="http://veerle.duoh.com/blog/comments/a_css_styled_calendar/">CSS Styled Calender</a>)</p>
<p><a href="http://mikecherim.com/gbcms_xml/news_page.php?id=0"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0023.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>25. <a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/">CSS-Based Forms: Techniques</a></p>
<p><a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0024.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>26. <a href="http://www.smashingmagazine.com/2006/12/29/css-based-tables-modern-solutions/">CSS-Based Tables: Techniques</a></p>
<p><a href="http://www.smashingmagazine.com/2006/12/29/css-based-tables-modern-solutions/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0025.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>27. <a href="http://css-discuss.incutio.com/?page=PrintStylesheets">Printing Web-Documents and CSS</a></p>
<p><a href="http://css-discuss.incutio.com/?page=PrintStylesheets"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0027.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>28. <a href="http://www.alistapart.com/articles/improvingprint/">Improved Links-Display for Print-Layouts with CSS</a></p>
<p><a href="http://www.alistapart.com/articles/improvingprint/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0026.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>29. <a href="http://www.ukthoughts.co.uk/journal/css-submit-buttons">CSS-Submit Buttons</a></p>
<p><a href="http://www.ukthoughts.co.uk/journal/css-submit-buttons"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0028.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>30. <a href="http://www.456bereastreet.com/lab/teaser/">CSS Teaser Box</a></p>
<p><a href="http://www.456bereastreet.com/lab/teaser/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0029.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>31. <a href="http://www.macworld.com/2005/12/secrets/januarycreate/index.php">CSS Tricks for Custom Bullets</a></p>
<p><a href="http://www.macworld.com/2005/12/secrets/januarycreate/index.php"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0030.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>32. <a href="http://www.colly.com/index.php?/weblog/comments/ticked_off_links_reloaded">Ticked Off Links Reloaded</a></p>
<p><a href="http://www.colly.com/index.php?/weblog/comments/ticked_off_links_reloaded"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0031.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>33. <a href="http://www.deltatangobravo.com/images/zoom/">CSS Zooming</a></p>
<p><a href="http://www.deltatangobravo.com/images/zoom/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0032.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>34. <a href="http://komodomedia.com/blog/index.php/2005/08/24/creating-a-star-rater-using-css/">Creating a Star Rater using CSS</a></p>
<p><a href="http://komodomedia.com/blog/index.php/2005/08/24/creating-a-star-rater-using-css/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0033.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>35. <a href="http://webdesign.maratz.com/lab/visited_links_styling/">The ways to style visited Links</a></p>
<p><a href="http://webdesign.maratz.com/lab/visited_links_styling/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0034.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>36. <a href="http://webdesign.maratz.com/lab/pdf_links_labeling/">PDF, ZIP, DOC Links Labeling</a></p>
<p><a href="http://webdesign.maratz.com/lab/pdf_links_labeling/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0035.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>37. Displaying Percentages with CSS</p>
<p><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0036.gif" alt="CSS-Technique" width="485" height="170" /></p>
<p>38. <a href="http://ghettocooler.net/2005/11/13/image-floats-without-the-text-wrap/">Image Floats without the Text Wrap</a></p>
<p><a href="http://ghettocooler.net/2005/11/13/image-floats-without-the-text-wrap/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0037.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>39. <a href="http://webdesign.maratz.com/lab/new_window_link/">Let visitors decide, whether or not will they open link in a new window</a></p>
<p><a href="http://webdesign.maratz.com/lab/new_window_link/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0038.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>40. <a href="http://www.maxdesign.com.au/presentation/external/">Simple accessible external links</a></p>
<p><a href="http://www.maxdesign.com.au/presentation/external/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0039.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>41. <a href="http://24ways.org/2005/splintered-striper">Zebra Table with JavaScript and CSS</a></p>
<p><a href="http://24ways.org/2005/splintered-striper"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0040.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>42. <a href="http://www.jakpsatweb.cz/css/css-vertical-center-solution.html">Vertical Centering with CSS</a> (<a href="http://www.456bereastreet.com/lab/centered/both/">Horizontal and Vertical Centering with CSS</a></p>
<p><a href="http://www.jakpsatweb.cz/css/css-vertical-center-solution.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0041.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>43. <a href="http://lab.arc90.com/2006/05/unobtrusive_sidenotes.php">Unobtrusive Sidenotes</a></p>
<p><a href="http://lab.arc90.com/2006/05/unobtrusive_sidenotes.php"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0042.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>44. <a href="http://lab.arc90.com/2006/07/image_caption_1.php">Image Caption with CSS</a> (<a href="http://www.boagworld.com/archives/2006/07/styled_images_with_caption.html">Styled Images with Caption</a>)</p>
<p><a href="http://lab.arc90.com/2006/07/image_caption_1.php"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0043.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>45. <a href="http://petewilliamsagency.com/css/examples/pie/">Dynamic Piechart with CSS</a></p>
<p><a href="http://petewilliamsagency.com/css/examples/pie/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0044.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>46. <a href="http://www.brandspankingnew.net/archive/2005/07/format_footnote.html">Format Footnotes with CSS</a></p>
<p><a href="http://www.brandspankingnew.net/archive/2005/07/format_footnote.html"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0045.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>47. <a href="http://www.alexandersperl.de/tutorials/css/sitemap.html">Hierarchical Sitemap with CSS</a></p>
<p><a href="http://www.alexandersperl.de/tutorials/css/sitemap.html"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0046.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>48. <a href="http://www.colly.com/index.php?/weblog/comments/snooks_resizable_underlines/">Snook’s Resizable Underlines</a></p>
<p><a href="http://www.colly.com/index.php?/weblog/comments/snooks_resizable_underlines/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0047.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>49. <a href="http://www.alistapart.com/articles/switchymclayout">Switchy McLayout: An Adaptive Layout Technique</a></p>
<p><a href="http://www.alistapart.com/articles/switchymclayout"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0048.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>50. <a href="http://www.scottjehl.com/v7/index.php/process/stylemap_visual_sitemap/">StyleMap: CSS+HTML Visual Sitemap</a></p>
<p><a href="http://www.scottjehl.com/v7/index.php/process/stylemap_visual_sitemap/"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0049.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>51. <a href="http://www.devlounge.net/articles/custom-reading-width-beta">Custom Reading Width</a></p>
<p><a href="http://www.devlounge.net/articles/custom-reading-width-beta"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0050.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>52. <a href="http://www.bioneural.net/2006/04/01/create-a-valid-css-alert-message/">CSS Alert Message</a></p>
<p><a href="http://www.bioneural.net/2006/04/01/create-a-valid-css-alert-message/"><img style="margin-left: 4em; display: inline;" src="http://media1.smashingmagazine.com/images/css/css-techniques0051.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
<p>53. <a href="http://24ways.org/2006/css-production-notes">CSS Production Notes</a></p>
<p><a href="http://24ways.org/2006/css-production-notes"><img style="margin-left: 4em; display: inline;" src="http://media2.smashingmagazine.com/images/css/css-techniques0052.gif" alt="CSS-Technique" width="485" height="170" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/53-css-techniques-you-couldn%e2%80%99t-live-without/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>None Profit Website Design</title>
		<link>http://www.chamli.com/none-profit-website-design</link>
		<comments>http://www.chamli.com/none-profit-website-design#comments</comments>
		<pubDate>Sat, 06 Jun 2009 08:47:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.chamli.com/?p=99</guid>
		<description><![CDATA[Non profit websites share many of the same best practices as any website. They need to be user friendly, easily navigable, and use appropriate fonts, colors, and other design elements. But often a non profit website needs to offer more than your typical corporate site.
A non profit’s website needs to make it easy to find [...]]]></description>
			<content:encoded><![CDATA[<p>Non profit websites share many of the same best practices as any website. They need to be user friendly, easily navigable, and use appropriate fonts, colors, and other design elements. But often a non profit website needs to offer more than your typical corporate site.</p>
<p>A non profit’s website needs to make it easy to find out more about their cause, to donate money, and to become more involved. It needs to make it easy for media contacts to find the information they need and the contact information of key personnel. And it needs to do all this in a way that’s inviting to the organization’s targeted donors and/or volunteers.</p>
<p>Below are a list of <strong>best practices for designing non profit websites</strong> followed by some examples of non profit websites that are getting things right.</p>
<h3>1. Make Your Site Donor-Friendly</h3>
<p>Donations are a necessary thing for every non profit organization out there. Your website can be a great place to solicit donations, especially from new donors. It can also make it easier for recurring donors to make additional donations. In either case, you want it to be <strong>a simple and straight-forward process for people to give you money</strong>.</p>
<p class="showcase"><a href="http://ww5.komen.org/"><img src="http://media2.smashingmagazine.com/images/images-nonprofit/donate.png" alt="Screenshot" width="215" height="60" /></a></p>
<p>There are a few things to keep in mind when creating a donor-friendly site. First, make sure your donation page is prominently linked from your home page. Whether you do this with a special banner or button or simply make it prominent in your regular navigation, donors have to see where to donate before they can do so.</p>
<p>Second, <strong>make the actual donation process as painless as possible</strong>. Don’t require visitors to set up an account to donate. The donation process shouldn’t be any more complicated than any other online transaction. Other than information required to process their credit card or e-check, don’t require any other information. And use a single-page donation form if possible, with just one confirmation page. There’s less chance that there will be browser or connectivity issues if there’s only a single page to deal with.</p>
<h3>2. Make Your Site Media-Friendly</h3>
<p>Getting media attention can have a huge impact on a non profit organization. Whether the media attention brings in more donations directly or simply raises the profile of the organization, getting attention from journalists, bloggers, and anyone else with an audience is important.</p>
<p class="showcase"><a href="http://www.greenpeace.org/usa/"><img src="http://media2.smashingmagazine.com/images/images-nonprofit/media.png" alt="Screenshot" width="260" height="110" /></a></p>
<p><strong>Make it easy for journalists to find information about your organization</strong>. Include profiles of your board of directors, founder(s), and other key personnel. Make sure you include contact information (email and phone) for each of these key people. Have a downloadable media kit that includes everything your print media kit does.</p>
<p>Offer downloadable images from your site so journalists and bloggers don’t have to contact your and wait for a response. And include press-ready quotes, both from members and directors as well as outsiders. Make it clear that journalists and other organizations may use these items in news coverage without contacting the organization for prior permission.</p>
<h3>3. Make Your Site Volunteer-Friendly</h3>
<p>Make it easy for visitors to your site to find information on how they can get involved. There are plenty of people out there who might not have the money to make a donation but are still passionate about what your organization is doing.</p>
<p>Whether you provide detailed information about volunteering directly, steps people can take on their own, or just contact information for your volunteer organizer, make sure you don’t overlook this crucial bit of information.</p>
<p class="showcase"><a href="http://www.savethechildren.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/volunteer.png" alt="Screenshot" width="250" height="95" /></a></p>
<p><strong>Providing multiple means of contact makes it easier for volunteers to get in touch</strong>, so include an email address, phone number, and a web contact form if you can.</p>
<h3>4. Make Sure Your Organization’s Purpose is Immediately Apparent</h3>
<p>How many times have you gone to a website and not had a clue what the site was about? This happens all too often. <strong>Designers and clients often take for granted what visitors to their site will already know</strong> about their organization.</p>
<p>But considering how much information is pushed in bite-size pieces on sites like Twitter and Facebook, there’s no telling how much or how little visitors will know. With some organizations it’s easy enough to figure out what the organization is about just by its name, but for others it’s not so easy.</p>
<p class="showcase"><a href="http://www.kiva.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/purpose.png" alt="Screenshot" width="480" height="135" /></a></p>
<p>Putting an abbreviated mission statement right on the home page is one way to solve this. Another way is to put a prominent link somewhere on the home page that takes visitors to an about page that offers concise, plain-language (not “marketing-ese”) information about what the organization does.</p>
<h3>5. Make Sure Your Content Takes Center Stage</h3>
<p>Design on any site should be transparent, and especially so on non profit sites. That’s not to say your site can’t have an interesting design, just that <strong>the design should revolve around your content and your mission</strong>, not the other way around. Take into account the types of information you’ll be providing on the site and the formats that will be used.</p>
<p class="showcase"><a href="http://www.nature.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/content.png" alt="Screenshot" width="480" height="240" /></a></p>
<p>Consider up front how much multi-media elements will be used, and whether they’ll be used on every page or just in special gallery sections. If you plan to post videos and photos on multiple pages, you’ll need to make sure your column widths other elements are complimentary to the kinds of media you want to use.</p>
<p>Make sure your columns are wide enough to accommodate YouTube videos, for example. If they’re not, any time you embed a video (or similar element), your site design will look haphazard (and some of your site content might end up covered up).</p>
<h3>6. Make Sure Your Website is Consistent with Your Other Promotional Materials</h3>
<p>Your logo should use the same logo and colors as your other promotional materials. Maintaining a consistent brand throughout your organization greatly increases your chances of being recognized in passing. Your website doesn’t have to (and probably shouldn’t) match your print promotional materials exactly, but <strong>echoing the look and feel of those materials increases brand identity</strong>.</p>
<p class="showcase"><a href="http://www.joinred.com/Home.aspx"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/color.png" alt="Screenshot" width="310" height="120" /></a></p>
<p>Make sure the content is consistent, too. Proofread and copyedit your website content just as you do your print materials. While it’s easier to change content on a website, it still gives a negative impression if your site is riddled with errors and inaccuracies.</p>
<h3>7. Know Your Site’s Purpose Up Front</h3>
<p>The leaders of your organization (or whoever is in charge of the organization’s website) should <strong>make a list of what the goals for the site are before starting the design process</strong>. Is the site primarily to allow existing members to stay updated? Is it to solicit donations? Is it to get new volunteers or members? Is it to raise awareness in general?</p>
<p class="showcase"><a href="http://www.witness.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/goals.png" alt="Screenshot" width="245" height="125" /></a></p>
<p>Whatever your purpose is, knowing it and communicating it to your designer going into the design process will save headaches and delays down the road. Make sure everyone is on board with the same vision, too, so you don’t have to make unnecessary changes down the road, which saves both time and money.</p>
<h3>8. Include a News Section or Blog</h3>
<p><strong>Including a blog or news section has a couple of big advantages</strong> for non profit sites. First, it gives people a reason to come back to your site. If you offer news about your organization and your cause, people who are interested in either will come back on a regular basis (or subscribe via RSS). This keeps your site visible and makes it more likely they’ll become more involved in the future (or stay involved if they are already).</p>
<p class="showcase"><a href="http://www.amnesty.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/news.png" alt="Screenshot" width="395" height="90" /></a></p>
<p>Second, blogs and news sites are often quoted by other blogs and news sites. This increases the exposure for your site and will likely bring you more traffic.</p>
<p>Third, constantly-updated content increases your search engine visibility. This makes it easier for people actively looking for information related to your organization to find your site.</p>
<h3>20 Examples Of Great Non Profit Sites</h3>
<p><a href="http://www.greenpeace.org/usa/">Greenpeace USA</a><br />
The Greenpeace website does a lot of things right. Links for donating or becoming a volunteer are featured prominently in their side navigation. Their media center page is also displayed prominently. The site features integrated mutli-media content in the form of both slideshows and videos, as well as both blogs and a news section.</p>
<p class="showcase"><a href="http://www.greenpeace.org/usa/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/greenpeaceusa.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.kiva.org/">Kiva</a><br />
The Kiva website has a very simple and straightforward design. Right at the top of the page they explain exactly what Kiva does, and they make it very easy for visitors to lend money. They also have a featured entrepreneur on their home page, further encouraging others to join. They also feature an “About” link prominently in the header, which then links to tons of additional information, including a press center.</p>
<p class="showcase"><a href="http://www.kiva.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/kiva.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.nyccah.org/">New York City Coalition Against Hunger</a><br />
The New York City Coalition Against Hunger offers up an excellent website. Links to volunteer and donate are featured right on the home page. In the top navigation they include prominent links to both their “Media” section and an “About” section. Recent updates from the NYCCAH Hunger Blog are also included right on the home page.</p>
<p class="showcase"><a href="http://www.nyccah.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/nyccoalitionagainsthunger.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.aspca.org/">ASPCA</a><br />
The ASPCA website makes it immediately apparent through images and small text areas on their home page what the organization is all about. Donation links are featured both in the main content area of the home page and in the top navigation. Links to the “Pressroom” and “About” sections are also included in the top nav. Links to additional resources are also featured prominently.</p>
<p class="showcase"><a href="http://www.aspca.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/aspca.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.one.org/us/">One</a><br />
This is one of my favorite non profit sites. A multi-media slideshow is featured prominently on the home page, showcasing featured content. Links for more information, the issues the organization is interested in, and links to join or take action are all featured prominently in the top navigation and elsewhere on the home page. The site also includes a blog (featured on the home page).</p>
<p class="showcase"><a href="http://www.one.org/us/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/One.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.michaeljfox.org/">The Michael J. Fox Foundation for Parkinson’s Research</a><br />
The Michael J. Fox Foundation website offers a great home page that includes tons of great information without looking cluttered. Links for living with Parkinson’s, about the foundation, research programs, and how to help are included prominently in the middle of the page. A donation link is also included in the top navigation. And news both about Parkinson’s and the Foundation are also featured prominently on the home page.</p>
<p class="showcase"><a href="http://www.michaeljfox.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/michaeljfoxfoundation.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.savethechildren.org/">Save the Children</a><br />
The Save the Children website is an excellent example of getting a lot of information into a small space while keeping everything de-cluttered and user-friendly. Links to donate or sponsor a child are included in the top navigation as well as below the slideshow on the home page. There are also links to more information and for other ways to become involved featured prominently. Information on the site is presented in a concise and user-friendly manner, providing plenty of information in easy-to-read chunks.</p>
<p class="showcase"><a href="http://www.savethechildren.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/savethechildren.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.oxfamamerica.org/">Oxfam America</a><br />
The Oxfam America website uses color to make their donation button stand out on the home page. While the majority of the site is designed in shades of green and tan but the donation link is orange. It stands out without being garish. News is prominently featured on the home page, along with plenty of information about what Oxfam does.</p>
<p class="showcase"><a href="http://www.oxfamamerica.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/oxfamamerica.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.nrdc.org/">Natural Resources Defense Council</a><br />
The NRDC website also makes use of color to distinguish between different sections of their site. The “Donate” and “Take Action” links are denoted in orange. “Blogs” are in green and everything else, including their “About” and “Policy” page links are in blue. Multi-media content is featured prominently on the home page, as is recent news.</p>
<p class="showcase"><a href="http://www.nrdc.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/nrdc.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.amnesty.org/">Amnesty International</a><br />
The Amnesty International site makes great use of color, including a bright yellow header and accents mixed with shades of gray and black. A slideshow on the home page shows current news and research. Links to join, donate, or take other action are featured prominently in the sidebar and a link to media information is included in the header. The home page also includes plenty of current news and resources below the main content up top.</p>
<p class="showcase"><a href="http://www.amnesty.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/amnestyinternational.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.nature.org/">The Nature Conservancy</a><br />
The slideshow on the home page of The Nature Conservancy’s site is one of the best I’ve seen, offering up information about various programs and initiatives they support. The site also includes other multi-media content from the home page. Links to donate, become a member, volunteer and other ways to help the organization are highlighted in yellow in the sidebar, making them easy to find while still fitting with the understated overall site design.</p>
<p class="showcase"><a href="http://www.nature.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/thenatureconservancy.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.witness.org/">Witness</a><br />
Witness takes a slightly different approach to their site, as monetary donations are not their primary focus. They use their site to effectively solicit video contributions showing human rights violations from countries around the world. Links to news, their media archive, and ways to get involved (including training) are included prominently in the top navigation.</p>
<p class="showcase"><a href="http://www.witness.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/witness.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.joinred.com/Home.aspx">Product (Red)</a><br />
The Product (Red) site features products that support the organization prominently in a slideshow on their home page. They also include links on other ways to get involved, their blog, and learning resources in the sidebar. The overall site design is simple, which is primarily achieved by the limited color palette (red, gray, and white).</p>
<p class="showcase"><a href="http://www.joinred.com/Home.aspx"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/productred.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://ww5.komen.org/">Susan G. Komen for the Cure</a><br />
This site makes great use of space in their header for highlighting important links, including ones to pages for women recently diagnosed with breast cancer, how to make a difference, and a page to share your own breast cancer story. The donation link is featured in the header, making use of a bright pink button where the rest of the header is gray. This is another site that features a slideshow prominently on the home page.</p>
<p class="showcase"><a href="http://ww5.komen.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/susangkomen.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.takethewalk.net/">Take The Walk</a><br />
The Take The Walk site makes great use of bold graphics and a slideshow on the home page to immediately capture visitor attention. A graphic showcasing how many miles have already been walked and how many left until they reach their goal is the main highlight of the home page. Below the graphic are the different ways people can contribute and the different causes for which they’re raising money.</p>
<p class="showcase"><a href="http://www.takethewalk.net/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/takethewalk.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.change.org/">Change.org</a><br />
Change.org is a different kind of non profit site. Their aim is to raise awareness and get individuals to take action on a variety of different causes. Because of this, their “Causes” section is the most prominent feature on their site. Causes are featured in the main content of the home page as well as in the top navigation. Other prominent features are tools to help individuals get started with their own causes.</p>
<p class="showcase"><a href="http://www.change.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/Change.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://charitywater.org/">charity: water</a><br />
The charity: water site is a great example of how simple but bold design can make a huge impact. The donate button is red, while the rest of the site employs black and dark gray navigation. Three images linked to different resources on the site make up the bulk of the home page, creating a huge impact without being complicated or fussy. Links for the media, getting involved, and other resources are easily found in the top nav.</p>
<p class="showcase"><a href="http://charitywater.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/charity-water.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.bloggerbakeoff.com/">The Breadline Africa Worldwide Blogger Bake Off</a><br />
The Breadline Africa Worldwide Blogger Bake Off site is one of the more Web 2.0-ish non profit sites I’ve seen. It’s easy to find information about the project right on the home page, including brief explanations of every aspect of the event. Links to join the bake off, donate, and to other resources are also featured prominently, as is a counter to show how much money has been raised so far.</p>
<p class="showcase"><a href="http://www.bloggerbakeoff.org/"><img style="display: inline;" src="http://media2.smashingmagazine.com/images/images-nonprofit/bloggerbakeoff.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.blogactionday.org/">Blog Action Day</a><br />
The Blog Action Day site changes each year based on the cause being blogged about (as well as changing for updates before and after the actual event). In its current incarnation, it’s providing a recap of 2008’s Blog Action Day focusing on poverty. Statistics are prominently featured on the home page (including a chart showcasing the percentage of all blog posts that day focusing on the cause), as is a link to more information about what Blog Action Day actually is. The home page also includes a place to sign up for updates on the next event, press information, and information on how to donate.</p>
<p class="showcase"><a href="http://www.blogactionday.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/blogactionday.png" alt="Screenshot" width="480" height="300" /></a></p>
<p><a href="http://www.ducks.org/">Ducks Unlimited</a><br />
The Ducks Unlimited site focuses on providing useful and relevant content more than anything else. The sidebar is filled with links on how to get involved, their photo gallery, newsletter, FAQs, and about information. A “Join” button is featured prominently in the header but doesn’t detract from the overall design of the site. The top navigation is filled with more links to resources provided by the organization.</p>
<p class="showcase"><a href="http://www.ducks.org/"><img style="display: inline;" src="http://media1.smashingmagazine.com/images/images-nonprofit/ducksunlimited.png" alt="Screenshot" width="480" height="300" /></a></p>
<h3>Further Resources</h3>
<p>Here are additional links that might be of use when designing your portfolio site.</p>
<ul>
<li><a href="http://www.networkforgood.org/npo/technology/answer7.aspx">How Do I Create a Web Site for My Organization?</a><br />
A good overview of website design and development for non profits.</li>
<li><a href="http://blog.jelecos.com/post/2009/04/09/%28Some%29-Best-Practices-for-Nonprofit-Web-Site-Design.aspx">(Some) Best Practices for Nonprofit Web Site Design</a><br />
Another basic rundown of best practices in non profit web design.</li>
<li><a href="http://terrymorris.net/bestpractices/">Web Design Best Practices Checklist</a><br />
A very thorough list of best practices in general website design.</li>
<li><a href="http://www.masternewmedia.org/news/2006/03/25/web_design_and_development_top.htm">Web Design and Development: Top 20 Best Practices</a><br />
Another thorough list of best practices.</li>
<li><a href="http://www.smashingmagazine.com/2009/03/31/backgrounds-in-web-design-examples-and-best-practices-2/">Backgrounds In Web Design: Examples And Best Practices</a><br />
A rundown of best practices in designing website backgrounds.</li>
<li><a href="http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/">Pagination Gallery: Examples and Good Practices</a><br />
A rundown on how to organize the pages of your site.</li>
</ul>
<h4>About the author</h4>
<p><em>Cameron Chapman is a professional Web and graphic designer with over 6 years of experience. She also writes for a number of blogs, including her own, <a href="http://cameronchapman.com/">Cameron Chapman On Writing</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chamli.com/none-profit-website-design/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
