<?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>TuTsRUS - All Adobe Tutorials - Photoshop &#124; Illustrator &#124; Encore &#124; Premeire &#124; After Effects &#187; Adobe Illustrator Tutorials</title>
	<atom:link href="http://www.tutsrus.com/category/adobe-illustrator-tutorials/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tutsrus.com</link>
	<description>How do you do this with Adobe products?  Good question we found the answer!</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:37:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Freebie: St. Valentine&#8217;s Day Icon Set (10 PNG/PSD Icons)</title>
		<link>http://www.tutsrus.com/freebie-st-valentines-day-icon-set-10-pngpsd-icons.html</link>
		<comments>http://www.tutsrus.com/freebie-st-valentines-day-icon-set-10-pngpsd-icons.html#comments</comments>
		<pubDate>Mon, 06 Feb 2012 19:23:20 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Freebie]]></category>
		<category><![CDATA[Icon]]></category>
		<category><![CDATA[Icons]]></category>
		<category><![CDATA[PNG/PSD]]></category>
		<category><![CDATA[Valentine&#8217s]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/freebie-st-valentines-day-icon-set-10-pngpsd-icons.html</guid>
		<description><![CDATA[&#160;&#160; Every now and then, we release useful freebies for all of our highly valued readers. Today, it is our pleasure to present to you Cuberto&#8216;s fantastic St. Valentine&#8217;s icon set &#8202;&#8212;&#8202; exclusively designed for Smashing Magazine and its loyal readers. The icons presented are available in transparent PNGs as well as Photoshop PSDs (128&#215;128 [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>Every now and then, we release useful freebies for all of our highly valued readers. Today, it is our pleasure to present to you <a rel="nofollow" href="http://www.tutsrus.com/goto/Cuberto/764/4">Cuberto</a>&#8216;s fantastic St. Valentine&#8217;s icon set &#8202;&#8212;&#8202; exclusively designed for Smashing Magazine and its loyal readers. The icons presented are available in transparent PNGs as well as Photoshop PSDs (128&#215;128 px) and are perfect for any projects you have coming up for St. Valentine&#8217;s Day. Enjoy!</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/5"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/02/preview-screenshot.jpg" width="500" height="450" alt="short preview" /></a></p>
<h4>Download the Set for free!</h4>
<p>This icon set is completely free to use for commercial or personal applications without any restrictions. Please link to this article if you want to spread the word.</p>
<ul>
<li><a rel="nofollow" title="St. Valentine's Day Icon Set" href="http://www.tutsrus.com/goto/large_preview/764/6">large preview</a></li>
<li><a rel="nofollow" title="Download ZIP package" href="http://www.tutsrus.com/goto/download_the_zip_package/764/7">download the .zip-package</a> (.zip, 2 Mb)</li>
</ul>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/8"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/02/sketches.png" width="500" height="1000" /></a><br /><em>Initial sketches of Cuberto&#8217;s St. Valentine&#8217;s icon set.</em></p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/764/9"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/02/free_iconset.png" width="500" height="1000" /></a><br /><em>Quick preview of the icons in the set.</em></p>
<h4>Behind the Design</h4>
<p>As always, here are some insights from the designers:</p>
<blockquote><p>&#8220;Our goal was not only to create nice icons but also a functional set that can be used in navigation elements as well as gifts throughout social networks on the upcoming sweet Valentine&#8217;s day. Please link to this article if you want to spread the word.&#8221;<br />
&#8202;&#8212;&#8202; Peace and Love</p>
</blockquote>
<p>Thanks Cuberto, we sincerely appreciate your time and your intentions!</p>
<p><em>(il)</em></p>
<hr />
<p><small>© Smashing Editorial Team for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/764/10">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/764/11">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/freebie-st-valentines-day-icon-set-10-pngpsd-icons.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Use Custom Post Types To Organize Online Marketing Campaigns</title>
		<link>http://www.tutsrus.com/how-to-use-custom-post-types-to-organize-online-marketing-campaigns.html</link>
		<comments>http://www.tutsrus.com/how-to-use-custom-post-types-to-organize-online-marketing-campaigns.html#comments</comments>
		<pubDate>Sat, 04 Feb 2012 16:23:39 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Campaigns]]></category>
		<category><![CDATA[Custom]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Organize]]></category>
		<category><![CDATA[Post]]></category>
		<category><![CDATA[Types]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/how-to-use-custom-post-types-to-organize-online-marketing-campaigns.html</guid>
		<description><![CDATA[&#160;&#160; Custom post types add a level of flexibility to WordPress that makes this open-source Web development platform more useful on many levels. Whenever I have been faced with a Web-based task, especially one that involves organizing information, the first thing I do is examine WordPress to determine if it can handle the job. It [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>Custom post types add a level of flexibility to WordPress that makes this open-source Web development platform more useful on many levels. Whenever I have been faced with a Web-based task, especially one that involves organizing information, the first thing I do is examine WordPress to determine if it can handle the job. It usually can.</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/making-dollars-500.jpg" alt="Making Dollars" title="making-dollars" width="500" /><br /><em><a rel="nofollow" href="http://www.tutsrus.com/goto/Image_Source/763/4">Image Source</a></em></p>
<p>As an Internet marketer and analyst, I need to be able to organize online marketing campaigns in a way that is trackable in Google Analytics. This is the perfect task for WordPress custom post types.</p>
<p>In this article, we’ll explain how to create a WordPress plugin that enables you to organize Internet marketing campaigns using trackable URLs, shortened versions of those URLs, and trackable QR codes that you can also use for offline marketing activities.</p>
<p>We’ll show you how to create this plugin in a way that maximizes ease of use and functionality. If you have other methods that you have found useful, please share them in the comments. Also, let’s remember that we are standing on the shoulders of WordPress developers who have laid the foundation for easier coding.</p>
<p>Here are the criteria for our custom post type plugin:</p>
<ul>
<li>It must provide a form in which users can specify a landing page to be tracked, the anchor text or content, the term (if this link is a PPC ad), and any additional information about this link.</li>
<li>It must provide three custom taxonomy types, so that users can select the URL variables for source, medium and campaign name. This is a taxonomy type because they will be reusable across campaigns and posts.</li>
<li>It must be organizable in the admin area and be displayed in the user interface.</li>
<li>The output must include a Google Analytics campaign-trackable URL, the information about the URL in human-readable format, a shortened version of the URL using a URL shortener, and a QR code of the shortened URL.</li>
</ul>
<h3>The File Structure</h3>
<p>This plugin will use three files. To set up the structure, create a plugin folder named <code>campaign-tracker</code>. Inside the <code>campaign-tracker</code> folder, create the following three PHP files:</p>
<ul>
<li><code>campaign-tracker.php</code></li>
<li><code>ga-functions.php</code></li>
<li><code>campaign-template.php</code></li>
</ul>
<p>After you have created the files, we are ready to start adding the code.</p>
<h3>The Plugin File</h3>
<p>The main plugin file will be <code>campaign-tracker.php</code>. The content of this file will begin the standard way, by providing WordPress with the information that it needs to recognize it is as plugin. We then dive into setting up the <code>CampaignTracker10</code> class and functions. We will set up our campaign custom post type and register the taxonomies that we will need. We will also initiate our admin interface.</p>
<pre class="brush: php">
   &lt;?php
   /*
   Plugin Name: Campaign Tracking 1.0
   Plugin URI: http://www.convergeconsulting.org
   Description: Google Analytics Campaign Tracking system for WordPress 3.0 and above.
   Author: Joshua Dodson
   Version: 1.0
   Author URI: http://www.convergeconsulting.org
   */

   // Include the ga-functions.php helper functions
   include_once('ga-functions.php');

   if(!class_exists('CampaignTracker10'))
   {

      class CampaignTracker10 {

         var $meta_fields = array("gaca10-gaurl","gaca10-gaterm","gaca10-gacontent","gaca10-gadescription");

         // This function will create the custom post type. Thanks to Konstantin Kovshenin's example for additional examples of how to construct custom post types (http://kovshenin.com/2010/03/custom-post-types-in-wordpress-3-0-2089/), which inspired much of this.
         function __construct(){
            // Register custom post types
            register_post_type('campaign', array(
            'label' =&gt; _x('Campaigns','campaigns label'), // We're labeling the custom posts as Campaigns and also accounting for <a rel="nofollow" href="http://www.tutsrus.com/goto/gettext/763/5" title="Disambiguation by context">gettext</a> appropriately
            'singular_label' =&gt; _x('Campaign','campaign singular label'), // Each post will be called a Campaign
            'public' =&gt; true, // These will be public
            'show_ui' =&gt; true, // Show the UI in admin panel
            '_builtin' =&gt; false, // This is a custom post type, not a built in post type
            '_edit_link' =&gt; 'post.php?post=%d',
            'capability_type' =&gt; 'post',
            'hierarchical' =&gt; false,
            'rewrite' =&gt; array("slug" =&gt; "campaign"), // This is for the permalinks
            'query_var' =&gt; "campaign", // This goes to the WP_Query schema
            'supports' =&gt; array('title'/* We only need the default title field, but we could use others such as 'author', 'excerpt', 'editor' ,'custom-fields'*/)
            ));

            add_filter("manage_edit-campaign_columns", array(&amp;$this, "edit_columns"));
            add_action("manage_posts_custom_column", array(&amp;$this, "custom_columns"));

            // Register custom taxonomies gasource (for the Campaign Source), gamedium (for the Campaign Medium), and ganame (for Campaign Name)
            // Campaign Source
            register_taxonomy("gasource", array("campaign"), array("hierarchical" =&gt; true, "label" =&gt; _x( 'Campaign Sources', 'campaign sources taxonomy label' ), "singular_label" =&gt; "Campaign Source", "rewrite" =&gt; true));
            // Campaign Medium
            register_taxonomy("gamedium", array("campaign"), array("hierarchical" =&gt; true, "label" =&gt; _x( 'Campaign Mediums', 'campaign mediums taxonomy label' ), "singular_label" =&gt; "Campaign Medium", "rewrite" =&gt; true));
            // Campaign Name
            register_taxonomy("ganame", array("campaign"), array("hierarchical" =&gt; true, "label" =&gt; _x( 'Campaign Names', 'campaign names taxonomy label' ), "singular_label" =&gt; "Campaign Name", "rewrite" =&gt; true));

            add_action("admin_init", array(&amp;$this, "admin_init"));
            add_action("template_redirect", array(&amp;$this, 'template_redirect'));

            add_action("wp_insert_post", array(&amp;$this, "wp_insert_post"), 10, 2);

         }
</pre>
<p>Let’s give the columns on the admin screen some headings:</p>
<pre class="brush: php">
   function edit_columns($columns)
   {
      $columns = array(
      'cb' =&gt; '&lt;input type="checkbox" /&gt;',
      'title' =&gt; _x('Campaign Title','campaign title label for edit columns'),
      'gaca10_ganame' =&gt; _x('Campaign Name','campaign name label for edit columns'),
      'gaca10_gasources' =&gt; _x('Campaign Source','campaign source label for edit columns'),
      'gaca10_gasmedium' =&gt; _x('Campaign Medium','campaign medium label for edit columns'),
      );
      return $columns;
   }
</pre>
<p>Let’s specify which columns we would like to show up on the admin screen for this custom post type. We’ll have columns for campaign source, medium and name, in addition to the post’s title.</p>
<pre class="brush: php">
   function custom_columns($column)
   {
      global $post;
      switch ($column)
      {
         // The campaign source
         case "gaca10_gasources":
         $gasources = get_the_terms(0, "gasource");
         if ( $gasources &amp;&amp; ! is_wp_error( $gasources ) ) :
         $gasources_html = array();
         foreach ($gasources as $gasource)
         array_push($gasources_html, '&lt;a href="' . get_term_link($gasource-&gt;slug, "gasource") . '"&gt;' . $gasource-&gt;name . '&lt;/a&gt;');

         echo implode($gasources_html, ", ");
         endif;
         break;

         // The campaign medium
         case "gaca10_gasmedium":
         $gamediums = get_the_terms(0, "gamedium");
         if ( $gamediums &amp;&amp; ! is_wp_error( $gamediums ) ) :
         $gamediums_html = array();
         foreach ($gamediums as $gamedium)
         array_push($gamediums_html, '&lt;a href="' . get_term_link($gamedium-&gt;slug, "gamedium") . '"&gt;' . $gamedium-&gt;name . '&lt;/a&gt;');

         echo implode($gamediums_html, ", ");
         endif;
         break;

         // The campaign name
         case "gaca10_ganame":
         $ganames = get_the_terms(0, "ganame");
         if ( $ganames &amp;&amp; ! is_wp_error( $ganames ) ) :
         $ganames_html = array();
         foreach ($ganames as $ganame)
         array_push($ganames_html, '&lt;a href="' . get_term_link($ganame-&gt;slug, "ganame") . '"&gt;' . $ganame-&gt;name . '&lt;/a&gt;');

         echo implode($ganames_html, ", ");
         endif;
         break;
      }
   }
</pre>
<p>Once our columns are set up appropriately, we should see the following columns (note that this example is with one campaign already added):</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/6"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/campaigns-in-columns-500.jpg" alt="Campaigns in columns" width="500" height="213" /></a></p>
<p>The next section enables us to specify which template we would like to use to display this custom post type. We will be using the <code>campaign-template.php</code> template:</p>
<pre class="brush: php">
   function template_redirect()
   {
      global $wp;

      // If the post type is set and is campaign…
      if (isset($wp-&gt;query_vars["post_type"])) {
         if ($wp-&gt;query_vars["post_type"] == "campaign")
         {
            // Then use the campaign-template.php file from this plugin directory
            include WP_PLUGIN_DIR.'/campaign-tracker/campaign-template.php';
            die();
         }
      }
   }
</pre>
<p>If a post is inserted or updated, then loop through the array and update or add the post’s meta data.</p>
<pre class="brush: php">
   function wp_insert_post($post_id, $post = null)
   {
      if ($post-&gt;post_type == "campaign")
      {
         foreach ($this-&gt;meta_fields as $key)
         {
            $value = $_POST[$key];
            if (empty($value))
            {
               delete_post_meta($post_id, $key);
               continue;
            }

            if (!is_array($value))
            {
               if (!update_post_meta($post_id, $key, $value))
               {
                  add_post_meta($post_id, $key, $value);
               }
            }
            else
            {
               delete_post_meta($post_id, $key);

               foreach ($value as $entry){
                  add_post_meta($post_id, $key, $entry);
               }
            }
         }
      }
   }
</pre>
<p>With the following function, we can add custom meta boxes for the admin screen where we edit the campaign:</p>
<pre class="brush: php">
   function admin_init()
   {
      // Add custom meta boxes for the edit campaign screen
      add_meta_box("gaca10-meta", "Campaign Information", array(&amp;$this, "meta_options"), "campaign", "normal", "core");
   }
</pre>
<p>The following function is for the admin post meta contents. This lets us create the form in which we specify some of the variables for our trackable URL (except for the taxonomies). It also provides a read-only field that shows the shortened URL after the URL variables have been saved.</p>
<pre class="brush: php">
   function meta_options()
   {
      global $post;
      $custom = get_post_custom($post-&gt;ID);
      if($custom["gaca10-gaurl"][0]){
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else{ $gaurl = ''; }
      if($custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
      }
      else { $gaterm = ''; }
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
      }
      else { $gacontent = ''; }
      if ($custom["gaca10-gadescription"][0]) {
         $gadescription = $custom["gaca10-gadescription"][0];
      }
      else { $gadescription = ''; }

      $url = trackable_url();
      if ($custom["campaign_tinyurl"][0]) {
         if($gaurl == '') { $shortenedurl = ''; }
         else{ $shortenedurl = create_tiny_url($url); }
      }

      ?&gt;
      &lt;label&gt;&lt;?php _ex('Website URL:','website url label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gaurl" value="&lt;?php echo $gaurl; ?&gt;" /&gt;&lt;br /&gt;
      &lt;em&gt;&lt;?php _ex('(e.g., http://www.google.com)','website url example'); ?&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;

      &lt;label&gt;&lt;?php _ex('Campaign Term:','campaign term label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gaterm" value="&lt;?php echo $gaterm; ?&gt;" /&gt;&lt;br /&gt;
      &lt;em&gt;&lt;?php _ex('(identify the paid keywords)','campaign term information'); ?&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;
      &lt;label&gt;&lt;?php _ex('Campaign Content:','campaign content label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gacontent" value="&lt;?php echo $gacontent; ?&gt;" /&gt;&lt;br /&gt;
      &lt;em&gt;&lt;?php _ex('(use to differentiate ads)','campaign content information'); ?&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;

      &lt;label&gt;&lt;?php _ex('Campaign Description:','campaign description label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gadescription" value="&lt;?php echo $gadescription; ?&gt;" /&gt;&lt;br /&gt;
      &lt;em&gt;&lt;?php _ex('(use to remind yourself about this specific link)','campaign description information'); ?&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;

      &lt;label&gt;&lt;?php _ex('Shortened URL:','shortened URL label'); ?&gt;&lt;/label&gt;&lt;input name="gaca10-gashortened-url" value="&lt;?php echo $shortenedurl; ?&gt;" readonly="readonly" /&gt;&lt;br /&gt;

      &lt;?php
   }
}

}
</pre>
<p>Here is how the “Add/Edit Campaign” screen will appear:</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/7"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/add-new-post-500.jpg" alt="Add new post" width="500" height="263" /></a></p>
<p>If <code>CampaignTracker10</code> exists, then we initiate the plugin:</p>
<pre class="brush: php">
   if(class_exists('CampaignTracker10')){

      // Initiate the plugin
      add_action("init", "CampaignTracker10Init");

      function CampaignTracker10Init() {
         global $gaca10;
         $gaca10 = new CampaignTracker10();

      }
   }
</pre>
<p>Combine these functions into the <code>campaign-tracker.php</code> file.</p>
<p>The following taxonomy examples should also be on the “Add/Edit Campaign” screen after everything has been added. Here is the “Campaign Names” taxonomy:</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/campaign-names.png" alt="Campaign Names" width="291" /></p>
<p>Here is the “Campaign Mediums” taxonomy:</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/campaign-mediums.png" alt="Campaign Mediums" width="287" /></p>
<p>Here is the “Campaign Sources” taxonomy:</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/campaign-sources.png" alt="Campaign Sources" width="288" /></p>
<p>Similar to how traditional post categories are set up, you can create new categories or select previous categories.</p>
<p><strong>A note on usage:</strong> When you begin to use the system, try to select only one category each from name, source and medium. One category per taxonomy type will prove to be most useful in your actual analysis in Google Analytics. So, as a general rule: one name, one source and one medium per URL.</p>
<h3>The Helpful Display Functions</h3>
<p>Each of the functions in this section is part of the <code>ga-functions.php</code> file. The functions have been separated from the other functions in order to keep the display functions together.</p>
<p>Our file will begin with the <code>formatted_utm_taxonomy_terms</code> function, which will display a URL-friendly version of the taxonomy terms:</p>
<pre class="brush: php">
   &lt;?php
   /* Some Helpful Display Functions */

   function formatted_utm_taxonomy_terms($the_term) {
      global $post;
      $post_terms = get_the_terms( $post-&gt;ID, $the_term );
      if ( $post_terms &amp;&amp; ! is_wp_error( $post_terms ) ) :
      $encoded_terms = array();
      foreach ($post_terms as $term ) {
         if(!$encoded_terms[] = $term-&gt;slug){
            $encoded_terms[] = urlencode($term-&gt;name);
         }
      }
      $return_terms = implode('+',$encoded_terms);
      return $return_terms;
      endif;
   }
</pre>
<p>The <code>trackable_url</code> function generates the trackable URL from the fields on the admin screen as well as the taxonomies. This appends the appropriate tracking criteria to the URL so that Google Analytics can use the variables and provide information based on these specific variables. To do this, we will use the <a rel="nofollow" href="http://www.tutsrus.com/goto/add_query_arg/763/8" title="add_query_arg"><code>add_query_arg</code></a> WordPress function.</p>
<pre class="brush: php">
   function trackable_url() {
      global $post;
      $custom = get_post_custom($post-&gt;ID);

      // the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ''; }

      // the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
         $gaterm = urlencode($gaterm);
      }
      else { $gaterm = ''; }

      // the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
         $gacontent = urlencode($gacontent);
      }
      else { $gacontent = ''; }
      $arr_params = array ( 'utm_campaign' =&gt; formatted_utm_taxonomy_terms('ganame'), 'utm_source' =&gt; formatted_utm_taxonomy_terms('gasource'), 'utm_medium' =&gt; formatted_utm_taxonomy_terms('gamedium'), 'utm_term' =&gt; $gaterm, 'utm_content' =&gt; $gacontent);
      return add_query_arg( $arr_params, $gaurl );

   }
</pre>
<p>The following functions take the campaign-trackable URL and <a rel="nofollow" href="http://www.tutsrus.com/goto/shortens_it_with_TinyURL/763/9">shortens it with TinyURL</a>. This method uses <a rel="nofollow" href="http://www.tutsrus.com/goto/wp_remote_get/763/10" title="wp_remote_get"><code>wp_remote_get</code></a> to generate the shortened URL. It then saves the shortened URL to the post’s meta data when a post is saved. The <code>trackable_url_tiny</code> function enables us to retrieve the shortened URL in the template.</p>
<pre class="brush: php">
   // Save the shortened trackable URL to the post meta
   function save_shortened_meta($post_ID) {
      $url = trackable_url();
      $shortened_url = create_tiny_url($url);
      update_post_meta($post_ID, "campaign_tinyurl", $shortened_url);
      return $post_ID;
   }

   // Add an action to save it when the post is saved.
   add_action('save_post', 'save_shortened_meta');

   // Retrieve the shortened URL from post meta
   function trackable_url_tiny($url = null, $post_ID) {
      global $post;
      $custom_fields = get_post_custom($post-&gt;ID);
      $campaign_tinyurl = $custom_fields['campaign_tinyurl'][0];
      return $campaign_tinyurl;

      return $post_ID;
   }

   // Create shortened trackable URL through the wp_remote_get function
   function create_tiny_url($strURL) {
      $tinyurl = wp_remote_get( 'http://tinyurl.com/api-create.php?url='.$strURL );
      if( is_wp_error( $response ) ) {
         return 'Something went wrong!';
      } else {
         return $tinyurl['body'];

      }
   }
</pre>
<p>The <code>trackable_url_report</code> function is what provides the human-readable version of the variables. These are broken out by each section. The landing page, campaign name, source, medium, terms and content are all separated and displayed individually if they exist.</p>
<pre class="brush: php">
   function trackable_url_report() {
      global $post;
      $custom = get_post_custom($post-&gt;ID);

      // get the url
      if ($custom["gaca10-gaurl"][0]) {
         $gaurl = $custom["gaca10-gaurl"][0];
      }
      else { $gaurl = ''; }
      // get the term(s)
      if ($gaterm = $custom["gaca10-gaterm"][0]) {
         $gaterm = $custom["gaca10-gaterm"][0];
      }
      else { $gaterm = ''; }

      // get the content(s)
      if ($custom["gaca10-gacontent"][0]) {
         $gacontent = $custom["gaca10-gacontent"][0];
      }
      else { $gacontent = ''; }

      // The Landing page
      $url_info ='';
      $url_info.= "&lt;strong&gt;". _x( 'Landing Page:','landing page label') . "&lt;/strong&gt; ";
      $url_info.= $gaurl;
      $url_info.= "&lt;br /&gt;";

      // The campaign name
      $url_info.= "&lt;strong&gt;". _x( 'Campaign:','campaign label') . "&lt;/strong&gt; ";
      $url_info.= formatted_utm_taxonomy_terms('ganame');
      $url_info.= "&lt;br /&gt;";

      // The Source
      $url_info.= "&lt;strong&gt;". _x( 'Source:','source label') . "&lt;/strong&gt; ";
      $url_info.= formatted_utm_taxonomy_terms('gasource');
      $url_info.= "&lt;br /&gt;";

      // The medium
      $url_info.= "&lt;strong&gt;". _x( 'Medium:','medium label') . "&lt;/strong&gt; ";
      $url_info.= formatted_utm_taxonomy_terms('gamedium');
      $url_info.= "&lt;br /&gt;";

      // The term
      $url_info.= "&lt;strong&gt;". _x( 'Term:','term label') . "&lt;/strong&gt; ";
      $url_info.= $gaterm;
      $url_info.= "&lt;br /&gt;";

      // The content
      $url_info.= "&lt;strong&gt;". _x( 'Content:','content label') . "&lt;/strong&gt; ";
      $url_info.= $gacontent;
      $url_info.= "&lt;br /&gt;";

      return $url_info;
   }
</pre>
<p>The <code>display_description</code> function displays the description of the URL. We’ve broken this part out here in order to keep all of the pieces that are specific to the URL together. This is also the last function in the <code>ga-functions.php</code> file.</p>
<pre class="brush: php">
   function display_description(){
      global $post;
      $custom = get_post_custom($post-&gt;ID);
      $description = $custom["gaca10-gadescription"][0];
      return $description;
   }

   ?&gt;
</pre>
<p>Combine these functions into the <code>ga-functions.php</code> file, and then we can move onto creating the template file.</p>
<h3>The Template File</h3>
<p>The final file that we will use to generate the view of the trackable URL is <code>campaign-template.php</code>. You will remember from the <code>campaign-tracker.php</code> file that we have a call in the <code>template_redirect()</code> function to redirect users to this template when viewing the custom post type of campaigns.</p>
<p>For display purposes, we will use the <code>single.php</code> file from the current default WordPress theme, TwentyEleven. You can, of course, use another theme and different styles.</p>
<p>First, we include the <code>ga-functions.php</code> file so that we can use some of our display functions. The campaign template also uses the Google Charts API to <a rel="nofollow" href="http://www.tutsrus.com/goto/generate_the_QR_code/763/11">generate the QR code</a>.</p>
<p>The following code will do all of the heavy lifting to display our campaign-trackable URL, the information about the URL, the shortened URL and the QR code. It will also allow us to edit the post if we need to change a variable. Simply drop this code into <a rel="nofollow" href="http://www.tutsrus.com/goto/the_loop/763/12">the loop</a>.</p>
<pre class="brush: php">
   &lt;h1 class="entry-title"&gt;&lt;?php the_title() ?&gt;&lt;/h1&gt;&lt;br /&gt;

   &lt;?php
   echo "&lt;strong&gt;". _x( 'Description:','description label') . "&lt;/strong&gt; ";
   echo display_description();
   echo "&lt;br /&gt;";
   echo trackable_url_report();
   echo "&lt;br /&gt;";
   echo "&lt;strong&gt;". _x('Trackable URL:','trackable URL label') . "&lt;/strong&gt; ";
   echo "&lt;a href=".trackable_url()." target='_blank'&gt;".trackable_url()."&lt;/a&gt;&lt;br /&gt;";

   echo "&lt;strong&gt;" . _x('Shortened Trackable URL:','shortened trackable URL label') . "&lt;/strong&gt; ";
   echo "&lt;a href=".trackable_url_tiny()." target='_blank'&gt;".trackable_url_tiny()."&lt;/a&gt;&lt;br /&gt;";
   ?&gt;

   &lt;br /&gt;
   &lt;img src="https://chart.googleapis.com/chart?chs=150x150&amp;amp;cht=qr&amp;amp;chl=&lt;?php trackable_url_tiny(); ?&gt;" /&gt;&lt;br /&gt;
   &lt;?php edit_post_link( __( 'Edit', 'twentyeleven' ), '&lt;span class="edit-link"&gt;', '&lt;/span&gt;' ); ?&gt;
</pre>
<p>When we combine the code, the campaign template will be as follows:</p>
<pre class="brush: php">
   &lt;?php
   /**
   * The Template for displaying all single posts.
   *
   * @package WordPress
   * @subpackage Twenty_Eleven
   * @since Twenty Eleven 1.0
   */

   // Include the ga-functions.php file so that we can easily display the results
   include_once('ga-functions.php');

   get_header(); ?&gt;

   &lt;div id="primary"&gt;
   &lt;div id="content" role="main"&gt;

   &lt;?php while ( have_posts() ) : the_post(); ?&gt;

   &lt;nav id="nav-single"&gt;
   &lt;h3 class="assistive-text"&gt;&lt;?php _e( 'Post navigation', 'twentyeleven' ); ?&gt;&lt;/h3&gt;
   &lt;span class="nav-previous"&gt;&lt;?php previous_post_link( '%link', __( '&lt;span class="meta-nav"&gt;&amp;larr;&lt;/span&gt; Previous', 'twentyeleven' ) ); ?&gt;&lt;/span&gt;
   &lt;span class="nav-next"&gt;&lt;?php next_post_link( '%link', __( 'Next &lt;span class="meta-nav"&gt;&amp;rarr;&lt;/span&gt;', 'twentyeleven' ) ); ?&gt;&lt;/span&gt;
   &lt;/nav&gt;&lt;!-- #nav-single --&gt;

   &lt;h1 class="entry-title"&gt;&lt;?php the_title() ?&gt;&lt;/h1&gt;&lt;br /&gt;

   &lt;?php
   echo "&lt;strong&gt;". _x( 'Description:','description label') . "&lt;/strong&gt; ";
   echo display_description();
   echo "&lt;br /&gt;";
   echo trackable_url_report();
   echo "&lt;br /&gt;";
   echo "&lt;strong&gt;". _x('Trackable URL:','trackable URL label') . "&lt;/strong&gt; ";
   echo "&lt;a href=".trackable_url()." target='_blank'&gt;".trackable_url()."&lt;/a&gt;&lt;br /&gt;";

   echo "&lt;strong&gt;" . _x('Shortened Trackable URL:','shortened trackable URL label') . "&lt;/strong&gt; ";
   echo "&lt;a href=".trackable_url_tiny()." target='_blank'&gt;".trackable_url_tiny()."&lt;/a&gt;&lt;br /&gt;";
   ?&gt;

   &lt;br /&gt;
   &lt;img src="https://chart.googleapis.com/chart?chs=150x150&amp;amp;cht=qr&amp;amp;chl=&lt;?php trackable_url_tiny(); ?&gt;" /&gt;&lt;br /&gt;
   &lt;?php edit_post_link( __( 'Edit', 'twentyeleven' ), '&lt;span class="edit-link"&gt;', '&lt;/span&gt;' ); ?&gt;

   &lt;?php comments_template( '', true ); ?&gt;

   &lt;?php endwhile; // end of the loop. ?&gt;

   &lt;/div&gt;&lt;!-- #content --&gt;
   &lt;/div&gt;&lt;!-- #primary --&gt;

   &lt;?php get_footer(); ?&gt;
</pre>
<p>When the template is set up and a campaign has been added, then it should display the following page:</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/763/13"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/display-information-500.jpg" alt="Display information" width="500" /></a></p>
<h3>In Conclusion</h3>
<p>By using WordPress custom post types in the method described, it is possible to organize marketing campaigns with the relevant Google Analytics campaign-tracking URL, shortened URL and QR code. This makes organizing marketing campaigns much simpler and more effective.</p>
<p>Custom post types make it very easy to set up a system by which to organize content. And we can get creative in how we use custom post types. They can be very useful when organizing content outside of the normal structure of WordPress and other content management systems (i.e. posts, pages, etc.).</p>
<p>Other possible uses of custom post types include the following:</p>
<ul>
<li>Manage client contacts,</li>
<li>Create an employee directory,</li>
<li>Keep an inventory of items,</li>
<li>Organize other data.</li>
</ul>
<h4>Resources</h4>
<p>You may be interested in the following resources and articles:</p>
<ul>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Custom_Post_Types_in_WordPress_3_0/763/14">Custom Post Types in WordPress 3.0</a>,” Konstantin Kovshenin</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Custom_Post_Types_in_WordPress/763/15">Custom Post Types in WordPress</a>,” Justin Tadlock</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Creating_a_TinyURL_With_TinyURL_s_API/763/16">Creating a TinyURL With TinyURL’s API</a>,” Richard Castera</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Getting_Started_With_Infographics/763/17">Getting Started With Infographics</a>” (QR Codes with the Google Charts API), Google Code</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Post_Types/763/18">Post Types</a>,” WordPress Codex</li>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/URL_Builder_tool/763/19">URL Builder tool</a> Google Analytics</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/IQ_Lessons/763/20">IQ Lessons</a>,” Google Analytics</li>
</ul>
<p><em>(al)</em></p>
<hr />
<p><small>© Joshua Dodson for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/763/21">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/763/22">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/how-to-use-custom-post-types-to-organize-online-marketing-campaigns.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desktop Wallpaper Calendar: February 2012</title>
		<link>http://www.tutsrus.com/desktop-wallpaper-calendar-february-2012.html</link>
		<comments>http://www.tutsrus.com/desktop-wallpaper-calendar-february-2012.html#comments</comments>
		<pubDate>Thu, 02 Feb 2012 13:23:21 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[February]]></category>
		<category><![CDATA[Wallpaper]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/desktop-wallpaper-calendar-february-2012.html</guid>
		<description><![CDATA[&#160;&#160; We always try our best to challenge your artistic abilities and produce some interesting, beautiful and creative artwork. And as designers we usually turn to different sources of inspiration. As a matter of fact, we’ve discovered the best one — desktop wallpapers that are a little more distinctive than the usual crowd. This creativity [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>We always try our best to challenge your artistic abilities and produce some interesting, beautiful and creative artwork. And as designers we usually turn to different sources of inspiration. As a matter of fact, we’ve discovered the best one — desktop wallpapers that are a little more distinctive than the usual crowd. This creativity mission has been going on for over two years now, and we are very thankful to all designers who have contributed and are still diligently contributing each month.</p>
<p>We continue to nourish you with a monthly spoon of inspiration. This post features <strong>free desktop wallpapers</strong> created by artists across the globe for January 2012. Both versions with a calendar and without a calendar can be downloaded for free. It’s time to freshen up your wallpaper!</p>
<p>Please note that:</p>
<ul>
<li>All <strong>images can be clicked on</strong> and lead to the preview of the wallpaper,</li>
<li>You can <a rel="nofollow" href="http://www.tutsrus.com/goto/feature_your_work_in_our_magazine/760/4">feature your work in our magazine</a> by taking part in our Desktop Wallpaper Calendar series. We are regularly looking for creative designers and artists to be featured on Smashing Magazine. Are you one of them?</li>
</ul>
<h3 id="colored_edge__15">Colored Edge</h3>
<p>&quot;For February, the month of spring, love and 29 days.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Rahul_s/760/5">Rahul.s</a> from India.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/6"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/colored_edge__15.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/7">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/8">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/9">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/10">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/11">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_1050/760/12">1440&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/13">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/14">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/15">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/16">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1440/760/17">1920&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/18">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/19">1680&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/20">1920&times;1200</a></li>
</ul>
<h3 id="hungry_owl__82">Hungry Owl</h3>
<p>&quot;February, just one more cold month.. <img src='http://www.tutsrus.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Katerina_Bobkova/760/21">Katerina Bobkova</a> from Ukraine.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/22"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/hungry_owl__82.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/23">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/24">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/25">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/26">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/27">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/28">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/29">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/30">1920&times;1080</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/31">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/32">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/33">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/34">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/35">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/36">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/37">1920&times;1080</a></li>
</ul>
<h3 id="hot_drinks__23">Hot Drinks</h3>
<p>&quot;Which drink will you choose to make you feel better during the cold season?&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Agathe_Altwegg/760/38">Agathe Altwegg</a> from France.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/39"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/hot_drinks__23.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/40">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/41">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/42">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/43">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/44">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/45">1680&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/46">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/47">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/48">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/49">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/50">1680&times;1200</a></li>
</ul>
<h3 id="bebold__29">Bold</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Elisabetta_Borseti/760/51">Elisabetta Borseti</a> from Italy.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/52"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/bebold__29.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/53">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/54">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/55">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/56">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/57">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/58">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/59">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/60">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/61">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/62">1920&times;1080</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/63">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/64">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/65">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/66">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/67">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/68">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/69">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/70">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/71">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/72">1920&times;1200</a></li>
</ul>
<h3 id="february_prison_break__63">February Prison Break</h3>
<p>&quot;We suggest &#8211; do not mess with February.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Marek_Guzi_ski_From_Rio_Creativo/760/73">Marek Guziсski From Rio Creativo</a> from Poland.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/74"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/february_prison_break__63.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/75">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/76">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/77">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/78">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/79">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/80">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/81">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2540_times_1440/760/82">2540&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/83">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/84">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/85">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/86">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/87">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/88">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2540_times_1440/760/89">2540&times;1440</a></li>
</ul>
<h3 id="all_you_need_is_love__46">All You Need Is Love</h3>
<p>&quot;Love is all you need.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Kaspars_Dedzis/760/90">Kaspars Dedzis</a> from Latvia.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/91"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/all_you_need_is_love__46.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/92">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/93">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/94">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/95">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/96">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/97">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/98">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/99">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/100">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/101">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/102">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/103">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/104">2560&times;1440</a></li>
</ul>
<h3 id="february_splashes__88">February Splashes</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Roland_Szab_/760/105">Roland Szabу</a> from Hungary.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/106"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/february_splashes__88.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/107">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/108">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/109">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/110">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/111">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/112">1920&times;1200</a></li>
</ul>
<h3 id="penguin_hockey__73">Penguin Hockey</h3>
<p>&quot;No coward plays hockey!&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Cheloveche_ru/760/113">Cheloveche.ru</a> from Russia.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/114"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/penguin_hockey__73.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/115">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/116">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/117">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/118">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/119">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/120">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/121">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/122">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/123">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/124">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/125">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/126">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/127">1920&times;1200</a></li>
</ul>
<h3 id="valentine_nice__44">Mr. &#038; Ms. Nice</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Diana_Morgado/760/128">Diana Morgado</a> from Portugal.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/129"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/valentine_nice__44.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/130">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/131">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/132">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/133">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/134">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/135">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/136">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/137">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/138">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/139">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/140">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/141">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/142">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/143">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/144">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/145">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/146">2560&times;1440</a></li>
</ul>
<h3 id="jealous_much__33">Jealous Much?</h3>
<p>&quot;Calendar for February 2012.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Annabelle_Bay/760/147">Annabelle Bay</a> from USA.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/148"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/jealous_much__33.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/149">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_240/760/150">320&times;240</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/151">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/152">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/153">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/154">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/155">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/156">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_240/760/157">320&times;240</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/158">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/159">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/160">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/161">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/162">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/163">1920&times;1200</a></li>
</ul>
<h3 id="heartbroken__59">Heartbroken</h3>
<p>&quot;Illustrated wallpaper for february on the theme of heartbreak.1920 x 1200.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Danae_Botha/760/164">Danae Botha</a> from South Africa.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/165"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/heartbroken__59.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/166">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/167">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_480/760/168">800&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/169">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/170">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/171">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/172">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/173">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/174">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/175">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/176">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_1050/760/177">1440&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/178">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/179">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/180">1680&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/181">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/182">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1440/760/183">1920&times;1440</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/184">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/185">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_480/760/186">800&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/187">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/188">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/189">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/190">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/191">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/192">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/193">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/194">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/195">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_1050/760/196">1440&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/197">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/198">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/199">1680&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/200">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/201">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1440/760/202">1920&times;1440</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/203">2560&times;1440</a></li>
</ul>
<h3 id="the_shortest_month__26">The Shortest Month</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Forsaken/760/204">Forsaken</a> from France.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/205"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/the_shortest_month__26.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/206">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/207">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/208">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_1050/760/209">1400&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/210">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/211">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/212">1920&times;1080</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/213">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/214">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_1050/760/215">1400&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/216">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/217">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/218">1920&times;1080</a></li>
</ul>
<h3 id="kids_and__dragon">Kids And Dragon</h3>
<p>&quot;My drawings are mostly black-and-white and the year of the Black Dragon inspired me to start drawing another picture. Let the Dragon this year be friendly and playful <img src='http://www.tutsrus.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Jelena_T_ekulajeva/760/219">Jelena Tљekulajeva</a> from Estonia.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/220"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/kids_and__dragon.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/221">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/222">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/223">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/224">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/225">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/226">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/227">1920&times;1080</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/228">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/229">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/230">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/231">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/232">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/233">1920&times;1080</a></li>
</ul>
<h3 id="heart_on_a_string__55">Heart On A String</h3>
<p>&quot;For hopeless romantics that let others play with their heart.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Jacob_Giesler/760/234">Jacob Giesler</a> from USA.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/235"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/heart_on_a_string__55.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/236">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/237">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/238">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/239">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/240">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/241">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/242">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/243">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/244">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/245">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/246">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/247">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/248">2560&times;1440</a></li>
</ul>
<h3 id="ashadows_chance__31">A Shadow&#8217;s Chance</h3>
<p>&quot;A nod at Groundhog Day! The artwork provided with a calendar has a winter color, because the groundhog sees his shadow which means six more weeks of winter. And the other (Green) has no calendar and no shadow which denotes anearly spring.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Joseph_Brooks/760/249">Joseph Brooks</a> from United States.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/250"><img width="500" height="281" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/ashadows_chance__31.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/251">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/252">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/253">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/254">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/255">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/256">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/257">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/258">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/259">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/260">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/261">2560&times;1440</a></li>
</ul>
<h3 id="be_mine__4">Be Mine</h3>
<p>&quot;A cutsie calendar theme.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Sandi_Pop_Up_Factory_com/760/262">Sandi | Pop Up Factory.com</a> from Toronto, ON,  Canada.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/263"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/be_mine__4.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/264">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/265">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/266">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/267">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/268">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/269">1680&times;1050</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/270">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/271">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/272">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/273">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/274">1680&times;1050</a></li>
</ul>
<h3 id="love_signal__65">It&#8217;s The Love Signal</h3>
<p>&quot;Let&#8217;s beam our love to the universe!&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Lew_Su_ann/760/275">Lew Su-ann</a> from Brunei Darussalam.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/276"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/love_signal__65.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/277">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/278">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/279">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/280">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/281">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/282">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_1050/760/283">1400&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/284">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/285">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/286">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/287">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/288">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/289">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/290">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/291">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/292">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_1050/760/293">1400&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/294">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/295">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/296">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/297">1920&times;1200</a></li>
</ul>
<h3 id="winter_church__23">Winter Church</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Pietje_Precies/760/298">Pietje Precies</a> from The Netherlands.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/299"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/winter_church__23.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/300">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/301">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/302">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/303">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/304">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/305">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/306">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/307">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/308">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/309">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/310">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/311">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/312">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/313">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/314">1920&times;1200</a></li>
</ul>
<h3 id="lock_your_love__2">Lock Your Love</h3>
<p>&quot;February is the month of couples and love, so if you do have that one special person in your life! Then this would be the prefect month to show how much you love her or him <img src='http://www.tutsrus.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Rihards_Gromuls/760/315">Rihards Gromuls</a> from Latvia.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/316"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/lock_your_love__2.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/317">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/318">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/319">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/320">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/321">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/322">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/323">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/324">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/325">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/326">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/327">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/328">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/329">1920&times;1200</a></li>
</ul>
<h3 id="cyclops_encounter__63">Cyclops Encounter</h3>
<p>&quot;I am a big fan of the Odyssey. Cyclopses are awesome.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Glorm/760/330">Glorm</a> from Canada.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/331"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/cyclops_encounter__63.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/332">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/333">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/334">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_900/760/335">1400&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/336">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/337">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/338">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/339">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1400_times_900/760/340">1400&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/341">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/342">1920&times;1200</a></li>
</ul>
<h3 id="gloomy_light__95">Gloomy Light</h3>
<p>&quot;Sometimes we ever feel&#8217;s like useless, moody, gloomy, that&#8217;s so sadly. Maybe it just like an old gloomy paper effect on my calendar template. But, we can change it with give it colors, this year our life will be not far from heaviness like our years before, just bright it up and make a colors in your moody days!&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Dwi_Prastika/760/343">Dwi Prastika</a> from Indonesia.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/344"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/gloomy_light__95.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/345">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/346">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/347">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/348">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/349">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/350">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/351">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/352">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/353">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/354">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/355">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/356">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/357">2560&times;1440</a></li>
</ul>
<h3 id="chillout__59">Chillout</h3>
<p>&quot;Once upon a time, in a land far, far away, where you will not be online&#8230;&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Chilid_Interactive_Agency/760/358">Chilid Interactive Agency</a> from Poland.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/359"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/chillout__59.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/360">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/361">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/362">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/363">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/364">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/365">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/366">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1366_times_768/760/367">1366&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/368">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/369">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/370">2560&times;1440</a></li>
</ul>
<h3 id="all_you_need__16">All You Need Is Love</h3>
<p>&quot;The Beatles said it best! Love is all you need.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Allison_Brown/760/371">Allison Brown</a> from Canada.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/372"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/all_you_need__16.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/373">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/374">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/375">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/376">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/377">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/378">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/379">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/380">1920&times;1080</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/381">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/382">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/383">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/384">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/385">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/386">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/387">1920&times;1080</a></li>
</ul>
<h3 id="fight_for_u__63">Fight For You</h3>
<p>&quot;This valentine we should fight for the ones we love.&quot; Designed by Tonie Tannous from Lebanon.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/388"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/fight_for_u__63.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/389">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/390">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/391">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/392">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/393">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/394">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/395">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/396">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/397">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/398">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/399">2560&times;1440</a></li>
</ul>
<h3 id="ice_melted__42">Ice Melted</h3>
<p>&quot;Ice melted is coming back soon.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Yank/760/400">Yank</a> from France.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/401"><img width="500" height="375" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/ice_melted__42.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/402">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/640_times_480/760/403">640&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/404">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/405">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/406">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/407">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/408">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/640_times_480/760/409">640&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/410">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/411">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_1024/760/412">1280&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/413">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/414">1920&times;1200</a></li>
</ul>
<h3 id="load_time__88">Load Time</h3>
<p>&quot;What Scott Adams means about load time.&quot; Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Fredrik_Jensen/760/415">Fredrik Jensen</a> from Norway.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/416"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/load_time__88.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/417">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/418">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/640_times_480/760/419">640&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_480/760/420">800&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/421">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/422">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/423">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/424">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/425">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/426">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/427">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1600_times_1200/760/428">1600&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/429">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/430">1680&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/431">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/432">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1440/760/433">1920&times;1440</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/434">2560&times;1440</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/320_times_480/760/435">320&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/640_times_480/760/436">640&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_480/760/437">800&times;480</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/800_times_600/760/438">800&times;600</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_768/760/439">1024&times;768</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1152_times_864/760/440">1152&times;864</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/441">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_800/760/442">1280&times;800</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_960/760/443">1280&times;960</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1440_times_900/760/444">1440&times;900</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/445">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1200/760/446">1680&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/447">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/448">1920&times;1200</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1440/760/449">1920&times;1440</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/2560_times_1440/760/450">2560&times;1440</a></li>
</ul>
<h3 id="love_is_in_the_air__81">Love Is In The Air</h3>
<p>Designed by <a rel="nofollow" href="http://www.tutsrus.com/goto/Andreas_Sofantzis/760/451">Andreas Sofantzis</a> from Greece.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/760/452"><img width="500" height="312" alt="Smashing Wallpaper - february 12" src="http://files.smashingmagazine.com/wallpapers/february-12/images/love_is_in_the_air__81.jpg" /></a></p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/preview/760/453">preview</a></li>
<li>with calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/454">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/455">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/456">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/457">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/458">1920&times;1200</a></li>
<li>without calendar:  <a rel="nofollow" href="http://www.tutsrus.com/goto/1024_times_1024/760/459">1024&times;1024</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1280_times_720/760/460">1280&times;720</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1680_times_1050/760/461">1680&times;1050</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1080/760/462">1920&times;1080</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/1920_times_1200/760/463">1920&times;1200</a></li>
</ul>
<h3>Join In Next Month!</h3>
<p>Please note that we respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the <strong>full freedom to explore their creativity</strong> and express emotions and experience throughout their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us, but rather designed from scratch by the artists themselves.</p>
<p>A big thank you to all designers for their participation. <a rel="nofollow" href="http://www.tutsrus.com/goto/Join_in_next_month/760/464">Join in next month</a>!</p>
<h4>What’s Your Favourite?</h4>
<p>What’s your favorite theme or wallpaper for this month? Please let us know in the comment section below! We are looking forward to your submissions next month!</p>
<p><em>(il) (vf)</em></p>
<hr />
<p><small>© Smashing Editorial Team for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/760/465">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/760/466">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/desktop-wallpaper-calendar-february-2012.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Future Of Screen Typography Is In Your Hands</title>
		<link>http://www.tutsrus.com/the-future-of-screen-typography-is-in-your-hands.html</link>
		<comments>http://www.tutsrus.com/the-future-of-screen-typography-is-in-your-hands.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 10:24:18 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Future]]></category>
		<category><![CDATA[Hands]]></category>
		<category><![CDATA[Screen]]></category>
		<category><![CDATA[Typography]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/the-future-of-screen-typography-is-in-your-hands.html</guid>
		<description><![CDATA[&#160;&#160; We do more reading on the screen today than we did even a year ago. If we are ever to have a golden age of reading on the screen, this might be the start of it. Tablets, Nooks and Kindles make buying a book or magazine for the screen almost unavoidable. With smartphones, we [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/757/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/757/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/757/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>We do more reading on the screen today than we did even a year ago. If we are ever to have a golden age of reading on the screen, this might be the start of it.</p>
<p>Tablets, Nooks and Kindles make buying a book or magazine for the screen almost unavoidable. With smartphones, we carry our reading material with us and enjoy instant Web access, enabling the reading experience to flow smoothly from one device to another. And those devices probably have stunning HD reader-friendly screens. Throw in companion services like Readmill and 24symbols, which allow us to share our reading experiences, and we have perfect screen-based access to all aspects of the written word.</p>
<p>So, why isn&#8217;t Web and screen typography keeping up?</p>
<h3>Good Typography Cannot Be Handcrafted Anymore</h3>
<p>In the past, typography was viewed as living only when it reached paper. Once a publication was edited, typeset and printed, it was done. Nothing changed after that. Good typography and readability were the result of skilled typesetters and designers.</p>
<p>Today, typography exists not only on paper but on a multitude of screens. It is subject to many unknown and fluctuating parameters, such as operating system, system fonts, the device and screen itself, the viewport and more. Our experience of typography today changes based on how the page is rendered, because typesetting happens in the browser.</p>
<p>In all of this, the browser is probably the most important part of the screen typography equation. Ironically, the lack of support in modern browsers is the single biggest hurdle to good Web typography.</p>
<p>Type-as-service providers are offering an alternative, with an increasing number of fonts that are fairly cheap and easy for us designers to use when typesetting text. But they, too, want better support of Web typography.</p>
<h4>Identifying What&#8217;s Missing</h4>
<p>Let&#8217;s look at some of the basic things that are missing from most, if not all, screen-reading experiences. When we say basic, we mean the things that you read and benefit from whenever you look at a book or magazine on paper or screen.</p>
<ul>
<li>Kerning and spacing of individual characters;</li>
<li>Basic ligatures (fi, fl)</li>
<li>Other ligatures (fj, ffi, ffl, ffj and more);</li>
<li>Lining and old-style numerals;</li>
<li>True small-caps;</li>
<li>Replacing uppercase with small-caps for abbreviations;</li>
<li>Superscripted symbols such as © and ™;</li>
<li>Language-based quotation marks;</li>
<li>Correct replacement of en and em dashes, and the spacing around them;</li>
<li>Spacing of ! ( ) [ ] / ; :.</li>
</ul>
<p>Doesn&#8217;t seem like much. Except that it is. The elements in this list are some of the things that help us read, process and understand information. They represent in many ways the difference between how a soulless machine would relate to text and how thinking, organic humans do it.</p>
<p>Those of you who were around during the desktop publishing boom might see similarities. In 1999, QuarkXPress did not support OpenType, InDesign was just born, and you had to use “expert” cuts of fonts to be able to work with small-caps and old-style numerals. So, we had to create workarounds for micro-typography — such as Apple-Script frameworks for QuarkXPress, where the script traversed documents and isolated hyphens, dashes, ligatures and small-caps abbreviations, replacing them with the correct typographical equivalents.</p>
<p>In many ways, 2012 is the new 1999. We have the freedom to work with any font we like via the @font-face selector. But our main tool, the browser, does not have any OpenType features to speak of. We have to create workarounds.</p>
<p>Can we use the same type of solution that we used back in the old days of print?</p>
<p>We say yes.</p>
<h4>Time to Fix the Problem</h4>
<p>We researched existing JavaScript libraries and found a ton of great stuff. But none focused on micro-typography as a whole. When we started the project, we laid out five clear goals:</p>
<ul>
<li>Correct micro-typography, including as many of the elements in the list above as possible;</li>
<li>Degrades so that devices without @font-face or JavaScript support are not negatively affected;</li>
<li>OS independence;</li>
<li>Browser independence;</li>
<li>Correct markup;</li>
</ul>
<p>We named the project <a rel="nofollow" href="http://www.tutsrus.com/goto/OpenTypography/757/4">OpenTypography</a>, and we named the solution Typesetter.js.</p>
<p><img title="degrading_1" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_1.gif" alt="" width="500" /></p>
<p><em>JavaScript and @font-face and styles disabled.</em></p>
<p><img title="degrading_2" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_2.gif" alt="" width="500" /></p>
<p><em>JavaScript disabled.</em></p>
<p><img title="degrading_3" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/degrading_3.gif" alt="" width="500" /></p>
<p><em>JavaScript enabled and @font-face-enhanced Web typography.</em></p>
<h3>Typesetter.js</h3>
<p>Typesetter.js has two ingredients: a JavaScript and a custom font file</p>
<p>The JavaScript traverses the DOM, finding and replacing things like quotation marks, ligatures, en and em dashes, ellipses and more. It also finds ©, ®, ™ and wraps them in <code>sup</code> tags.</p>
<p>Most importantly, it finds uppercase abbreviations and wraps them in <code>abbr</code> tags, giving us true small-caps. This is possible thanks to a bit of CSS and the services of font-on-demand houses such as Fontdeck and Typekit.</p>
<p><img style="border: 1px solid #CCC;" title="dom_traverse" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/dom_traverse.gif" alt="" width="500" height="356" /></p>
<p><em>Finding, replacing and wrapping.</em></p>
<p>Here is a rundown of how Typesetter.js works.</p>
<h3>1. The JavaScript</h3>
<p>The code is divided into two parts, giving you the option to use the small-caps replacement. But let&#8217;s start by looking at how the small-caps replacement works.</p>
<p>Here is the sample HTML that we will use to explain what the script actually does:</p>
<pre class="brush: html">&lt;p class="typo"&gt;The fine details of screen typography can be improved with JS-scripts and CSS.&lt;/p&gt;

&lt;p class="typo"&gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&lt;/p&gt;</pre>
<p><img title="example_default" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_default.gif" alt="" width="500" /></p>
<p><em>Our sample text rendered with Georgia and browser-native typographic features.</em></p>
<p>In this text, we want to find all-uppercase words.</p>
<p>The code starts by getting all elements of a user-chosen class, in this case <code>.typo</code>. These elements are stored in an array.</p>
<pre class="brush: js">mainArray[0] = 'The fine details of screen typography can be improved with JS-scripts and CSS.';
mainArray[1] = 'That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011';</pre>
<p>Each array element is then looped one at a time and split into a sub-array containing each word as a string.</p>
<pre class="brush: js">subArray[0] = 'The';
subArray[1] = 'fine';
subArray[2] = 'details';
subArray[3] = 'of';
subArray[4] = 'screen';
subArray[5] = 'typography';
subArray[6] = 'can';
subArray[7] = 'be';
subArray[8] = 'improved';
subArray[9] = 'with';
subArray[10] = 'JS-scripts';
subArray[11] = 'and';
subArray[12] = 'CSS.';</pre>
<p>Each item in the sub-array is tested to see whether the character count of the word and the count of the uppercase letters (ASCII values between 65 and 90) are equal. If so, the word is treated as an uppercase abbreviation.</p>
<p>The test actually checks the first and last character of the sub-array item. If they are uppercase, then it is fair to assume that the whole word is an uppercase abbreviation, and then we would run a more specific test. Here is what the script returns from our sample text:</p>
<ul>
<li>“The” = <code>false</code> (do not run specific test)</li>
<li>“details” = <code>false</code> (do not run specific test)</li>
<li>“Andreas” = <code>false</code> (do not run specific test)</li>
<li>“CSS.” = <code>true</code> (run specific test)</li>
<li>“JS-scripts” = <code>true</code> (run specific test)</li>
</ul>
<p>As you can see, the test also spots uppercase words when they are used with a hyphen or have an trailing period.</p>
<p>Our special uppercase test creates an index array that holds the indexes of the uppercase words (i.e. it identifies where in the full sentence they occur). After the whole sub-array is tested, we would have the sub-array and the index array containing the all-uppercase indexes.</p>
<pre class="brush: js">indexArray[0] = '10';
indexArray[1] = '12';</pre>
<p>Now that we know where all of the uppercase words are in the string (i.e. sentence), we can prepare them for small-caps replacement.</p>
<p>Small-caps replacement is done by extracting the word, converting the letters to lowercase, wrapping the whole word in an <code>abbr</code> tag and inserting it into the sub-array again.</p>
<pre class="brush: js">subArray[0] = 'The';
subArray[1] = 'fine';
subArray[2] = 'details';
subArray[3] = 'of';
subArray[4] = 'screen';
subArray[5] = 'typography';
subArray[6] = 'can';
subArray[7] = 'be';
subArray[8] = 'improved';
subArray[9] = 'with';
subArray[10] = '<abbr>js</abbr>-scripts';
subArray[11] = 'and';
subArray[12] = '<abbr>css</abbr>.';</pre>
<p>Now we only need to convert that array into a string and replace the original HTML element with the new small-caps-ified HTML element.</p>
<p><strong>Before:</strong></p>
<pre class="brush: html">&lt;p class="typo"&gt;The fine details of screen typography can be improved with JS-scripts and CSS.&lt;/p&gt;

&lt;p class="typo"&gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&lt;/p&gt;</pre>
<p><strong>After:</strong></p>
<pre class="brush: js">&lt;p class="typo"&gt;The fine details of screen typography can be improved with <abbr>js</abbr>-scripts and <abbr>css</abbr>.&lt;/p&gt;

&lt;p class="typo"&gt;That is the goal of "Typesetter.js" — an open-source solution by Andreas Carlsson and Jaan Orvet © 2011&lt;/p&gt;</pre>
<p><img title="example_smallcaps_replaced" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_smallcaps_replaced.gif" alt="" width="500" /></p>
<p><em>Our sample text set with Tanger Serif from Typolar, using the @font-face rule. Uppercase words are now wrapped in <code>abbr</code> tags.</em></p>
<p>Nice and neat. Now for the second part of the script, the one that replaces quotation marks, ligatures, en and em dashes, and ellipses; renders characters such as © in superscript; and converts numerals to old style by wrapping them in a user-defined class.</p>
<p>The code is fairly self-explanatory:</p>
<pre class="brush: js">var charReplacements = function() {

/* Quotationmarks
‹ = ‹
› = ›
« = «
» = »
‘ = ‘
’ = ’
“ = “
” = ”
*/

var quoteCharClose = "»";
var quoteCharOpen = "«";
var triggerID = "#display";
var smallcapsClass = "old-style"

$(triggerID).each(function() {
$(this).find('*').each(function() {
	if (($(this).html()) != 0) {
		if (($(this).find('img').length) === 0) {
		// Performs replaces on any element that is not an</pre>
<p><img alt="" /></p>
<pre class="brush: js">	  	$(this).html( $(this).html().replace(/(\.\.\.(\.)?)|(\.\s\.\s(\.\s)?|(\.\.(\.)?))/g, "…"));
		// Finds and replaces .. | ... | .... with an elipsis

		$(this).html( $(this).html().replace(/fl/g, "ﬂ"));
		// Replaces fl with ligature

		$(this).html( $(this).html().replace(/fi/g, "ﬁ"));
		// Replaces fi with ligature

		$(this).html( $(this).html().replace(/\s-\s/g, " ‒ "));
		// Replaces | space en-dash space | with: | space em-dash space |

    		$(this).html( $(this).html().replace(/"([\s\.\,])/g, quoteCharClose + ""));
		// Replaces | " space | with | » space |

		$(this).html( $(this).html().replace(/\s"/g, " " +  quoteCharOpen));
		// Replaces | space " | with | space « |

		$(this).html( $(this).html().replace(/(\d+)(?=((?!).)*(-tag with the .old-style-class but ignores digits within a a-tag. Read full explanation here http://www.phpbuilder.com/board/archive/index.php/t-10221442.html

		if ( (($(this).children().length) === 0) || ($('this:contains("u00a9")')) ) {

			$(this).html( $(this).html().replace(/\u00a9/g, "</pre>
<p><sup class="\&quot;sup\&quot;">©</sup></p>
<pre class="brush: js">") );
			// Superscripts (c)

			$(this).html( $(this).html().replace(/\u00ae/g, "</pre>
<p><sup class="\&quot;sup\&quot;">®</sup></p>
<pre class="brush: js">") );
			// Superscripts (R)
		};
	};
   };

});
});
};</pre>
<p>Most of the typographic details in the script are declared in the variables at the beginning. This is the beginning of a “settings” type of solution that we are working towards building.</p>
<p>”Settings” is a pretty important feature because typographic rules change depending on the language; for example, quotation marks and the spacing of em dashes. English, French and German each use different quotation marks, so the designer needs to be able to easily change the typographic settings.</p>
<p>Now we have pretty decent typography in our example:</p>
<pre class="brush: html">&lt;p class="typo"&gt;The fine details of screen typography can be improved with <abbr>js</abbr>-scripts and <abbr>css</abbr>.&lt;/p&gt;

&lt;p class="typo"&gt;That is the goal of «Typesetter.js» — an open-source solution by Andreas Carlsson and Jaan Orvet</pre>
<p><sup class="sup">©</sup></p>
<pre class="brush: html"> <span class="old-style">2011</span>&lt;/p&gt;</pre>
<p><img title="example_complete" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/example_complete.gif" alt="" width="500" height="133" /></p>
<p><em>Our sample text with much better micro-typography than what the browser supports natively.</em></p>
<p>We have covered a lot, but the most important part is still to come!</p>
<h3>2. The Custom Font File</h3>
<p>Let&#8217;s move on to the font file itself.</p>
<h4>Putting Small-Caps and Old-Style Numerals in Place</h4>
<p>Our text is now wrapped in classes; we can use CSS to set it in small-caps and old-style numerals. Since no browser supports OpenType, we cannot use the regular <code>font-variant: small-caps</code> rule, because this would only shrink the uppercase letters, resulting in thinner and lighter characters.</p>
<p><img title="fake_smallcaps" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/fake_smallcaps.gif" alt="" width="500" /></p>
<p><em>The <code>font-variant: small-caps</code> rule merely shrinks uppercase letters, resulting in thinner and lighter characters. To get real small-caps, we have to use our custom subsetted font file.</em></p>
<p>The font file we need is a subset of the regular cut; in it, the uppercase characters have been replaced with small-caps characters, and the lining numerals have been replaced with old-style numerals. (Remember the days of “expert set fonts”? It’s a bit like that. If you don’t remember, you’re better off for it.)</p>
<p>We can now specify in our CSS files to use the subset for <code>abbr</code> tags. This will give us true small-caps on the Web and allow us to choose between old-style and lining numerals in our text.</p>
<pre class="brush: css">abbr {
   font-family: "Tanger Serif Expert", Cambria, Georgia, serif;
   letter-spacing: 0.15em;
   text-transform: lowercase;
   font-variant: small-caps;
   font-weight: 650;
}</pre>
<h4>Get the Font File</h4>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/Fontdeck/757/5">Fontdeck</a> supports the OpenTypography project by kindly serving subsetted fonts in addition to its main fonts.</p>
<p>Other type services and foundries make subsets available as well. We keep an updated list with examples at <a rel="nofollow" href="http://www.tutsrus.com/goto/OpenTypography/757/6">OpenTypography</a>.</p>
<h4>Create Your Own Font File</h4>
<p>If you have experience working with fonts, then creating your own subsetted font files is fairly straightforward.</p>
<p>Open the regular cut in your favorite font editor. Copy the small-caps glyphs, and paste them where the uppercase and lowercase glyphs are. Copy the old-style numerals to where the lining numerals are. Once this is done, you only have to generate a new font file and convert it to all the required Web font formats: TTF, OTF, WOFF, EOT, SVG.</p>
<p><img title="replace_uppercase" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/replace_uppercase.gif" alt="" width="500" /></p>
<p><em>You can easily create your own subsetted custom font file. Just replace uppercase and lowercase glyphs with the small-caps versions and the lining numerals with the old-style ones.</em></p>
<p>Now you have your own custom Web font ready to be used with Typesetter.js</p>
<p>But be sure to check the license to make sure you are permitted to adjust the font file and to embed it via the @font-face selector.</p>
<h3>Get Involved In The Future Of Typesetter.js</h3>
<p>We are currently testing Typesetter.js in our Dropbox- and Markdown-based CMS, <a rel="nofollow" href="http://www.tutsrus.com/goto/Skrivr/757/7">Skrivr</a>, but Typesetter.js is at a very early stage and needs more development in order to work seamlessly with all of the great things that the Web and digital-screen community is creating.</p>
<p>Mainly, we want it to be faster. Another question we’re facing is whether to use RegEx or not. Also, how do we create a better solution for targeting parts of the DOM and isolating those that shouldn’t be replaced?</p>
<p>You’ll find all the latest information, examples, code and more at <a rel="nofollow" href="http://www.tutsrus.com/goto/OpenTypography/757/8">OpenTypography</a>, which is also the best place to get in touch and let us know if you are interested in bringing better typography to the screens around us.</p>
<p><em>(al)</em></p>
<hr />
<p><small>© Andreas Carlsson &amp; Jaan Orvet for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/757/9">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/757/10">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/the-future-of-screen-typography-is-in-your-hands.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Limiting The Visibility Of WordPress Posts Via Usernames</title>
		<link>http://www.tutsrus.com/limiting-the-visibility-of-wordpress-posts-via-usernames.html</link>
		<comments>http://www.tutsrus.com/limiting-the-visibility-of-wordpress-posts-via-usernames.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 07:22:59 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Limiting]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[Usernames]]></category>
		<category><![CDATA[Visibility]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/limiting-the-visibility-of-wordpress-posts-via-usernames.html</guid>
		<description><![CDATA[&#160;&#160; Controlling who is able to view a post is a simple task once the system is established. Limiting access to certain users has several applications, such as enabling a design studio to distribute artwork to its various clients, or enabling a small school to arrange for homework to be posted online using a cheap [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>Controlling who is able to view a post is a simple task once the system is established. Limiting access to certain users has several applications, such as enabling a design studio to distribute artwork to its various clients, or enabling a small school to arrange for homework to be posted online using a cheap and easy solution.</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-splash1.jpg" alt="lpvuau-splash1" width="500" height="330" /></p>
<p>The easiest method to get this system working is to make the recipients of the information “subscribers” (since they need not be able to post) and the distributors of information “authors” (since they should only be able to edit their own posts). This system eliminates several headaches for the webmaster by <strong>managing who has access to particular posts</strong>. The username would be used to identify who is allowed to view certain posts, since it is unique and, for the most part, constant.</p>
<h3>The Basics</h3>
<h4>What Will You Need?</h4>
<ul>
<li>WordPress 3.1 or later</li>
<li>Members of various roles</li>
<li>The ability to modify your theme&#8217;s files</li>
<li>Basic knowledge of PHP and MySQL</li>
</ul>
<h4>What Is a Username?</h4>
<p>In general, a username is a means by which to identify and verify a user. It is not the only way to identify a user, but remembering a username is easier for the person logging in than having to remember a random user ID. A username can be made unique to an individual, unlike a person&#8217;s name or email address (family members may share the same name, or even the same email address). This ease of use and uniqueness is why usernames are used on most websites that require people to sign up in order to access the website or certain of its features.</p>
<p>To WordPress, a username is means of identifying a user. Paired with a password, a username enables someone to access their profile and, depending on their permissions within WordPress, to access to the administrative pages of the website. A username can be used for many functions in the operation and management of a website, such as karma, prestige, user roles and expulsion.</p>
<p>A WordPress username is unique and impossible for the average user to change. Thus, the system is a potentially reliable means of identifying individuals. This reliability is important for a system in which a post must be visible to only a few people. The permissions of a post should not alter merely because someone has changed their name or email address.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/4"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-1-screenshot.jpg" alt="Screenshot of a WordPress single user page" width="500" height="39" /></a><br /><em>The user page in a WordPress installation. Note that “Usernames cannot be changed.”</em></p>
<h3>Setting Up The Back End</h3>
<p>In order for an author to be able to set permissions for visibility, a method of selecting users must be set up on the post editing page. We could accomplish this by one of several methods, one of the easiest and most efficient of which is to create a meta box (or widget) in the post editing page that allows the author to add custom information, as required by a theme or plugin. This information enables us to tell the theme which members should have viewing rights to particular posts.</p>
<h4>A Basic Custom Meta Box</h4>
<p>Justin Tadlock’s article “<a rel="nofollow" href="http://www.tutsrus.com/goto/How_to_Create_Custom_Post_Meta_Boxes_in_WordPress/755/5" title="How To Create Custom Post Meta Boxes In WordPress">How to Create Custom Post Meta Boxes in WordPress</a>” explains how to create meta boxes, and we’ll reuse that code here.</p>
<p>Let’s assume we’re dealing with a website for a music school named “Smashing Magazine’s Fancy Flautists.” We will use the name <code>smashing_flautist_access</code> in the code for the back end to distinguish it from other custom functions. Justin&#8217;s code is a great starting point for this project, but it needs a little customization for our purpose. Place the following code in your theme&#8217;s <code>functions.php</code>, and modify the various labels according to your project.</p>
<pre class="brush: php">
/* Fire our meta box setup function on the post editor screen. */
add_action( 'load-post.php', 'smashing_post_meta_boxes_setup' );
add_action( 'load-post-new.php', 'smashing_post_meta_boxes_setup' );

/* Meta box setup function. */
function smashing_post_meta_boxes_setup() {

	/* Add meta boxes on the 'add_meta_boxes' hook. */
	add_action( 'add_meta_boxes', 'smashing_add_post_meta_boxes' );

	/* Save post meta on the 'save_post' hook. */
	add_action( 'save_post', 'smashing_flautist_access_save_meta', 10, 2 );
}

/* Create one or more meta boxes to be displayed on the post editor screen. */
function smashing_add_post_meta_boxes() {

	add_meta_box(
		'smashing-flautist-access',			// Unique ID
		esc_html__( 'Post Viewing Permission', 'smashing_flautist' ),		// Title
		'smashing_flautist_access_meta_box',		// Callback function
		'post',					// Admin page (or post type)
		'normal',					// Context
		'default'					// Priority
	);
}

/* Display the post meta box. */
function smashing_flautist_access_meta_box( $object, $box ) { ?>

	&lt;?php wp_nonce_field( basename( __FILE__ ), 'smashing_flautist_access_nonce' ); ?>

	&lt;p>
		&lt;label for="smashing-flautist-access">&lt;?php _e( "Enter the username of the subscriber that you want to view this content.", 'smashing_flautist' ); ?>&lt;/label>
		&lt;br />
		&lt;input class="widefat" type="text" name="smashing-flautist-access" id="smashing-flautist-access" value="&lt;?php echo esc_attr( get_post_meta( $object->ID, 'smashing_flautist_access', true ) ); ?>" size="30" />
	&lt;/p>
&lt;?php }
</pre>
<p>With Justin’s code, modified for this project, we should have a custom meta box that looks like this:</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/6"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-2-screenshot.jpg" alt="Screenshot of a basic meta box" width="500" height="58" /></a><br />
<em>A basic meta box positioned below the post editing box.</em></p>
<h4>Adding Ease to the Selection</h4>
<p>This box can be used as is, and the author would simply input the members who they want to allow to view a post. This would work well if each author had very few usernames to remember; but if the author has long list of usernames to choose from, then a list of members would have to be displayed, and there would have to be a system that allows the authors to choose members from the list. Add the following code to the area just below the original box, just after the closing paragraph tag, to display a list of users with their names, along with radio buttons to grant one of the users access to the current post.</p>
<pre class="brush: php">
&lt;table class="smashing-flautist-access">
&lt;tr align="left">
&lt;th>Username&lt;/th>
&lt;th>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/th>
&lt;th>Visiblity&lt;/th>
&lt;th>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/th>
&lt;th>Name&lt;/th>
&lt;/tr>
&lt;?php
global $post;
	$users = get_users('role=subscriber');
	foreach ($users as $user) {
			$user_info = get_userdata( $user->ID );
			if(get_post_meta( $object->ID, 'smashing_flautist_access', true ) == $user->user_login) $ifchecked = 'checked="checked" ';
			echo "&lt;tr>";
			echo "&lt;td>$user->user_login&lt;/td>&lt;td>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td>";
			echo "&lt;td align=\"center\">&lt;input type=\"radio\" name=\"smashing-flautist-access\" id=\"smashing-flautist-access\" value=\"$user->user_login\" " . $ifchecked ."/>&lt;/td>&lt;td>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td>";
			echo "&lt;td>$user_info->last_name, $user_info->first_name&lt;/td>&lt;td>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td>";
			echo "&lt;/tr>";
			unset($ifchecked);

	} ?>&lt;/table>
</pre>
<p>If everything goes well, you should end up with a box underneath the post editor that looks similar to the image below. The form containing the radio buttons gets a list of users that are listed as subscribers and makes the selection of the student with viewing permissions easy, all without the post&#8217;s author having to remember any usernames.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/7"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-3-screenshot.jpg" alt="Screenshot of a meta box with user information" width="500" height="214" /></a><br /><em>A meta box that contains a method to select the particular name and information of each user.</em></p>
<h4>Saving the List</h4>
<p>Now that we have generated a list that makes it easy for the authors to pick which members they want to be able to view particular posts, we have to create a system to add the list to WordPress’ MySQL database so that we can retrieve it later. We also need a way to tell WordPress to update this list of usernames in case the author decides later to add or remove someone from a particular post&#8217;s list of authorized viewers. The code provided by Justin does excellent work; place his code below in your theme&#8217;s <code>functions.php</code>, just after the function that sets up the custom meta box.</p>
<pre class="brush: php">
/* Save post meta on the 'save_post' hook. */
add_action( 'save_post', 'smashing_flautist_access_save_meta', 10, 2 );

/* Save the meta box's post metadata. */
function smashing_flautist_access_save_meta( $post_id, $post ) {

	/* Make all $wpdb references within this function refer to this variable */
	global $wpdb;

	/* Verify the nonce before proceeding. */
	if ( !isset( $_POST['smashing_flautist_access_nonce'] ) || !wp_verify_nonce( $_POST['smashing_flautist_access_nonce'], basename( __FILE__ ) ) )
		return $post_id;

	/* Get the post type object. */
	$post_type = get_post_type_object( $post->post_type );

	/* Check if the current user has permission to edit the post. */
	if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
		return $post_id;

	/* Get the posted data and sanitize it for use as an HTML class. */
	$new_meta_value = ( isset( $_POST['smashing-flautist-access'] ) ? sanitize_html_class( $_POST['smashing-flautist-access'] ) : '' );

	/* Get the meta key. */
	$meta_key = 'smashing_flautist_access';

	/* Get the meta value of the custom field key. */
	$meta_value = get_post_meta( $post_id, $meta_key, true );

	/* If a new meta value was added and there was no previous value, add it. */
	if ( $new_meta_value &#038;&#038; '' == $meta_value )
		{
		add_post_meta( $post_id, $meta_key, $new_meta_value, true );
		$wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'private' WHERE ID = ".$post_id." AND post_type ='post'"));
		}
	/* If the new meta value does not match the old value, update it. */
	elseif ( $new_meta_value &#038;&#038; $new_meta_value != $meta_value )
		{
		update_post_meta( $post_id, $meta_key, $new_meta_value );
		$wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'private' WHERE ID = ".$post_id." AND post_type ='post'"));
		}
	/* If there is no new meta value but an old value exists, delete it. */
	elseif ( '' == $new_meta_value &#038;&#038; $meta_value )
		{
		delete_post_meta( $post_id, $meta_key, $meta_value );
		$wpdb->query($wpdb->prepare("UPDATE $wpdb->posts SET post_status = 'public' WHERE ID = ".$post_id." AND post_type ='post'"));
		}
}
</pre>
<p>The three MySQL queries are in place to prevent unauthorized users from viewing protected posts and to hide the posts from the RSS feeds. The first query runs only when new data populates the previously empty custom field, while the second query runs only when the data in the custom field has changed. The third query runs only if the custom field is emptied, and it sets the post’s visibility back to “Public.” All three are protected from SQL injection attacks by using <code>$wpdb->prepare()</code> to validate the data entered into the username form field.</p>
<p>If you don’t like that WordPress precedes the post’s title with the word “Private,” then add the following code to your theme&#8217;s <code>functions.php</code> file. This custom function is called when your theme would display a post&#8217;s title; it finds any instance of the words “Protected” or “Private” at the beginning of the title and removes them. In the core of WordPress’ programming, the function <code>get_the_title()</code> adds those words if a post&#8217;s visibility is restricted and the person viewing is not an administrator. What the following code does is send a message to the action that <code>get_the_title()</code> hooks into, telling it to remove the terms “Protected: ” and “Private: ” from the title. So, you can set a post&#8217;s title to begin with either term, and the title will not be altered; this code only affects WordPress&#8217; ability to add to your title.</p>
<pre class="brush: php">
function smashing_title_trim($title) {
	$title = attribute_escape($title);
	$needles = array(__('Protected: '),__('Private: '));
	$title = str_replace($needles,'',$title);
	return $title;
}
add_filter('protected_title_format','smashing_title_trim');
add_filter('private_title_format','smashing_title_trim');
</pre>
<p>To allow users at the subscriber level to see private posts, you have to give them that capability. As it happens, some of the code we’ll be using later frees us from having to worry about users at the subscriber level seeing the posts of others.</p>
<pre class="brush: php">
$subRole = get_role( 'subscriber' );
$subRole->add_cap( 'read_private_posts' );
</pre>
<p>You can also grant users at the subscriber level permission to view private pages, in case you want a dedicated page of information that subscribers should know.</p>
<pre class="brush: php">
$subRole->add_cap( 'read_private_pages' );
</pre>
<h3>Setting Up The Front End</h3>
<p>Now that we have a way to add members to the list of people who can view a particular post, we have to modify our theme to use this data, and to actually control the visibility of each post based on this list. First, we need a way to get the username of the person who can view a post. Secondly, we would compare the username of the member with viewing permissions to the user who is currently logged in. Finally, we would make the theme display either the post in the loop or an error message (or perhaps nothing at all).</p>
<p>Place this code just after <a rel="nofollow" href="http://www.tutsrus.com/goto/The_Loop/755/8" title="The Loop">The Loop</a> starts. It goes in <code>single.php</code>, <code>category.php</code> and <code>index.php</code> if you will be displaying posts on the home page.</p>
<pre class="brush: php">
&lt;?php
/* Get the post's acceptable viewer. */
		$flautist_access = get_post_meta($post->ID, 'smashing_flautist_access', true );
/* Get the post's current viewer, if he or she is logged in. */
		if(is_user_logged_in()) {$current_flautist = $current_user->user_login;}
/* See if the acceptable viewer and the current viewer are the same */
		if($flautist_access == $current_flautist || current_user_can('author') || current_user_can('editor') || current_user_can('administrator'))
			{echo ''; ?>
</pre>
<p>Place this code just before the loop ends. Here is where you can show an error message telling the user that they may not view this post. Or you could leave this code as is to make it appear as though the current visitor is not missing anything.</p>
<pre class="brush: php">
&lt;?php } else { echo ''; } ?>
</pre>
<p>This is what a hidden post looks like to the public or to a user who is not logged in. They would see what appears to be an error message and are redirected away from the post.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/9"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-4-screenshot.jpg" alt="What the public sees when trying to view a protected post" width="500" /></a><br /><em>If a person is not logged in and tries to view a restricted post, they would get an error message.</em></p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/10"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-5-screenshot.jpg" width="500" alt="What an unauthorized user sees when trying to view a protected post" /></a><br /><em>If a user is logged in but not allowed to view a restricted post, they would see either nothing or an error message specific to members.</em></p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/755/11"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/lpvuau-6-screenshot.jpg" width="500" alt="What an authorized user sees when trying to view a protected post" /></a><br />
<em>If a member is logged in and authorized to view a protected post, then they would see the post itself.</em></p>
<h3>Conclusion</h3>
<p>Being able to control who can view individual posts is a useful feature with a wide variety of applications. Third-party software can natively do this, but WordPress is widely supported and documented, which means that any security holes that might allow unauthorized users to view restricted posts would be shut in a future update. Plus, it allows you to run an actual blog next to posts with limited visibility. This system could be used by administrators to distribute personalized content, by professionals to send files to clients, or by bloggers to restrict the visibility of certain posts to certain members.</p>
<p>Enabling an author to control who can view their posts can help them tailor the blog&#8217;s content to the needs or tastes of certain users. Ultimately, you will have to factor in the <strong>purpose and content of your website when deciding whether to use this method</strong>. It’s not for everyone, but it suit the needs of owners of small websites who want to deliver certain content to certain people.</p>
<h4>Resources</h4>
<ul>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Function_Reference_add_meta_box/755/12">Function Reference/add meta box</a>,” WordPress Codex</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Function_Reference_get_users/755/13">Function Reference/get users</a>,” WordPress Codex</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Roles_and_Capabilities/755/14">Roles and Capabilities</a>,” WordPress Codex</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Class_Reference_wpdb/755/15">Class Reference/wpdb</a>,” WordPress Codex</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/How_To_Create_Custom_Post_Meta_Boxes_In_WordPress/755/16">How To Create Custom Post Meta Boxes In WordPress</a>,” Justin Tadlock</li>
</ul>
<p><em>(al)</em></p>
<hr />
<p><small>© Chris Ellison for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/755/17">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/755/18">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/limiting-the-visibility-of-wordpress-posts-via-usernames.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The UX Research Plan That Stakeholders Love</title>
		<link>http://www.tutsrus.com/the-ux-research-plan-that-stakeholders-love.html</link>
		<comments>http://www.tutsrus.com/the-ux-research-plan-that-stakeholders-love.html#comments</comments>
		<pubDate>Fri, 27 Jan 2012 04:23:21 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Love]]></category>
		<category><![CDATA[Plan]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Stakeholders]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/the-ux-research-plan-that-stakeholders-love.html</guid>
		<description><![CDATA[&#160;&#160; UX practitioners, both consultants and in house, sometimes conduct research. Be it usability testing or user research with a generative goal, research requires planning. To make sure product managers, developers, marketers and executives (let’s call them stakeholders) act on UX research results, planning must be crystal clear, collaborative, fast and digestible. Long plans or [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/753/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/753/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/753/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>UX practitioners, both consultants and in house, sometimes conduct research. Be it usability testing or user research with a generative goal, research requires planning. To make sure product managers, developers, marketers and executives (let’s call them stakeholders) act on UX research results, planning must be crystal clear, collaborative, fast and digestible. <strong>Long plans or no plans don’t work for people.</strong> You must be able to boil a UX research plan down to one page. If you can’t or won’t, then you won’t get buy-in for the research and its results.</p>
<p>This article addresses one key aspect of planning UX research: the one-page plan document. Before we get to that, we’ll briefly discuss the benefits of research planning and identify the audience of a research planning document.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/753/4"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/heart.jpg" alt="Blueprint Heart" title="Blueprint Heart" width="500" height="350" class="alignnone size-full wp-image-110277" /></a><br />
<em>(Image: <a rel="nofollow" href="http://www.tutsrus.com/goto/Patrick_Hoesly/753/5">Patrick Hoesly</a>)</em></p>
<p>A word about stakeholders. A stakeholder in the UX world is a code name for the people who UX practitioners work with. These are our clients, whether internal or external to our organization. These are people who need to believe in what we do, act on research results, and fund and sponsor future research. We all have a stake in product development. They have a stake in UX research.</p>
<h3>The Benefits Of Research Planning</h3>
<p>Very generally speaking, UX research can answer two types of questions:</p>
<ol>
<li><strong>What’s useful?</strong><br />
What do people need? Who is the target audience?</li>
<li><strong>What’s usable?</strong><br />
Does the design work for people, and how it can be improved?</li>
</ol>
<p>Dozens of research methodologies could be implemented to answer these and more specific questions, and it is up to designers, researchers and their teams to decide what works best for them and when is the right time to answer their questions.</p>
<p>Here are the benefits of planning UX research:</p>
<ul>
<li><strong>Get a better feel of stakeholders.</strong><br />
A written plan helps you identify what works and doesn’t work for people, and what questions they are trying to answer.</li>
<li><strong>Engage stakeholders.</strong><br />
A study plan ensures they are properly involved with the study and its results. If there’s no written plan, then there’s a greater chance that stakeholders won’t feel engaged.</li>
<li><strong>Writing things down helps you.</strong><br />
When you put things in writing, they look very different than how you imagined them when they were just thoughts in your head. Always have a written study plan, even if you don’t share it with anyone else.</li>
</ul>
<p>Now, let’s quickly identify the target audience for the research planning document.</p>
<h3>Who Are You Planning For? Who Are The Stakeholders?</h3>
<p>As with every product or service, the best offering comes from carefully identifying the target audience, their needs and their wants. Different UX research stakeholders are interested in different aspects of a research plan:</p>
<ul>
<li><strong>Product managers and software engineers</strong> are mostly interested in the study’s goal, research questions and schedule. In some cases, they are also interested in the criteria for participants. These stakeholders are usually interested in goals and questions because these determine the content of the study and its focus. They are interested in the schedule to make sure it enables them to make timely design, business and development decisions. Criteria for participants interest them when the product targets a very specific demographic and they want to make sure participants are representative of that demographic.</li>
<li><strong>Managers and executives</strong> are probably interested in the study’s goal and the overall cost of the study, because they are likely sponsoring the study. Usually, their bandwidth does not allow them more than that.</li>
<li><strong>You!</strong> The plan is mostly for you. As soon as you put your thoughts in writing, something happens, and you find holes in them. These holes help you improve the plan. A written plan also helps you focus and better prepare for the study. The fact of the matter is that if you can’t boil your plan down to a page, you probably don’t really understand it.</li>
</ul>
<p>Now that we’ve discussed why a planning document is important and who it is for, let’s get to the nitty gritty of the document.</p>
<h3>The Plan That Stakeholders Love: The One-Pager</h3>
<p>The users of a research plan love brevity and appreciate succinct definitions of what will happen, why, when and with whom. Here are the sections that go in a one-page research plan:</p>
<ul>
<li><strong>Title</strong><br />
The title should combine the thing you’re studying and the methodology; for example, “Monster.com field study” or “XYZ Phone data-entry usability test.” Sometimes mentioning the target audience of the study is also appropriate; for example, “Whitehouse.com news page interviews with senior citizens.”</li>
<li><strong>Author and stakeholders</strong><br />
State your full name, title and email address on one line. After you get the stakeholders’ buy-in for the plan, add their details as well &mdash; the research belongs to everyone now.</li>
<li><strong>Date</strong><br />
Update it whenever the plan is updated.</li>
<li><strong>Background</strong><br />
Describe what led to this study. Discuss the recent history of the project. Be brief, no more than five lines.</li>
<li><strong>Goals</strong><br />
Briefly state the high-level reason (or reasons) for conducting this study. Try to phrase it in one sentence. If that wouldn’t make sense, create a numbered list of very short goal statements. If you have more than three to four goals, you are either aiming too high (meaning you have too many goals) or repeating yourself.</li>
<li><strong>Research questions</strong><br />
These are the specifics, the core of your plan. Provide a numbered list of questions that you plan to answer during the study. It is extremely important that your stakeholders understand that you will not necessarily be asking the study participants these questions. As a rule of thumb, have no more than seven to ten questions, preferably around five. Later on, you will construct your study script to answer these questions. An effective way to think about research questions is to imagine that they are the headings in the study’s summary.</li>
<li><strong>Methodology</strong><br />
In an academic environment, this section has one primary goal: to provide as many details as other researchers need in order to repeat the exact same study. In practice, the goal of the methodology section is to briefly inform the stakeholders of what will happen, for how long and where.</li>
<li><strong>Participants</strong><br />
Provide a list of the primary characteristics of the people you will be recruiting to participate in the study. Have a good reason for each and every characteristic. If you have two participant groups, describe both groups’ characteristics in lists or in a table. Append a draft form that you’ll use to screen participants.</li>
<li><strong>Schedule</strong><br />
Inform stakeholders of at least three important dates: when recruiting starts, when the study will take place, and when they can expect results. Large research projects require more scheduling details. For example, if the study involves travel to another city or country, more dates might be required for on-site preparation and meetings or for analysis workshops.</li>
<li><strong>Script placeholder</strong><br />
When a full study script is ready, it will appear under this title. Until then, all you need is a heading with a “TBD” indication.</li>
</ul>
<blockquote><h3>A Sample UX Research Plan</h3>
<p><strong>XYZ Phone Data-Entry Usability Test</strong></p>
<p>By John Smith-Kline, Usability Researcher, jskline@example.com</p>
<p>Stakeholders: Wanda Verdi (PM), Sam Crouch (Lead Engineer)</p>
<p>Last updated: 13 January 2012</p>
<p><strong>Background</strong><br />
Since January 2009, when the XYZ Phone was introduced to the world, particularly after its market release, journalists, bloggers, industry experts, other stakeholders and customers have privately and publicly expressed negative opinions about the XYZ Phone’s keyboard. These views suggest that the keyboard is hard to use and that it imposes a poor experience on customers. Some have claimed this as the main reason why the XYZ Phone will not succeed among business users. Over the years, several improvements have been made to data entry (such as using horizontal keyboards for most features), to no avail.</p>
<p><strong>Goals</strong><br />
Identify the strengths and weaknesses of data entry on the XYZ Phone, and provide opportunities for improvement.</p>
<p><strong>Research questions</strong></p>
<ol>
<li>How do people enter data on the XYZ Phone?</li>
<li>What is the learning curve of new XYZ Phone users when they enter data?</li>
<li>What are the most common errors users make when entering data?</li>
</ol>
<p><strong>Methodology</strong><br />
A usability study will be held in our lab with 20 participants. Each participant session will last 60 minutes and will include a short briefing, an interview, a task performance with an XYZ Phone and a debriefing. Among the tasks: enter an email subject heading, compose a long email, check news updates on CNN’s website, create a calendar event and more.</p>
<p><strong>Participants</strong><br />
These are the primary characteristics of the study’s participants:</p>
<ul>
<li>Business user,</li>
<li>Age 22 to 55,</li>
<li>Never used an XYZ Phone,</li>
<li>Expressed interest in learning more about or purchasing an XYZ Phone,</li>
<li>Uses the Web at least 10 hours a week.</li>
</ul>
<p>[Link to a draft screener]</p>
<p><strong>Schedule</strong></p>
<ul>
<li>Recruiting: begins on November 12</li>
<li>Study day: November 22</li>
<li>Results delivery: December 2</li>
</ul>
<p><strong>Script</strong><br />
TBD</p>
</blockquote>
<h3>Recap</h3>
<p>A short plan that you and your stakeholders prepare together is key to a <strong>successful start</strong> of a UX research project.</p>
<ul>
<li>Boil down your collective knowledge, agreements and understanding of what will happen, why, with whom and when.</li>
<li>Set the right expectations among stakeholders.</li>
<li>Try to keep the plan to one page.</li>
<li>Secure buy-in for the UX research by making it a team effort.</li>
<li>The core of the plan is the list of questions you are trying to answer. Choose the right ones.</li>
</ul>
<p>Happy planning!</p>
<p><em>(al) (fi) (il)</em></p>
<hr />
<p><small>© Tomer Sharon for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/753/6">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/753/7">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/the-ux-research-plan-that-stakeholders-love.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Successful Products Teach Us About Web Design</title>
		<link>http://www.tutsrus.com/what-successful-products-teach-us-about-web-design.html</link>
		<comments>http://www.tutsrus.com/what-successful-products-teach-us-about-web-design.html#comments</comments>
		<pubDate>Wed, 25 Jan 2012 01:23:49 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[About]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Successful]]></category>
		<category><![CDATA[Teach]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/what-successful-products-teach-us-about-web-design.html</guid>
		<description><![CDATA[&#160;&#160; Web design is a craft that is constantly evolving and yet also sometimes sabotaged. The moment a design is released, a new version is born. In the beginning, like a baby, it seems vulnerable and weak, but in time it grows up and becomes self-sufficient. Redesigning a website for its own sake doesn’t prove [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>Web design is a craft that is constantly evolving and yet also sometimes sabotaged. The moment a design is released, a new version is born. In the beginning, like a baby, it seems vulnerable and weak, but in time it grows up and becomes self-sufficient. Redesigning a website for its own sake doesn’t prove anything; quite the contrary, it reveals a lack of effectiveness on the part of the designer.</p>
<p>Product design is a craft in which new versions come to life with increasing difficulty. We can learn a thing or two from it when designing for the Web. First, let’s look at some examples.</p>
<ul>
<li>How many designs for the iPhone has Apple released since 2007? The answer is one, with only two tweaks. How many Motorola phones for Android can you find on the market right now? Thirteen, not counting the old models.</li>
<li>How many designs of the Mini Cooper do you know of? Just that one brave design that has continually evolved since 1959! How many Toyota Corolla models can you count since 1967? Nineteen.</li>
<li>Zippo lighters have retained their appeal since 1933!</li>
</ul>
<p>Forget marketing, technical specs and hardware. Products such as the iPhone, the Mini Cooper and the Zippo lighter have become wildly successful because of their outstanding design. Such massive success springs from three sources: <strong>the designer, sticking to the scope and iteration</strong>. These aspects can help us in Web design, too. In this article, we’ll look at what we can learn from successful product design.</p>
<h3>The Ability Of The Designer</h3>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/4" title="Warmth by cell105, on Flickr"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/zippo.jpg" alt="Zippo" title="Zippo" width="500" height="350" class="alignnone size-full wp-image-110453" /></a><br />
<em>Zippo lighters have remained elegant and reliable through time. (Image: <a rel="nofollow" href="http://www.tutsrus.com/goto/cell105/750/5">cell105</a>)</em></p>
<p>Do you trust your instincts? You should! Because when you see a design, you judge its attractiveness in <a rel="nofollow" href="http://www.tutsrus.com/goto/less_than_a_second/750/6" title="Read the article: Visual Decision Making">less than a second</a>. We all know what we like, even if we can’t always explain it. It’s about aesthetics. Aesthetics is a child of harmony, and harmony is not magic. It can be achieved when the designer embraces certain principles, such as balance, contrast and dominance. Becoming a fantastic designer, though, requires more than pure technique. It requires that you see the context and make decisions accordingly.</p>
<p>A couple of comments by <a rel="nofollow" href="http://www.tutsrus.com/goto/Karim_Rashid/750/7" title="The offcial website of Karim Rashid">Karim Rashid</a>, featured in the documentary <a rel="nofollow" href="http://www.tutsrus.com/goto/Objectified/750/8" title="Learn more about the documentary">Objectified</a> are fascinating and revealing. First, Rashid talks about a stereo that he loved as a teenager:</p>
<blockquote>
<p>It was a white kind of bubble stereo with these two bubble white speakers. And it was probably very inexpensive &mdash; it was a real democratic product, and it had a turntable and the whole thing built in. It was a beautiful thing. Looking back and thinking why it was a beautiful thing, it was very self-contained, and the message was very strong and very simple, and at the same time it was very human. There was a quality about it.</p>
</blockquote>
<p>See? <strong>A democratic, self-contained, human, simple thing with a strong message.</strong></p>
<p>Here is Rashid again on thinking outside the box:</p>
<blockquote>
<p>Why do we feel like we need to keep revisiting the archetype over and over and over again? Digital cameras, for example, [whose] format, proportion, the fact that they’re a horizontal rectangle, are a model of the original silver film camera. So, in turn it’s the film that defined the shape of the camera. All of a sudden, our digital cameras have no film. So, why on earth do we have the same shape we have?</p>
</blockquote>
<p>How is it that Karim Rashid extracts such clear conclusions? What hinders us from doing the same? And not just in theory. Let’s do it for real. The next time you are about to make an important design decision, stop and ask yourself, What would I do if I were <a rel="nofollow" href="http://www.tutsrus.com/goto/Dieter_Rams/750/9">Dieter Rams</a> or <a rel="nofollow" href="http://www.tutsrus.com/goto/Jonathan_Ive/750/10">Jonathan Ive</a> or &mdash; since you’re a Web designer &mdash; <a rel="nofollow" href="http://www.tutsrus.com/goto/Douglas_Bowman/750/11">Douglas Bowman</a>?</p>
<p>Asking this kind of question briefly expands our skills of judgment and makes us ultra-alert. Doing it regularly can drastically heighten our perception, values and actions as designers. Is this enough? No, but it is the beginning of a beautiful relationship with design.</p>
<p>And the Zippo lighter? It looks both friendly and solid, a comrade that needs your attention in order to keep working. Ιt has its own scent; it’s windproof; and above all, the sound when you flip open the lid is distinctive. And if you’ve owned a Zippo for a while, you must have noticed that it learns how you touch it when you light it.</p>
<p>All together, a Zippo is a product of craft &mdash; just as our designs for the Web should be. This is as simple and as hard as it sounds.</p>
<h3>Focusing On The Scope</h3>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/12" title="MiniBob says thanks for the numbers by mollybob, on Flickr"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/mini.jpg" alt="Mini Cooper" title="Mini Cooper" width="500" height="350" class="alignnone size-full wp-image-110454" /></a><br />
<em>Once a Mini, always a Mini. (Image: <a rel="nofollow" href="http://www.tutsrus.com/goto/Shelley_Gibb/750/13">Shelley Gibb</a>)</em></p>
<p>Let’s go back to cars for a moment.</p>
<p>As noted earlier, the Corolla models of Toyota are nothing spectacular in their design. But what is a Toyota car known for? It’s a reliable, relatively cheap family car. Is Toyota successful? You bet!</p>
<p>What’s a Mini Cooper? It’s a beautiful small car that appeals mostly to young people. Is it successful? Of course, it is.</p>
<p>Cars are complicated machines. They do more than transport people. If a Toyota were as fancy as the Mini, then it wouldn’t be affordable. If a Mini were reimagined as a family car, then it would lose some of its charm. Oversimplification? Perhaps. But you get the point.</p>
<p>There’s a scope behind each product. As long as the scope is met, the product will be effective and remain on the market. The same happens in Web design.</p>
<p>Consider a metaphor. The closest physical product to a website is a periodical. Take <a rel="nofollow" href="http://www.tutsrus.com/goto/Wired/750/14">Wired</a> magazine (the physical magazine, that is, not the website or iPad app, which have slightly different characteristics). I’ve been reading it for more than 10 years, and if I had to describe it succinctly I would say “forward-thinking and cool.” Wired reinvents itself every once in a while and persistently fine-tunes the design, but the scope remains the same. Excellent design and illustration, superbly written long articles and a ton of clever short ones serve the main purpose: to introduce its audience to a new era. Audiences change over time, and new eras dawn, but Wired remains. Why? Because it has always <strong>respected a higher purpose</strong>. Sure, many magazines are well designed, and enough of them have great content. But you rarely find one with a unique identity, an identity that can’t be easily copied.</p>
<p>Your probably less complicated Web project needs to perform similarly. You must define the objectives. The design must promote them. Good content should prevail. You know the rules; make sure to follow them. Moreover, know where to stop. If it’s a new idea with vague potential or yet another feature or a last-minute change, just say no.</p>
<p>Websites are like breathing organisms. They evolve; new features are added and others are dropped, but they never stay still. Or at least they shouldn’t. Thus, while a promising fresh idea shouldn’t be discarded, it should be held until the next major update.</p>
<p>Big, ambitious, well-funded websites often seem to lose focus. Their owners try to satisfy <em>all</em> requests. This is a recipe for disaster, because it creates unnecessary friction between everyone working on the project. It dulls the impact of the best features and, above all, the scope. Tension fills the air. The worst days are ahead.</p>
<p>Such practices have led to the infamous concept of <a rel="nofollow" href="http://www.tutsrus.com/goto/design_by_committee/750/15" title="Read more about the Design by committee term">design by committee</a>. Simply put, if everything is important, then nothing is important.</p>
<h3>Iterations</h3>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/750/16" title="apple store regent street london by jonrawlinson, on Flickr"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/apple.jpg" alt="Apple Store, London" title="Apple Store, London" width="500" height="350" class="alignnone size-full wp-image-110455" /></a><br />
<em>Is what Apple does magic? I think not. (Image: <a rel="nofollow" href="http://www.tutsrus.com/goto/Jon_Rawlinson/750/17">Jon Rawlinson</a>)</em></p>
<p>Let’s talk Apple. Apple’s iconic design and its founder’s exceptional way of thinking have been overanalyzed lately.</p>
<p>No matter how many words we write about Steve Jobs, we still seem to explain away his success as being a kind of magic. But that’s plainly wrong. People are inclined towards the least complicated, least demanding explanation to a conundrum. It is written in our genes. We think more deeply only when there’s a serious reason to do so. (But I digress.)</p>
<p>So, let’s do away with what Adrian Slywotzky refers to as the <a rel="nofollow" href="http://www.tutsrus.com/goto/_Eureka_myth/750/18" title="Steve Jobs and the Eureka Myth">“Eureka” myth</a>:</p>
<blockquote>
<p>Apple would love us to believe it’s all “Eureka.” But Apple produces 10 pixel-perfect prototypes for each feature. They compete &mdash; and are winnowed down to three, then one, resulting in a highly evolved winner. Because Apple knows the more you compete inside, the less you’ll have to compete outside.</p>
</blockquote>
<p>If Apple iterates so painstakingly, why shouldn’t we?</p>
<p>Inspiration for a great design roars when it comes. And implementing the idea brings a rush of enthusiasm. And our eyes sparkle when we anticipate outstanding success. And yet it rarely works that way.</p>
<p>Why? Because ideas and their execution are <strong>seldom free from flaws</strong>. You know the old cliché, “There is always room for improvement.” It still stands. There <em>is</em> always room for improvement, and accepting that your idea is the one that needs improvement takes courage. Demolishing your next great product in order to make it better takes nerve and self-discipline. But it also makes you wiser, and can dramatically improve the product.</p>
<p>Iterating extensively and in detail doesn’t depend on a certain type of project or a certain budget. It’s a tricky thing, because it forces us to confront our imperfect nature as human beings. To embrace our inner flaws is to walk the road of truth and maturity, silently, without making a show that we’re doing it.</p>
<p>This weight might feel a little heavy on our shoulders. If it does or if you dismiss Apple’s success, consider what Oliver Reichenstein, head of <a rel="nofollow" href="http://www.tutsrus.com/goto/Information_Architects/750/19">Information Architects</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/says_about_the_iterations/750/20" title="Read the article The best way to climb in the App Store charts? No, it's not lowering the price.">says about the iterations</a> that his team makes in each development phase (this quote appears in the comments section):</p>
<blockquote>
<p>It’s often almost impossible to explain easily why things look like they do, because we went through so many iterations, that it feels like explaining a chess game with all the ifs and whats.</p>
</blockquote>
<p>The same goes when designing for the Web: there’s no excuse to avoid making as many iterations as we can.</p>
<h3>Final Thoughts</h3>
<p>When successful designers are asked where they seek inspiration, they often say something like, “Everywhere &mdash; I go for a walk and observe the world around me.” And it’s true. But what they don’t often say is that they also know what to observe and how to ignore the noise of the world.</p>
<p>There are many beautiful well-functioning products around us. <strong>Each has a story to tell</strong>, a story that is strongly attached to its design, its scope and the iterations that the designer took before releasing it to the world.</p>
<p>Take the Dyson vacuum cleaner. Its design is at least impressive, and its scope is clear (to suck dirt better than other cleaners and, thus, to make your environment healthier), and it took hundreds of prototypes for the designers to figure out how to make it work without a bag. The first Dyson vacuum cleaner was sold in 1970! To explore further and find similar products, just search for our three key words: “design scope iteration.”</p>
<p>Creating a lasting website is no easier than creating a lasting vacuum cleaner. But neither is it impossible. It requires a holistic approach, focus and maturity, just like the products we’ve looked at here. Not to mention, it requires a <a rel="nofollow" href="http://www.tutsrus.com/goto/paradigm_shift/750/21" title="Read about Paradigm shift in Wikipedia">paradigm shift</a>.</p>
<p><em>(al)</em></p>
<hr />
<p><small>© Yiannis Konstantakopoulos for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/750/22">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/750/23">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/what-successful-products-teach-us-about-web-design.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Call For International Communities</title>
		<link>http://www.tutsrus.com/open-call-for-international-communities.html</link>
		<comments>http://www.tutsrus.com/open-call-for-international-communities.html#comments</comments>
		<pubDate>Sun, 22 Jan 2012 22:24:51 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Call]]></category>
		<category><![CDATA[Communities]]></category>
		<category><![CDATA[International]]></category>
		<category><![CDATA[Open]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/open-call-for-international-communities.html</guid>
		<description><![CDATA[&#160;&#160; At Smashing Magazine, we are big proponents of diversity and sharing. We encourage designers and developers worldwide to step up and use Smashing Magazine as a platform to share their opinions, ideas or techniques. Our editorial process is quite evolved, yet we are very open to users&#8217; suggestions. In fact, if an author has [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/747/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/747/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/747/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>At Smashing Magazine, we are big proponents of <strong>diversity and sharing</strong>. We encourage designers and developers worldwide to step up and use Smashing Magazine as a platform to share their opinions, ideas or techniques. Our editorial process is quite evolved, yet we are very open to users&#8217; suggestions. In fact, if an author has something to say, we try to help them collect their thoughts, strengthen their points and sharpen their language.</p>
<p>As it is, Smashing Magazine is in English; we communicate in English in our articles, through our comments, in social channels &mdash; everywhere. We have a quite good overview of what&#8217;s happening in the Web design scene among creative professionals where English is prevalent. When it comes to non-English Web design communities, we have almost no idea what&#8217;s going on there… it&#8217;s as if they never existed.</p>
<p>Last year, I was lucky to have <a rel="nofollow" href="http://www.tutsrus.com/goto/attended_quite_a_few_conferences/747/4">attended quite a few conferences</a> across Europe. I wanted to get a better understanding of what&#8217;s going on in those countries, how evolved their industry is and, more importantly, what techniques and tools they have developed and use in their work. Among all the small talks and casual discussions I had, I was impressed by the creative energy of designs in Czech Republic, by the pursuit of optimization of Russian projects, by the attention to professionalism in Norway and by the abundant democratic design culture of Swedes. Before I spoke to all those people and had a look at their projects, I had no idea about all the fantastic small projects and techniques they developed.</p>
<p><img src="http://media.smashingmagazine.com/wp-content/uploads/2010/07/conf2.jpg" width="500" height="373" alt="Future of Web Design Conference in London, 2010" /><br /><em>Web design conferences offer fantastic opportunities for building connections in our community. Also, they are great for exploring innovative techniques and recent developments of our craft. <a rel="nofollow" href="http://www.tutsrus.com/goto/Image_credit/747/5">Image credit</a></em></p>
<p>In fact, it appeared to me that there is <em>so much</em> going on in these non-English speaking communities, yet many of them are closed and separate, almost inaccessible to the rest of the world. For instance, in Russia there are fantastic design blogs like <a rel="nofollow" href="http://www.tutsrus.com/goto/Habrahabr_ru/747/6">Habrahabr.ru</a> where creative professionals share their thoughts, techniques and tools, yet because the blog is in Russian, it&#8217;s invisible for most creative professionals worldwide. Fortunately, Russian is my native language so I can read and write in Russian, but not everybody is as lucky as I am.</p>
<p>In my discussions with <a rel="nofollow" href="http://www.tutsrus.com/goto/Christian_Heilmann/747/7">Christian Heilmann</a> who has been traveling around the world much more than I have, the same holds true for many countries in Eastern Europe, Asia and South America, partly because of the language barrier.</p>
<p>We can change that. We <strong>invite all professionals from all parts of the world to get in touch with us</strong>. If you have been writing in Russian, Czech or any other language, but have a good command of English, we&#8217;d be more than happy to learn from your insights and share your expertise, techniques or tools with our worldwide audience. Our proofreaders will be more than happy to brush up your English writing, so it surely isn&#8217;t a reason not to write.</p>
<h3>We&#8217;d Love To Learn From You!</h3>
<p>We are always happy to support designers and developers who contribute to our fantastic Web design community and present tools, goodies, templates, articles or anything else for everybody to use and learn from. You could write about:</p>
<ul>
<li>case-studies from your work, the decisions made and decisions rejected,</li>
<li>front-end / back-end techniques you&#8217;ve developed or implemented in your projects,</li>
<li>expert advice for beginners or professionals that you&#8217;ve gathered over years of professional work,</li>
<li>the cultural differences that designers worldwide should be aware of when working on projects targeted at your country,</li>
<li>open source projects, tools and other resources you&#8217;ve released or contributed to.</li>
</ul>
<p>Of course, we will publish quality material and you will get paid, too. Even if you don&#8217;t want to write an article, we will do our best to support you on <a rel="nofollow" href="http://www.tutsrus.com/goto/Twitter/747/8">Twitter</a>, <a rel="nofollow" href="http://www.tutsrus.com/goto/Facebook/747/9">Facebook</a>, or in <a rel="nofollow" href="http://www.tutsrus.com/goto/our_email_newsletter/747/10">our email newsletter</a>. And if you don&#8217;t feel that Smashing Magazine fits you for one reason or another, feel free to go ahead and contact other publications, we&#8217;re perfectly fine with that.</p>
<h3>Spread the word!</h3>
<p>If you don&#8217;t have time to write in English, here is what you can do to help:</p>
<ul>
<li>If writing isn&#8217;t for you, draw the attention of your colleagues to this post and encourage them to share their insights,</li>
<li>Translate this article into your native language and publish it in popular design blogs or magazines in your country,</li>
<li>Bring up the topic during your next meetup, bar-camp or mini-conference.</li>
</ul>
<h3>Let&#8217;s Get In Touch!</h3>
<p>Please drop us an email at <a href="mailto:&#105;&#100;&#101;&#097;&#115;&#064;&#115;&#109;&#097;&#115;&#104;&#105;&#110;&#103;&#109;&#097;&#103;&#097;&#122;&#105;&#110;&#101;&#046;&#099;&#111;&#109;">&#105;&#100;&#101;&#097;&#115;&#064;&#115;&#109;&#097;&#115;&#104;&#105;&#110;&#103;&#109;&#097;&#103;&#097;&#122;&#105;&#110;&#101;&#046;&#099;&#111;&#109;</a> and tell us a bit about yourself, your expertise and the projects you&#8217;ve contributed to. Share your techniques and your thoughts! And if you&#8217;re organizing a social event, please invite foreign speakers and attendees to join and encourage them to share their expertise as well.</p>
<p>I sincerely believe that we can all benefit from diversity, and we can enrich our toolboxes, workflows and perhaps even our mindset with new viewpoints and insights. We are looking forward to your emails!</p>
<p><em>(jvb)</em></p>
<hr />
<p><small>© Vitaly Friedman for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/747/12">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/747/13">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/open-call-for-international-communities.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Integrate Facebook, Twitter And Google+ In WordPress</title>
		<link>http://www.tutsrus.com/how-to-integrate-facebook-twitter-and-google-in-wordpress.html</link>
		<comments>http://www.tutsrus.com/how-to-integrate-facebook-twitter-and-google-in-wordpress.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 19:23:46 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Google+]]></category>
		<category><![CDATA[Integrate]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/how-to-integrate-facebook-twitter-and-google-in-wordpress.html</guid>
		<description><![CDATA[&#160;&#160; Integrating social media services in your website design is vital if you want to make it easy for readers to share your content. While some users are happy with the social media buttons that come built into their design template, the majority of WordPress users install a plugin to automatically embed sharing links on [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>Integrating social media services in your website design is vital if you want to make it easy for readers to share your content. While some users are happy with the social media buttons that come built into their design template, the majority of WordPress users install a plugin to automatically embed sharing links on their pages. Many of you will find that a plugin does exactly what you need; others not so much. Some are poorly coded, and most include services that you just don’t need. And while some great social media plugins are out there, they don’t integrate with every WordPress design.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/4"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/social-media-icons.jpg" alt="The Big Three: Twitter, Facebook, and Google+" width="550" /></a></p>
<p>If you aren’t comfortable editing your WordPress templates, a plugin is probably the best solution. If you are comfortable making a few edits to your theme, then consider manually integrating social media so that you have more control over what services appear on your website.</p>
<p>Today, we’ll show you how to manually integrate the three most popular social media services on your website: Twitter, Facebook and Google+. First, you’ll learn how to integrate Facebook comments on your WordPress website, to make it easier for readers to discuss your posts. Then, we’ll show you the most common ways to display your latest tweets in the sidebar, which should encourage more people to follow you on Twitter. Finally, we’ll show you how to add sharing buttons for all three social media services to your home page, posts and pages.</p>
<p>Please make sure to back up all of your template files before making any changes, so that you can revert back if something goes wrong. Testing your changes in a non-production area first would also be prudent.</p>
<h3>Integrate Facebook Comments On Your Website</h3>
<p>Because most people are signed into Facebook when they browse the Web, enabling Facebook comments on your website is a great way to encourage people to leave comments. It also curbs spam. While many solutions purport to reduce spam comments on WordPress, most are either ineffective or frustrate visitors by blocking legitimate comments.</p>
<p>Feature-rich commenting solutions such as <a rel="nofollow" title="IntenseDebate" href="http://www.tutsrus.com/goto/IntenseDebate/745/5">IntenseDebate</a> and <a rel="nofollow" title="Disqus" href="http://www.tutsrus.com/goto/Disqus/745/6">Disqus</a> have benefits, of course, because they allow users to comment using Facebook and a number of other services; but before visitors can comment, they have to grant access to the application, an additional step that discourages some from commenting. By comparison, integrating Facebook comments directly enables visitors to comment with no fuss. Also, this commenting system allows users to comment by signing into Facebook, Yahoo, AOL or Hotmail.</p>
<p>Before <a rel="nofollow" title="Integrated Facebook Comments On WordPress Mods" href="http://www.tutsrus.com/goto/integrating_Facebook_on_WordPress_Mods/745/7">integrating Facebook on WordPress Mods</a> at the end of September, I looked at a few solutions. I followed a <a rel="nofollow" title="Add Facebook Comments To Your WordPress Theme" href="http://www.tutsrus.com/goto/great_tutorial_by_Joseph_Badow/745/8">great tutorial by Joseph Badow</a> and tried a few plugins, such as <a rel="nofollow" title="Facebook Comments For WordPress" href="http://www.tutsrus.com/goto/Facebook_Comments_For_WordPress/745/9">Facebook Comments For WordPress</a>. The reality, though, is that the <a rel="nofollow" title="official Facebook comment plugin" href="http://www.tutsrus.com/goto/official_Facebook_comment_plugin/745/10">official Facebook comment plugin</a> is the quickest and easiest way to add Facebook comments to your website.</p>
<p>Simply follow the steps below to get up and running.</p>
<h4>1. Create a Facebook Application</h4>
<p>To use Facebook comments on your website, create a new comment application for your website on the <a rel="nofollow" title="Facebook Applications" href="http://www.tutsrus.com/goto/Facebook_Application/745/11">Facebook Application</a> page. This step is required, whether you add Facebook comments manually using a third-party plugin or with the official Facebook plugin.</p>
<p>Simply click on the “+ Create New App” button on the Facebook Application page, and enter a unique name for your application in the “App Display Name” field. The “App Namespace” field doesn’t have to be filled in for Facebook comments (it’s used with the <a rel="nofollow" title="Facebook Open Graph Protocol" href="http://www.tutsrus.com/goto/Facebook_Open_Graph_Protocol/745/12">Facebook Open Graph Protocol</a>).</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/13"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/create-facebook-app.png" alt="Create Facebook App" width="550" /></a></p>
<p>You will then be provided with an “App ID/API key” and an “App secret key.” You don’t need to remember these numbers because the <a rel="nofollow" title="official Facebook comment plugin" href="http://www.tutsrus.com/goto/official_Facebook_comments_plugin/745/14">official Facebook comments plugin</a> automatically inserts them into the code that you need to add to your website.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/15"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/create-facebook-app-2.png" alt="Create Facebook Application" width="550" /></a></p>
<h4>2. Add the Code to Your Website</h4>
<p>Next, go back to the <a rel="nofollow" title="Facebook Comments Plugin" href="http://www.tutsrus.com/goto/Facebook_Comments_plugin/745/16">Facebook Comments plugin</a> page and get the code for your website. The box allows you to change the URL on which comments will be placed, the number of comments to be shown, the width of the box and the color scheme (light or dark).</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/17"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/customise-facebook-app.png" alt="Customise Facebook" width="241" /></a></p>
<p>You don’t have to worry about what you enter in the box because all of the attributes can be modified manually. And it doesn’t matter what URL you enter because we will be replacing it later with the WordPress permalink:</p>
<ul>
<li><code>href</code><br />
The URL for this Comments plugin. News feed stories on Facebook will link to this URL.</li>
<li><code>width</code><br />
The width of the plugin in pixels. The minimum recommended width is 400 pixels.</li>
<li><code>colorscheme</code><br />
The color scheme for the plugin (either light or dark).</li>
<li><code>num_posts</code><br />
The number of comments to show by default. The default is 10, and the minimum is 1.</li>
<li><code>mobile</code> (beta)<br />
Whether to show the mobile version. The default is <code>false</code>.</li>
</ul>
<p>When you click on the “Get Code” button, a box will appear with your plugin code (choose the HTML5 option, because FBML is being deprecated). Make sure to select the application that you set up earlier for your comments so that the correct application ID is added to the code.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/18"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/get-facebook-app-code.png" alt="Get Facebook Application Code" width="550" /></a></p>
<p>Insert the first piece of code directly after the <code>&lt;body&gt;</code> tag in your <code>header.php</code> template:</p>
<pre class="brush: php">
&lt;div id="fb-root"&gt;&lt;/div&gt;
&lt;script&gt;(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&amp;appId=YOURAPPLICATIONID";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));&lt;/script&gt;
</pre>
<p>Put the second line of code where you want to show the comments. Make sure the static URL is replaced with the WordPress permalink (<code>&lt;?php the_permalink() ?&gt;</code>) so that comments show correctly on every page of your website.</p>
<pre class="brush: php">
&lt;div class="fb-comments" data-href="&lt;?php the_permalink() ?&gt;" data-num-posts="15" data-width="500"&gt;&lt;/div&gt;
</pre>
<p>To put Facebook comments above WordPress comments, add the above code just below the line that reads <code>&lt;!-- You can start editing here. --&gt;</code> in the <code>comments.php</code> template. To put Facebook comments below WordPress comments, add the above code below the <code>&lt;/form&gt;</code> tag (again in the <code>comments.php</code> template).</p>
<p>If you plan to completely replace your WordPress comments with Facebook comments, simply replace the call to your <code>comments.php</code> template with the call to your Facebook comments. For example, to replace comments in posts, simply add the code to the <code>single.php</code> template. Similarly, edit the <code>page.php</code> template to show Facebook comments on pages.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/19"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/facebook-comments.png" alt="Facebook Comments" width="550" /></a></p>
<p>Your should now see the Facebook comments box displayed on your website. To get an update whenever someone leaves a comment using Facebook, add yourself as a moderator to your application on the <a rel="nofollow" title="Comment moderation tool" href="http://www.tutsrus.com/goto/Comment_Moderation_tool/745/20">Comment Moderation tool</a> page.</p>
<h3>Show Your Latest Tweets In The Sidebar</h3>
<p>Displaying your latest tweets is a good way to encourage people to follow you on Twitter. The most common place to display tweets is in the sidebar, although you can add them to any area of the website.</p>
<h4>Display Your Latest Tweets Manually</h4>
<p>I have tried a few manual solutions for showing tweets on my websites, and my favorite comes from Chris Coyier of <a rel="nofollow" title="CSS Tricks" href="http://www.tutsrus.com/goto/CSS_Tricks/745/21">CSS-Tricks</a>. His <a rel="nofollow" title="Show Your Favorite Tweets with WordPress" href="http://www.tutsrus.com/goto/RSS_fetching_snippet/745/22">RSS fetching snippet</a> is a quick and effective way to show the latest tweets from your account. The <a rel="nofollow" title="Here is How to Find Your Twitter RSS Feed and Your Twitter Favorites RSS Feed" href="http://www.tutsrus.com/goto/RSS_address_of_your_Twitter/745/23">RSS address of your Twitter</a> account is <code>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=xxxxx</code> (where <code>xxxxx</code> is your Twitter user name). For the tweets that you favorite, use <code>http://twitter.com/favorites/xxxxx.rss</code>. For example, the RSS for the latest tweets from Smashing Magazine is <code>http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=smashingmag</code>; and to display only the favorites, <code>https://twitter.com/favorites/smashingmag.rss</code>. Once you’ve got your Twitter RSS address, simply add it to Chris’ PHP snippet.</p>
<pre class="brush: php">
&lt;?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=smashingmag');
$maxitems = $rss-&gt;get_item_quantity(3);
$rss_items = $rss-&gt;get_items(0, $maxitems);
?&gt;

&lt;ul&gt;
&lt;?php if ($maxitems == 0) echo '&lt;li&gt;No items.&lt;/li&gt;';
else
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?&gt;
&lt;li&gt;
&lt;a href='&lt;?php echo $item-&gt;get_permalink(); ?&gt;'&gt;
&lt;?php echo $item-&gt;get_title(); ?&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;?php endforeach; ?&gt;
&lt;/ul&gt;
</pre>
<p>For a more stylish way to display tweets manually, check out Martin Angelov’s tutorial “<a rel="nofollow" title="Display your Favorite Tweets using PHP and jQuery" href="http://www.tutsrus.com/goto/Display_Your_Favorite_Tweets_Using_PHP_and_jQuery/745/24">Display Your Favorite Tweets Using PHP and jQuery</a>,” or Sea of Cloud’s “<a rel="nofollow" title="Put twitter on your website with tweet!" href="http://www.tutsrus.com/goto/Javascript_Plugin_Solution/745/25">Javascript Plugin Solution</a>.”</p>
<h4>Display Your Latest Tweets Using the Official Twitter Widget</h4>
<p>The <a rel="nofollow" title="official Twitter Profile Widget" href="http://www.tutsrus.com/goto/official_Twitter_profile_widget/745/26">official Twitter profile widget</a> looks great and is easy to customize. You can define the number of tweets to display and whether the box should expand to show all tweets or provide a scroll bar.</p>
<p>The dimensions can be adjusted manually, or you can use an auto-width option. The color scheme can easily be changed in the settings area, too. Once the widget is the way you want it, simply grab the code and add it to the appropriate WordPress template.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/27"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/twitter-widget.png" alt="Official Twitter Profile Widget" width="550" /></a></p>
<h4>Display Your Latest Tweets Using a WordPress Plugin</h4>
<p>If you don’t want to code things manually or use the official Twitter profile widget, you could try one of the many plugins available:</p>
<ul>
<li><a rel="nofollow" title="Cardoza Twitter Box" href="http://www.tutsrus.com/goto/Cardoza_Twitter_Box/745/28">Cardoza Twitter Box</a></li>
<li><a rel="nofollow" title="Floating Tweets" href="http://www.tutsrus.com/goto/Floating_Tweets/745/29">Floating Tweets</a></li>
<li><a rel="nofollow" title="Latest twitter sidebar widget" href="http://www.tutsrus.com/goto/Latest_Twitter_Sidebar_Widget/745/30">Latest Twitter Sidebar Widget</a></li>
<li><a rel="nofollow" title="My Twitter Ticker" href="http://www.tutsrus.com/goto/My_Twitter_Ticker/745/31">My Twitter Ticker</a></li>
<li><a rel="nofollow" title="Tweet Blender" href="http://www.tutsrus.com/goto/Tweet_Blender/745/32">Tweet Blender</a></li>
<li><a rel="nofollow" title="Twitter Plugin for WordPress" href="http://www.tutsrus.com/goto/Twitter_Plugin_for_WordPress/745/33">Twitter Plugin for WordPress</a></li>
<li><a rel="nofollow" title="Twitter Widget Pro" href="http://www.tutsrus.com/goto/Twitter_Widget_Pro/745/34">Twitter Widget Pro</a></li>
</ul>
<h3>Add Social-Media Sharing Buttons To Your WordPress Website</h3>
<p>Adding social-media sharing and voting buttons is very straightforward and enables readers to share your content on the Web. Simply get the code directly from the following pages:</p>
<ul>
<li><a rel="nofollow" title="Facebook" href="http://www.tutsrus.com/goto/Facebook/745/35">Facebook</a>,</li>
<li><a rel="nofollow" title="Google+" href="http://www.tutsrus.com/goto/Google_/745/36">Google+</a>,</li>
<li><a rel="nofollow" title="Twitter" href="http://www.tutsrus.com/goto/Twitter/745/37">Twitter</a>.</li>
</ul>
<p>The buttons you get from the above links work well when added directly to posts (<code>single.php</code>) and pages (<code>page.php</code>). But they don’t work correctly on the home page (<code>index.php</code>) or the archive (<code>archive.php</code>) by default, because we want to show the number of likes, pluses and retweets for each individual article, rather than the page that lists the article. That is, if you simply add the default code to <code>index.php</code>, every button will show the number of shares for your home page, not for each article.</p>
<p>To resolve this, simply make sure that each button uses the article permalink, rather than the URL of the page it is on. To add sharing buttons only to posts, simply choose the button you want from the links above and copy the code to <code>single.php</code>; to add the buttons only to pages, just add the code to <code>page.php</code>.</p>
<p>To show the number of likes, pluses and retweets that an article has on the home page and in the archives, follow the steps noted below for Facebook, Google+ and Twitter below (the code for showing a sharing button on the index page will work for posts and pages, too). You can see an example of sharing buttons integrated in post excerpts on my own website <a rel="nofollow" title="WordPress Mods" href="http://www.tutsrus.com/goto/WordPress_Mods/745/38">WordPress Mods</a> and on popular blogs such as <a rel="nofollow" title="Mashable" href="http://www.tutsrus.com/goto/Mashable/745/39">Mashable</a>.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/40"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/social-media-index.png" alt="Social Media Sharing Buttons Example" width="500" /></a></p>
<h4>Facebook</h4>
<p><a rel="nofollow" title="Facebook" href="http://www.tutsrus.com/goto/Facebook_s_Like_button/745/41">Facebook’s Like button</a> comes with a lot of options. Choose from three layouts: standard, button count and box count. An email button (labelled “Send”) can be added, and you can set the width of the box, too. You can also show profile pictures below the button, choose between the labels “Like” and “Recommend,” choose between a light and dark color scheme, and set the font.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/42"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/facebook-customise.png" alt="Customise Facebook" width="313" /></a></p>
<p>You need to add two pieces of code to your website. First, add the JavaScript SDK code directly after the <code>&lt;body&gt;</code> tag (in the <code>header.php</code> template). This code has to be added only once (i.e. if you’ve already added the code to show Facebook comments on your website, you don’t need to add it again).</p>
<p>Put the second piece of code where you want to show the Like button. To ensure that the correct page is referenced, add <code>href="&lt;?php echo get_permalink($post-&gt;ID); ?&gt;"</code> to the second piece of code. It should look something like this:</p>
<pre class="brush: php">
&lt;div class="fb-like" data-href="http://www.facebook.com/smashmag" href="&lt;?php echo get_permalink($post-&gt;ID); ?&gt;" data-send="false" data-layout="box_count" data-width="450" data-show-faces="true" data-font="arial"&gt;&lt;/div&gt;
</pre>
<p>More information on how to customize the Like button can be found on the <a rel="nofollow" title="Facebook Like Button" href="http://www.tutsrus.com/goto/Facebook_Like_Button_page/745/43">Facebook Like Button page</a>.</p>
<h4>Google+</h4>
<p><a rel="nofollow" title="Google+" href="http://www.tutsrus.com/goto/Google_/745/44">Google+</a> offers four sizes of sharing buttons: small, medium, standard and tall. The number of votes that a page has received can be shown inline, shown in a bubble or removed altogether.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/45"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/googleplus-customise.png" alt="Customise Google+" width="528" /></a></p>
<p>Linking to your article’s permalink is very easy. Just append <code>href="&lt;?php the_permalink(); ?&gt;"</code> to the <code>g:plusone</code> tag. For example, to show a tall inline Google+ button, you would use the following code:</p>
<pre class="brush: php">
&lt;!-- Place this tag where you want the +1 button to render --&gt;
&lt;g:plusone size="tall" annotation="inline" href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;/g:plusone&gt;

&lt;!-- Place this render call where appropriate --&gt;
&lt;script type="text/javascript"&gt;
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
&lt;/script&gt;
</pre>
<p>For more tips on customizing the Google+ button, please view the <a rel="nofollow" title="official Google+ button documentation page" href="http://www.tutsrus.com/goto/official_Google_button_documentation_page/745/46">official Google+ button documentation page</a>.</p>
<h4>Twitter</h4>
<p><a rel="nofollow" title="Twitter" href="http://www.tutsrus.com/goto/Twitter/745/47">Twitter</a> offers four types of buttons: one for sharing links, one for inviting people to follow you, a hash tag button for tweeting stories, and another for mentions (used for contacting others via Twitter). The button you need to show the number of shares that an article has gotten is called “Share a link.”</p>
<p>On the button customization page, you can choose whether to show the number of retweets and can append “Via,” “Recommend” and “Hashtag” mentions to the shared link.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/48"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/twitter-customise.png" alt="Customise Twitter" width="550" /></a></p>
<p>To make sure Twitter uses the title of your article and the correct URL, simply add <code>ata-text="&lt;?php the_title(); ?&gt;"</code> and <code>data-url="&lt;?php the_permalink(); ?&gt;"</code> to your link. For example, if you were using the small button, you would use:</p>
<pre class="brush: php">
&lt;a href="https://twitter.com/share" class="twitter-share-button" data-via="smashingmag" ata-text="&lt;?php the_title(); ?&gt;" data-url="&lt;?php the_permalink(); ?&gt;"&gt;Tweet&lt;/a&gt;
&lt;script&gt;!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");&lt;/script&gt;
</pre>
<p>To show the larger button instead, simply append <code>data-size="large"</code> to the link. To show the popular vertical button (shown below) instead of the default horizontal button, append <code>data-count="vertical"</code> to the link.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/745/49"><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/01/twitter-vertical.png" alt="Twitter Vertical Button" width="60" /></a></p>
<p>For more tips on customizing the Twitter button, please view the <a rel="nofollow" title="official Twitter button documentation page" href="http://www.tutsrus.com/goto/official_Twitter_button_documentation_page/745/50">official Twitter button documentation page</a>.</p>
<h3>Summary</h3>
<p>Many WordPress users continue to use plugins to integrate social-media sharing buttons and activity on their websites. As we’ve seen, though, integrating social-media services manually is straightforward and, for many users, a better solution than simply installing a plugin and making do with whatever features it offers.</p>
<p>Integrating Facebook comments on your website takes only a few minutes and is much less complicated than any of the available plugins. While good tutorials are available that show you how to manually add Twitter to your website, the <a rel="nofollow" title="Twitter Widget" href="http://www.tutsrus.com/goto/official_widget_from_Twitter/745/51">official widget from Twitter</a> is the best all-around solution for most websites.</p>
<p>Some fantastic plugins exist for WordPress to automatically insert social-media voting buttons in your design. Installing and setting them up takes only a few minutes, although manually adding the buttons enables you to give them maximum visibility.</p>
<p>Remember, play it safe and make any changes in a test area first before applying the changes to the live website. I also recommend backing up all of your template files before changing anything (and your database if required). A few minutes of preparation could save you hours of troubleshooting, so try not to skip this step.</p>
<p>Hopefully, you’ve found this useful. If you are unsure of any aspect of this tutorial, please let us know and we’ll do our best to clarify the step or help you with it. Also, subscribe to Smashing Magazine via <a rel="nofollow" title="Subscribe to Smashing Magazine via RSS" href="http://www.tutsrus.com/goto/RSS/745/52">RSS</a>, <a rel="nofollow" title="Subscribe to Smashing Magazine via Twitter" href="http://www.tutsrus.com/goto/Twitter/745/53">Twitter</a>, <a rel="nofollow" title="Subscribe to Smashing Magazine via Facebook" href="http://www.tutsrus.com/goto/Facebook/745/54">Facebook</a> or <a rel="nofollow" title="Subscribe to Smashing Magazine via Google+" href="http://www.tutsrus.com/goto/Google_/745/55">Google+</a> to get the latest articles delivered directly to you.</p>
<p><em>(al)</em></p>
<hr />
<p><small>© Kevin Muldoon for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/745/56">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/745/57">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/how-to-integrate-facebook-twitter-and-google-in-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing The Well-Tempered Web</title>
		<link>http://www.tutsrus.com/designing-the-well-tempered-web.html</link>
		<comments>http://www.tutsrus.com/designing-the-well-tempered-web.html#comments</comments>
		<pubDate>Wed, 18 Jan 2012 16:23:58 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Adobe Illustrator Tutorials]]></category>
		<category><![CDATA[Designing]]></category>
		<category><![CDATA[WellTempered]]></category>

		<guid isPermaLink="false">http://www.tutsrus.com/designing-the-well-tempered-web.html</guid>
		<description><![CDATA[&#160;&#160; As technology evolves, so does the art and craft of Web design. New technology creates new challenges, which require new solutions. Often we’re working in uncharted territory, where the solutions demanded really are new. Other times, we’re faced with problems of a more universal nature, problems that have a history. Given the limited history [...]]]></description>
			<content:encoded><![CDATA[<table width="650">
<tr>
<td width="650">
<div style="width:650px;">
      <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" border="0" /><br />
      <a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/1" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=1" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/2" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=2" border="0" alt="" /></a>&nbsp;<a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/3" target="_blank"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&#038;collection=smashing-rss&#038;position=3" border="0" alt="" /></a>
    </div>
</td>
</tr>
</table>
<p>As technology evolves, so does the art and craft of Web design. New technology creates new challenges, which require new solutions. Often we’re working in uncharted territory, where the solutions demanded really are new. Other times, we’re faced with problems of a more universal nature, problems that have a history.</p>
<p>Given the limited history of Web design, we have to look beyond our immediate domain for answers to the more challenging questions. We do this all the time when we draw on the rich history of graphic design and visual arts. But we’re not limited to sibling disciplines. If we can identify the abstractions and patterns that constitute our challenges, we can look to any source for guidance. We can look to a seemingly unrelated field, such as psychology or music. We can even look to an episode from the early 18th century about Johann Sebastian Bach.</p>
<p>In this article <strong>we&#8217;ll look at what Bach has to do with modern Web challenges</strong> &#8212; Particularly the challenge of designing for devices with diverse attributes and capabilities.</p>
<h3>Bach And &#8220;The Well-Tempered Clavier&#8221;</h3>
<p>In 1722, Bach put together a book of solo keyboard works intended as a collection of educational pieces for young musicians. The book contained 48 pieces &mdash; a prelude and fugue in every major and minor key. Now a staple of the Western canon, it’s regarded as one of the most important works in the history of Western music. He named the book <em>The Well-Tempered Clavier</em>.</p>
<p>To appreciate the historical significance of the work, you have to understand that in Bach’s day the notion that one might play keyboard music in all keys was unorthodox. It was a matter not of philosophy, but of physics: a fixed-pitch keyboard instrument could be in tune only with a selection of keys at a time. In the tuning systems of the era, playing in tune in all 12 major keys was simply not possible.</p>
<p>While the laws of physics can be tough to bend, human perception moves fairly easily. The solution was to <strong>redefine what it meant to be “in tune.”</strong> By adjusting certain intervals so that they deviated just slightly from perfect intonation, a tuning system was produced that allowed one to play reasonably in tune in all keys. This practice of <strong>compromising granular qualities for the greater good of the system</strong> is called temperament.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/4"><img class="alignnone size-full wp-image-120418" title="Well-Tempered Clavier, Book I, Prelude I" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/well-tempered-clavier.png" alt="Well-Tempered Clavier, Book I, Prelude I" width="500" height="286" /></a><br />
<em>Opening measures of the first Prelude of Bach’s Well-Tempered Clavier. (Image credit: <a rel="nofollow" href="http://www.tutsrus.com/goto/Wikipedia/742/5">Wikipedia</a>)</em></p>
<p>The name of the alternative tuning system made famous by Bach and <em>The Well-Tempered Clavier</em> is, unsurprisingly, “well temperament.” Today, most intonation in Western music is based on “equal temperament.” The methods are different, but the goal is the same: <strong>to make each of the keys slightly imperfect so that all of the keys can be used</strong>. It’s like utilitarianism for acoustics.</p>
<h3>What This Has To Do With UI Design</h3>
<p>Probably the most exciting development in Web design in the last few years has been the shift to designing for multiple devices. It’s no longer just about how a website functions in two different browsers, but about how it functions on various devices with completely different characteristics: different screen sizes, different capabilities, different use contexts, different interfaces.</p>
<p>Although responsive design and device-specific websites enable us to tailor designs for diverse experiences, there will still be times when we have to make <strong>universal decisions</strong> &mdash; and when we do, the metaphor of well temperament can be helpful.</p>
<p>The application of this concept to UI design is straightforward: in order to deliver a good experience for a range of devices, we have to allow for occasional imperfections in individual interfaces. We have to make little compromises here and there to make sure that our design travels well to other environments.</p>
<h4>Touch-First Design</h4>
<p>A common example of well temperament in action is the effect that touch interfaces have had on recent desktop website designs.</p>
<p>As a pointing device, a finger, being much larger than a mouse, requires a larger touch target than what’s required by a mouse cursor. So, to ensure usability, interactive elements need to be bigger. As interactive elements increase in size, other things need to increase in size to maintain balance. This leads to an aesthetic characterized by generous margins and padding.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/6"><img class="size-full wp-image-120419 alignnone" title="New Gmail design" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/new-gmail-design.png" alt="New Gmail design" width="500" height="355" /></a><br />
<em>The <a rel="nofollow" href="http://www.tutsrus.com/goto/new_Gmail_design/742/7">new Gmail design</a> has a lot of white space and extra padding on buttons and is very touch-friendly, even though it’s a desktop design.</em></p>
<p>The rise in popularity of the iPad, which bridged the gap between touch interfaces and desktop screen sizes, is what accelerated the influence of touchscreens on desktop interface design. If you look at recent redesigns of major products such as Gmail and Twitter or browse CSS galleries, you’ll see that design on the Web is starting to look a little different. Things look more… plumpish. There’s more white space, buttons have more padding, things in general feel bigger. Of course, other factors are at play, such as the steady increase in desktop screen sizes.</p>
<p>What we end up with is a design that might afford too much space for a mouse but an appropriate amount of space for a finger. We allow for a slight deviation from the norm in one experience in order to better support all possible experiences.</p>
<p>It’s important to note that making a UI touch-friendly in this way also results in a UI that might be more useable for mouse-and-desktop users. A button that’s easier to touch is often easier to click. By erring in the direction of usability, we get the bonus of improved performance of the design in its original desktop context.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/8"><img class="alignnone size-full wp-image-120422" title="Microsoft Metro design in Windows 8" src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/windows-8-metro-touch.jpg" alt="Microsoft Metro design in Windows 8" width="500" height="272" /></a><br />
<em>Microsoft’s <a rel="nofollow" href="http://www.tutsrus.com/goto/Metro_design/742/9">Metro design</a> language is inspired by a touch-first approach to interaction design.</em></p>
<h4>Universal Design via Responsive Design</h4>
<p>Although much of the discussion on responsive design tends to focus on techniques of responsiveness, responsiveness itself is never the goal. It’s a means to an end. The design responds <strong>in order to do something else</strong>. That something else might be to supply different content, to serve low-bandwidth images, or to adapt the layout for better presentation on smaller screens. That something else might also be a goal of providing a universal experience to a large number of different devices.</p>
<p>Riding the responsive design train to arrive at universal experience design, we’re likely to pass through some form of well temperament. A great example of this &mdash; and an excellent example of responsive design in general &mdash; is the Boston Globe’s website.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/10"><img src="http://uxdesign.smashingmagazine.com/wp-content/uploads/2012/01/boston-globe-homepage.jpg" alt="BostonGlobe.com home page" title="BostonGlobe.com home page" width="500" height="324" class="alignnone size-full wp-image-110350" /></a><br />
<em>The <a rel="nofollow" href="http://www.tutsrus.com/goto/Boston_Globe/742/11">Boston Globe</a> is a shining example of responsive design on a large-scale website.</em></p>
<p>This responsive strategy enabled a single design to adapt to any device that a reader might use to read The Boston Globe (even the Apple Newton!). But this wasn’t just a feat of front-end engineering. Accompanying the media queries and JavaScript wizardry was a simple <strong>malleable design that lent itself to adaptation</strong>.</p>
<p>This is a tempered design. While the minimalism might be purely stylistic, I suspect that if it had been a desktop-only design, we’d have seen more gloss and embellishment. There would have been a longer runway on which to perfect the experience for a single-use context. But instead, the designers made little trade-offs to produce something that could be transposed to all possible environments &mdash; something that could play in all 12 keys.</p>
<h4>Mobile-First Design</h4>
<p>The preceding examples were concerned more with graphic design, but the concept of temperament can be applied to product design, user experience, information architecture &mdash; almost any other area of design. Let’s look at product design and the idea of designing for mobile first.</p>
<p>If you’re designing for mobile first, then you’re already working with tempered design. By starting the design process with mobile and building a product around the demanding constraints of the mobile environment, you’re obligated to focus on the most essential elements of the product. As <a rel="nofollow" href="http://www.tutsrus.com/goto/Luke_Wroblewski_writes/742/12">Luke Wroblewski writes</a>:</p>
<blockquote>
<p>So, when a team designs mobile first, the end result is an experience focused on the key tasks users want to accomplish, without the extraneous detours and general interface debris that litter today’s desktop-accessed websites. That’s good [for the] user experience and good for business.</p>
</blockquote>
<p>When these design decisions extend beyond the mobile experience to <strong>define the overall product</strong>, then the design takes on a form of temperament. The latest redesign of Twitter (i.e. “New Twitter” or “New new Twitter”) demonstrates some of these principles.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/13"><img class="alignnone size-full wp-image-109932" title="New Twitter design" src="http://uxdesign.smashingmagazine.com/wp-content/uploads/2012/01/new-twitter-design.jpg" alt="New Twitter design" width="500" height="406" /></a><br />
<em><a rel="nofollow" href="http://www.tutsrus.com/goto/New_Twitter/742/14">New Twitter</a> has a simplified design and a consistent experience across devices.</em></p>
<p>One of the objectives of the Twitter redesign was to give users a consistent experience across computers and mobile phones. Achieving a consistent look and feel is a UI challenge, but achieving a consistent overall product experience is a deeper challenge. In both cases, designing for mobile first puts us on the right path.</p>
<p>Something I found interesting about the Twitter redesign was the influence that the mobile experience had on the product’s overall design. For example, aside from the tweet button, all of the actions have been organized under four tabs: “Home,” “Connect,” “Discover” and “Me.“” It’s a simplification that plays wonderfully on a small screen. Four items fit perfectly in the tab bar.</p>
<p>On the desktop website, other features have been added, but the simplicity established in the mobile version carries over. Although the desktop version has plenty of room &mdash; both pixel-wise and figuratively &mdash; for more complexity, the design is restrained, tempered, to ensure a universal multi-device experience.</p>
<h3>Beware Of Wolves</h3>
<p>In the natural tuning systems that predated the standardization of well and equal temperament, notes of the out-of-tune intervals that were played simultaneously produced a harsh and howling sound. Musicians had a great name for this: they called it a “wolf.”</p>
<p>Applying this idea to interface design, we can think of a wolf as a <strong>visual or interactive element designed for one experience that breaks down to some degree when transposed to another</strong>. Think of the times you’ve struggled to finger-tap a small link that was made for a mouse cursor, or had to read tiny text on a mobile screen, or, on a touch device, used an interface that relied on hover states. Wolves in the UI.</p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/15"><img src="http://media.smashingmagazine.com/wp-content/uploads/2011/12/nytimes-touch-wolf.png" alt="New York Times mobile touch targets" title="New York Times mobile touch targets" width="500" height="360" class="alignnone size-full wp-image-110351" /></a><br />
<em>These article present links that are designed for interaction with a mouse. When viewing on a touchscreen mobile device, their usability is greatly impaired.</em></p>
<p><a rel="nofollow" href="http://www.tutsrus.com/goto/link/742/16"><img src="http://uxdesign.smashingmagazine.com/wp-content/uploads/2012/01/nymag-dropdown-wolf.jpg" alt="New York Magazine dropdown menus" title="New York Magazine dropdown menus" width="500" height="360" class="alignnone size-full wp-image-110351" /></a><br />
<em><a rel="nofollow" href="http://www.tutsrus.com/goto/New_York_Magazine/742/17">New York Magazine</a> provides useful and well-designed drop-down navigation menus &mdash; but only if you’re using a mouse.</em></p>
<h3>Closing Thoughts And Practical Tips</h3>
<p>Again, it’s true that responsive design and device-specific experiences can offer us a way around many of these problems. If we can tune the size of a button to a particular environment, then we don’t have to accept blunt, across-the-board treatment. But the number of devices we have to support will only increase, and customizing for every possible scenario could quickly become unreasonable.</p>
<p>Even if we are able to provide perfectly tailored design at the execution level, there is still value in thinking about tempered, universally accessible design at the conceptual level.</p>
<p>Additionally, just because we can tailor design to particular experiences doesn’t mean that users will not carry expectations over from one experience to another. The boundaries might blur whether we like it or not.</p>
<h4>Tips and Things to Keep in Mind</h4>
<ul>
<li><strong>Think responsively.</strong><br />
Even if you’re not implementing a full responsive design, simply thinking in responsive terms goes a long way to achieving usable universal design.</li>
<li><strong>Think touch-first.</strong><br />
A button sized for a fingertip will always work for a mouse cursor. But a button sized for a mouse cursor will often be too small for a fingertip. Designing for touch first ensures that your website or application translates well to other contexts.</li>
<li><strong>Think universally.</strong><br />
“Test early, test often” the saying goes. In your design process, think early and often about how your design will function on various devices.</li>
<li><strong>Think mobile-first.</strong><br />
Starting your design with mobile focuses you on what really matters to your users. By maintaining focus on the essential features, achieving a consistent experience across devices will be much easier.</li>
<li><strong>Be careful</strong> with interaction behavior that is not supported universally across interfaces. Hover states don’t function the same on touch devices. Touch gestures can’t be performed with a mouse. It doesn’t mean we can’t use these things, but we have to be aware of their limitations.</li>
</ul>
<h3>In The End…</h3>
<p>Bach believed that people should be able to write and play in any key they wish. He argued for it by writing beautiful music that compelled the world to agree. <strong>He designed for the system he wanted.</strong></p>
<p>We want our users to have great experiences with our websites and applications on any device they choose. We want our work to be as usable and accessible as possible.</p>
<p>What will <em>you</em> design?</p>
<h4>Other Resources</h4>
<p>You may be interested in the following related resources:</p>
<ul>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/The_Well_Tempered_Clavier_Book_I/742/18"><em>The Well-Tempered Clavier</em>, Book I</a>, played by Glenn Gould, Rdio</li>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/Audio_examples_comparing_different_tuning_systems/742/19">Audio examples comparing different tuning systems</a>, The Pyxidium</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Wolf_Interval/742/20">Wolf Interval</a>,” Wikipedia</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Multi_Device_Web_Design_An_Evolution/742/21">Multi-Device Web Design: An Evolution</a>,” Luke Wroblewski</li>
<li><a rel="nofollow" href="http://www.tutsrus.com/goto/Responsive_Web_Design/742/22"><em>Responsive Web Design</em></a>, Ethan Marcotte</li>
<li>“<a rel="nofollow" href="http://www.tutsrus.com/goto/Non_Hover/742/23">Non Hover</a>,” Trent Walton</li>
</ul>
<p><em>(al)</em></p>
<hr />
<p><small>© Rob Flaherty for <a rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine/742/24">Smashing Magazine</a>, 2012.</small></p>
<p><a rel="nofollow" rel="nofollow" href="http://www.tutsrus.com/goto/Smashing_Magazine_Feed/742/25">Smashing Magazine Feed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutsrus.com/designing-the-well-tempered-web.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

