<?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>Webmonkey &#187; UX</title>
    <atom:link href="http://www.webmonkey.com/tag/ux/feed/" rel="self" type="application/rss+xml" />
    <link>http://www.webmonkey.com</link>
    <description>The Web Developer&#039;s Resource</description>
    <lastBuildDate>Mon, 06 May 2013 17:29:19 +0000</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <generator>http://wordpress.org/?v=3.4.2</generator>
    
    <item>
        <title>Photoshop Contemplates Adding Live HTML Layers</title>
        <link>http://www.webmonkey.com/2010/06/photoshop-contemplates-adding-live-html-layers/</link>
        <comments>http://www.webmonkey.com/2010/06/photoshop-contemplates-adding-live-html-layers/#comments</comments>
        <pubDate>Wed, 02 Jun 2010 15:56:43 +0000</pubDate>

                <dc:creator>Scott Gilbertson</dc:creator>

        <guid isPermaLink="false">http://www.webmonkey.com/?p=47567</guid>
        		<category><![CDATA[Software]]></category>
		<category><![CDATA[Visual Design]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[UX]]></category>
        <description><![CDATA[Adobe&#8217;s Principal Product Manager of Photoshop, John Nack has posted an idea for a new Photoshop feature on his blog. Nack&#8217;s idea is to create a way of rendering HTML and CSS within Photoshop. This means visual designers could work with &#8220;live&#8221; HTML objects as they&#8217;re building websites within a team of programmers, easing the [...]]]></description>

            <content:encoded><![CDATA[<p><!-- wpautop enabled --><img src="http://www.webmonkey.com/wp-content/uploads/2010/03/pscs4.jpg" />
<p>Adobe&#8217;s Principal Product Manager of Photoshop, John Nack has posted an idea for a new Photoshop feature on his blog. Nack&#8217;s idea is to create a way of <a href="http://blogs.adobe.com/jnack/2010/06/feedback_please_html5_layers_in_photoshop.html">rendering HTML and CSS within Photoshop</a>. This means visual designers could work with &#8220;live&#8221; HTML objects as they&#8217;re building websites within a team of programmers, easing the workflow between the designing and coding stages.</p>
<p>Before you get to excited (or disappointed) keep in mind that isn&#8217;t a feature, isn&#8217;t even part of a plan, it&#8217;s simply and idea that Nack would like feedback on.</p>
<p>Nack describes the idea (and workflow) like this: a designer creates a mockup, which he hands off to a programmer. The programmer then renders the mockup in HTML/CSS, at which point he could hand it back to the designer who can open it in Photoshop as a kind of live layer. Resizing and other layer actions would cause the code to respond according to how the programmer has written the code.</p>
<p>What Nack is envisioning is a smart layer that uses <a href="http://webkit.org/">WebKit</a> (already part of the Creative Suite) to render what he calls &#8220;programmable layers.&#8221;</p>
<p>Among the benefits Nack sees are &#8220;[live] pixel-accurate web rendering (text and shapes); the ability to style objects via CSS parameters (enabling effects like dotted lines); data-driven 2D and 3D graphics; and high fidelity web output (HTML as HTML).&#8221;</p>
<p>The real world example Nack uses is a calendar widget, but that particular example raises an interesting question &#8212; what about scripting languages? We don&#8217;t know of anyone who writes out calendar code in HTML, that would be insane to update. So if you&#8217;re generating the calendar with, say, PHP, where does the script rendering happen?</p>
<p>So far, the comments appear pretty evenly divided between those who think such a feature would be great and those think that either it&#8217;s just more bloat in Photoshop, or that <a href="http://blogs.adobe.com/jnack/2010/06/a_note_to_fireworks_users.html">Fireworks would be a better home</a> for the idea.</p>
<p>If you&#8217;ve got strong opinions one way or the other, head over to Nack&#8217;s blog and let him know what you think, either in the comments or by <a href="http://www.surveymonkey.com/s.aspx?sm=fAtQ68HEvTU05t1eHH7UrvaWOiU4utpec4PG%2bpUBQ4E%3d">completing this survey</a>.</p>
<p>Just remember that this is not part of a roadmap and may well never happen. In the words of Douglas Adams, &#8220;Don&#8217;t panic.&#8221;</p>
<p><strong>See Also:</strong><br/></p>
<ul>
<li><a href="http://www.webmonkey.com/2010/01/photoshop_s_top_dog_replies_to__flash_is_dead__meme/">Photoshop’s Top Dog Replies to ‘Flash Is Dead’ Meme</a></li>
<li><a href="http://www.webmonkey.com/2009/12/designers__step_away_from_the_photoshop/">Designers, Step Away From the Photoshop</a></li>
<li><a href="http://www.wired.com/gadgetlab/2010/04/photoshop-first-look-new-tricks-speed-boost-make-it-worth-the-upgrade/"><br />
Photoshop Upgrade Promises New Tricks, Timesavers [GadgetLab]</a></li>
</ul>
<div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/06/photoshop-contemplates-adding-live-html-layers/feed/</wfw:commentRss>
        <slash:comments>8</slash:comments>

        
    </item>
    
    <item>
        <title>Information Architecture Tutorial &#8211; Lesson 4</title>
        <link>http://www.webmonkey.com/2010/02/information_architecture_tutorial_-_lesson_4/</link>
        <comments>http://www.webmonkey.com/2010/02/information_architecture_tutorial_-_lesson_4/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=659</guid>
        		<category><![CDATA[UI/UX]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[wiki]]></category>
        <description><![CDATA[If you&#8217;ve followed the first three lessons, by now you have a good handle on your site&#8217;s goals, who the audience will be, and what kinds of content and functionality you&#8217;ll need. It is now time to define the site&#8217;s structure, which is the foundation on which you build everything else. Think of the site [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --></p><p>If you&#8217;ve followed the first three lessons, by now you have a good handle on your site&#8217;s goals, who the audience will be, and what kinds of content and functionality you&#8217;ll need. It is now time to define the site&#8217;s structure, which is the foundation on which you build everything else.

</p><p>Think of the site structure as a skeleton that holds the body together. Without it, your site will be a jumbled up, confusing mess &#8211; kind of like an amoeba. Do you want an unorganized, hard-to-use, crappy site? No! You want an evolved, highly structured, and easy-to-use site that can walk upright on its own two legs.

</p><p>After creating a good site structure, everything else will fall into place. It can&#8217;t help but do so! A well-designed structure makes it easy to define a navigation system, and the two together make designing page layouts and templates a snap. This is the last step before you can actually get into building things.
</p>
<br /><span id="more-659"></span>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>



<ol>

<li><a href="#Metaphor_Exploration">Metaphor Exploration</a></li>

<li><a href="#Set_It_in_Stone">Set It in Stone</a></li>

<li><a href="#Define_Navigation">Define Navigation</a></li>

<li><a href="#Design_Document">Design Document</a></li>



</ol>

</td></tr></tbody></table>



<a name="Metaphor_Exploration"></a><h4> <span class="mw-headline">Metaphor Exploration</span></h4>

<p>This next step, which is called &#8220;metaphor exploration,&#8221; can help refine your vision of the site&#8217;s structure, but it&#8217;s important to remember that this step is only an exercise. It will give you many good ideas, but they may be impractical, at best. Don&#8217;t let that discourage you, though &#8211; it can be a lot of fun.

</p><p>It&#8217;s useful to explore various metaphors in trying to determine the site&#8217;s structure. A good metaphor can go a long way in helping users understand how to use and navigate the site. However, no metaphor is perfect, so don&#8217;t feel that you have to adhere rigidly to just one. You could take the best parts of several metaphors and roll them into one (or you might not find any useful metaphors at all).

</p><p>Three types of metaphors are useful to site design:

</p><p><b>Organizational metaphors</b>

</p><p>Organizational metaphors rely on the existing structure of a group, system, or organization. For example, if you are creating a site to sell groceries, your metaphor could be a supermarket, where products are grouped logically by type (canned vegetables, dairy products, cereal, snacks, household items, etc.). Beware that copying the organizational hierarchy of your client company is usually not a good idea &#8211; grocery customers couldn&#8217;t care less about a supermarket&#8217;s corporate structure.

</p><p><b>Functional metaphors</b>

</p><p>Functional metaphors relate tasks you can do on the site with tasks you can do in another environment. Photoshop, a graphics program, relies on a lot of functional metaphors:You can figuratively &#8220;cut,&#8221; &#8220;copy,&#8221; and &#8220;paste&#8221; graphics on a computer &#8211; as though you were using real-world scissors and glue.

</p><p><b>Visual metaphors</b>



</p><p>Visual metaphors are based on common graphic elements familiar to most people in our culture. If you are designing a music site that allows users to play songs, you might want to use the traditional &#8220;start,&#8221; &#8220;stop,&#8221; and &#8220;pause&#8221; icons found on CD players everywhere.

</p><p>To begin exploring metaphors, gather your people and brainstorm ideas. Review and evaluate each metaphor. Try not to discourage any suggestions you do not like, at least not right away. A metaphor&#8217;s punch might not be obvious right away. Try to map out the major sections of the site by connecting elements from the content inventory to each metaphor.

</p><p>After what was probably a lively and entertaining experience, you must choose a metaphor or a rationale for the site&#8217;s structure. Remember, no metaphor is perfect. The overall site might not be explainable as a metaphor, but perhaps the navigation system (or smaller subsets of the site) can be.

</p>

<a name="Set_It_in_Stone"></a><h4> <span class="mw-headline">Set It in Stone</span></h4>

<p>Now that you have a rationale for the site structure, you&#8217;ll want to set it in stone. You can start off by creating a text-based, hierarchical map of the site, called the &#8220;site structure listing.&#8221;

</p><p>The major sections you decided upon earlier are the &#8220;roots&#8221; of the site structure listing. Fit them to your rationale or metaphor. Next, map out the organization of each section with items from the content inventory. As you go deeper into the site, indent the lower levels. You will repeat this process several times. Over time, focus on smaller parts of the site. You should end up with a list looking like this:

</p>

<pre class="brush: js">Section 1

	Section 1.1

		Section 1.2

Section 2

	Section 2.1

		Section 2.2

		Section 2.2.1

		Section 2.2.2

		Section 2.2.3

			Section 2.3

				Section 2.4

Section 3

</pre>

<p>Next you will want to visualize this list. Many people have a hard time seeing something like the site structure listing and translating it to the way the site will work. Architectural blueprints can help. Here is an example:

</p><p><img src="http://www.wired.com/wired/webmonkey/stuff/Information_Architecture_Tutorial_blueprint.gif" alt="Information_Architecture_Tutorial_blueprint.gif">

</p><p>Architectural blueprints are visual representations of the site structure. They are diagrams showing how elements of the site are grouped and how they link or relate to one another.

</p><p>You&#8217;ll need to make up a legend that defines how on- and off-site links, page components, pages, and groups of pages are represented in the blueprints. You might want to distinguish among parts of the site that perform a function or transaction, parts of the site that are generated dynamically, and pages merely comprised of text. If your site is large, you may have to make several architectural blueprints, starting with a generalized overview of the site and working toward diagrams with a finer and finer grain.

</p>



<a name="Define_Navigation"></a><h4> <span class="mw-headline">Define Navigation</span></h4>

<p>How will users use the site? How will they get from one place to another? How do you prevent them from getting lost? Defining the navigation system for the site solves these problems.

</p><p>Take a look at the site structure listing. What are the major sections? These are excellent candidates for the global navigation system, which appears on every page of the site and enables users to quickly jump between sections. If at all possible, try to limit the number of global navigation elements to between five and seven. Another good idea is to incorporate the branding of your site &#8211; the company logo &#8211; into the global navigation as part of the link back to the site&#8217;s homepage.

</p><p>Local navigation can take a number of forms. It can be a list of topics, such as those found at <a href="http://www.yahoo.com" class="external text" title="http://www.yahoo.com" rel="nofollow">Yahoo</a> and <a href="http://www.geocities.com" class="external text" title="http://www.geocities.com" rel="nofollow">GeoCities</a>. It can take the form of a menu of choices such as the GeoCities <a href="http://www.geocities.com/members/" class="external text" title="http://www.geocities.com/members/" rel="nofollow">members area</a>. Or, it might be a list of a few related items, such as this lesson&#8217;s page titles that you see farther down this page.

</p><p>It is essential that you document the global navigation system and as many of the local navigation systems as you can. This can be as simple as compiling a list of elements that make up each system.

</p><p>For example, Webmonkey has a global navigation system that can be documented as a list:&#8221;The global navigation device contains links to all the major sections of Webmonkey:design, HTML, dynamic HTML, etc.&#8221; A local navigation definition for Webmonkey might be:&#8221;For a multi-part article, a list of links to each section appears at the end of each page. Use the title of a section as a link to that section.&#8221;

</p>

<a name="Design_Document"></a><h4> <span class="mw-headline">Design Document</span></h4>



<p>Design Document:

</p><p>Documentation time! Create a new chapter in your design document called &#8220;Site Structure.&#8221; Write a summary or metaphorical explanation about the driving rationale behind the site structure. Add the site structure listing. If the site structure listing is too long, add a shortened form and include the rest as an appendix. Compile the architectural blueprints and add them to the design document. Document the global and local navigation schemes. As always, publish these results so that everyone can see them.

</p><p>Example:

</p>

<pre class="brush: js">      4 Site Structure

      4.1 Site Structure Listing (or Summary)

      4.2 Architectural Blueprints

      4.3 Global and Local Navigation Systems



      Appendix C:Site Structure Listing (optional)

</pre>





<div id="series">



<div class="series_hdr">From the series</div>

<table style="background: rgb(229, 249, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="620">

<tbody><tr>

<td>

<p><a href="/2010/02/Information_Architecture_Tutorial" title="Tutorial:Information Architecture Tutorial"> Information Architecture Tutorial</a><br />

<a href="/2010/02/Information_Architecture_Tutorial_-_Lesson_1" title="Tutorial:Information Architecture Tutorial - Lesson 1"> Information Architecture Tutorial &#8211; Lesson 1</a><br />

<a href="/2010/02/Information_Architecture_Tutorial_-_Lesson_2" title="Tutorial:Information Architecture Tutorial - Lesson 2"> Information Architecture Tutorial &#8211; Lesson 2</a><br />

<a href="/2010/02/Information_Architecture_Tutorial_-_Lesson_3" title="Tutorial:Information Architecture Tutorial - Lesson 3"> Information Architecture Tutorial &#8211; Lesson 3</a><br />



<strong class="selflink"> Information Architecture Tutorial &#8211; Lesson 4</strong><br />

<a href="/2010/02/Information_Architecture_Tutorial_-_Lesson_5" title="Tutorial:Information Architecture Tutorial - Lesson 5"> Information Architecture Tutorial &#8211; Lesson 5</a>

</p>

</td></tr></tbody></table>

</div><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/information_architecture_tutorial_-_lesson_4/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Architecture</title>
        <link>http://www.webmonkey.com/2010/02/architecture/</link>
        <comments>http://www.webmonkey.com/2010/02/architecture/#comments</comments>
        <pubDate>Mon, 15 Feb 2010 20:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=37</guid>
        		<category><![CDATA[Glossary]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[wiki]]></category>
        <description><![CDATA[In computer science, architecture means the conceptual arrangement of a system&#8217;s components. Taking the analogy of a physical building, if a website&#8217;s individual pages are rooms, its architecture is the hypertextual relationship between the rooms within the structure.]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>In computer science, architecture means the conceptual arrangement of a system&#8217;s components.

</p><p>Taking the analogy of a physical building, if a website&#8217;s individual pages are rooms, its architecture is the hypertextual relationship between the rooms within the structure.

</p><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/architecture/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    
    <item>
        <title>Site Optimization Tutorial</title>
        <link>http://www.webmonkey.com/2010/02/site_optimization_tutorial/</link>
        <comments>http://www.webmonkey.com/2010/02/site_optimization_tutorial/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=639</guid>
        		<category><![CDATA[UI/UX]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[wiki]]></category>
        <description><![CDATA[Overview We&#8217;re all tired of waiting for web pages to download, aren&#8217;t we? To make sure that visitors to your site don&#8217;t get frustrated, we rounded up some in-house experts to help you make your pages faster &#8216;n greased lightning. Pictures are worth a thousand words &#8212; especially on the web, where pages of text [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p><b>Overview</b>

</p><p>We&#8217;re all tired of waiting for web pages to download, aren&#8217;t we? To make sure that visitors to your site don&#8217;t get frustrated, we rounded up some in-house experts to help you make your pages faster &#8216;n greased lightning.

</p><p>Pictures are worth a thousand words &#8212; especially on the web, where pages of text can download in the time it takes for a single image to load. Your images may be sub-zero cool, but if they&#8217;re too plump, few people will stick around long enough to see them. We&#8217;ll dig into tricks and optimizations to speed up your GIF, JPG, and PNG downloads.

</p><p>Once you&#8217;ve learned the basics of shrinking your images, we&#8217;ll will walk you through the advantages of using CSS for your page layout. And, if you&#8217;re one of those people who insists on using tables, we&#8217;ll offer you a few choice hints on how to get those tables slim and streamlined.

</p><p>After you&#8217;ve removed the bloat from your layout code and your images, you&#8217;ll learn how to cut needless elements from your pages. Hint: Start with all those links.

</p><p>The series concludes with wise words about how to come up with benchmarks for speed and how to test your site using nothing but a stopwatch and a pencil.

</p><p>Get started with <a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_1" title="Tutorial:Site Optimization Tutorial - Lesson 1"> with lesson 1</a>



</p><p><br />

</p><p><span id="title_name_el" class="wm_hidden_meta_class" title="Site Optimization Tutorial" style="visibility: hidden;"> <span id="page_path_el" class="wm_hidden_meta_class" title="/webmonkey/98/26/" style="visibility: hidden;"> <span id="author_el" class="wm_hidden_meta_class" title="smudge" style="visibility: hidden;"> <span id="creation_date_el" class="wm_hidden_meta_class" title="Updated 2002-12-13T24:00:00Z" style="visibility: hidden;"> </span></span></span></span>


<div id="series">

<div class="series_hdr">Site Optimization Tutorial</div>

<table style="background: rgb(229, 249, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="620">

<tbody><tr>



<td>

<p><strong class="selflink"> Site Optimization Tutorial &#8211; Overview</strong><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_1" title="Tutorial:Site Optimization Tutorial - Lesson 1"> Site Optimization Tutorial &#8211; Lesson 1</a><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_2" title="Tutorial:Site Optimization Tutorial - Lesson 2"> Site Optimization Tutorial &#8211; Lesson 2</a><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_3" title="Tutorial:Site Optimization Tutorial - Lesson 3"> Site Optimization Tutorial &#8211; Lesson 3</a><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_4" title="Tutorial:Site Optimization Tutorial - Lesson 4"> Site Optimization Tutorial &#8211; Lesson 4</a>
</p>



</td></tr></tbody></table>

</div><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/site_optimization_tutorial/feed/</wfw:commentRss>
        <slash:comments>1</slash:comments>

        
    </item>
    
    <item>
        <title>Site Optimization Tutorial &#8211; Lesson 1</title>
        <link>http://www.webmonkey.com/2010/02/site_optimization_tutorial_-_lesson_1/</link>
        <comments>http://www.webmonkey.com/2010/02/site_optimization_tutorial_-_lesson_1/#comments</comments>
        <pubDate>Tue, 16 Feb 2010 01:45:47 +0000</pubDate>

                <dc:creator>Webmonkey Staff</dc:creator>

        <guid isPermaLink="false">http://stag.wired.com/primate/?p=641</guid>
        		<category><![CDATA[Backend]]></category>
		<category><![CDATA[UI/UX]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[wiki]]></category>
        <description><![CDATA[A picture&#8217;s worth a thousand words. An old saying, but true enough on the web where you can transfer chapters of text in the time it takes to download just one big image. Ever notice how pictures are always the last thing to show up when you&#8217;re surfing? That&#8217;s because the biggest hunk of download [...]]]></description>

            <content:encoded><![CDATA[<!-- wpautop disabled --><p>A picture&#8217;s worth a thousand words. An old saying, but true enough on the web where you can transfer chapters of text in the time it takes to download just one big image. Ever notice how pictures are always the last thing to show up when you&#8217;re surfing? That&#8217;s because the biggest hunk of download time comes from the image files.

</p><p>Over the next four days, we&#8217;ll be looking at all the different ways to get pages down to their leanest and meanest. Today we start with the most egregious and most obvious culprit: images.

</p><p>By the way, a lot has changed since the first edition of this tutorial &#8211; there&#8217;s more to optimizing image performance today than just knowing your GIFs from your JPEGs. (Though we&#8217;ll review that, since this may be your first time around.) There are now other file formats (like PNG) worth considering, and improved weighted-optimization techniques to throw into the mix.

</p><p>And, hey, quite a bit hasn&#8217;t changed. For one, web users haven&#8217;t gotten any more patient. It doesn&#8217;t matter how ice-cool your images may look &#8211; if they can&#8217;t be downloaded quickly over a 56K modem, very few people without broadband will stick around to see them.

</p><p>Fortunately, there&#8217;s still a host of tricks and optimizations that web designers can implement to speed image downloads. Let&#8217;s start with the easiest thing in the world.

</p><span id="more-641"></span>

<table id="toc" class="toc" summary="Contents"><tbody><tr><td><div id="toctitle"><h2>Contents</h2> </div>



<ol>

<li><a href="#Don.27t_Need_It.3F_Don.27t_Use_It.">Don&#8217;t Need It? Don&#8217;t Use It.</a></li>

<li><a href="#Image_Formats">Image Formats</a></li>

<li><a href="#JPG_and_PNG_Basics">JPG and PNG Basics</a></li>

<li><a href="#Standard_Image_Compression">Standard Image Compression</a></li>



<li><a href="#Advanced_Compression_Techniques">Advanced Compression Techniques</span></a></li>

<li><a href="#Faster_Than_a_Speeding_Progressive_Download">Faster Than a Speeding Progressive Download</a></li>

<li><a href="#Cache_Is_Your_Friend">Cache Is Your Friend</a></li>

<li><a href="#Size_.27Em_Right">Size &#8216;Em Right</a></li>

</ol>



</td></tr></tbody></table>



<a name="Don.27t_Need_It.3F_Don.27t_Use_It."></a><h4> <span class="mw-headline">Don&#8217;t Need It? Don&#8217;t Use It.</span></h4>

<p>Nothing tricky or techie about this, but, friend, it works wonders. Before you do anything else, remove every superfluous image from your page&#8217;s design. Now &#8220;superfluous&#8221; doesn&#8217;t mean your company logo or a useful map to your office. We&#8217;re talking about that clever, animated envelope next to your Send Mail link. Or, if your site has a splash page with a big logo and a [CLICK HERE TO ENTER!] link, ditch it and send your audience directly your main page. Trust us:a fast-loading, functional website gives your business a better image than some splashy intro that offers the user no real content, and nothing to do but wait for the next page to load.

</p><p>Remember, shaving a paltry 10KB image off your site may not sound like that impressive an improvement, but if you&#8217;re working with a 40KB page, that 10 KB represents a healthy 25 percent reduction in download time not a bad trade for the loss of hi-res picture of your new Hello Kitty toaster.

</p><p>If you&#8217;re really hell bent about creating split-second page loads or you have a page that desperately needs trimming, consider axing graphical submit buttons and replacing them with text submits. They are recommended by user interface experts and users alike.

</p><p><b>Click to Submit Data</b>

</p><p>Also, you can replace animated GIFs with static images, which take a fraction of the time to download.

</p><p>Finally, a lot of fancy &#8220;header&#8221; and navigation graphics can be replaced with larger text, appropriately styled with a <font> tag or CSS. These days, this option works better than ever, because Windows XP and Mac OS X browsers natively support text anti-aliasing. This process smooths the jagged edges around fonts, giving screen type a more natural, refined look, especially at bigger font sizes.

</font></p>

<font><a name="Image_Formats"></a></font><h4><font> <span class="mw-headline">Image Formats</span></font></h4>



<p><font>Unless you&#8217;re bent on evoking that retro-fly ARCHIE or GOPHER feel, you&#8217;re probably going to be using some images on your pages. Just follow a few simple guidelines as you generate your images, and your pages will download in record time.

</font></p><p><font>To begin with, decide whether a given image ought to be a GIF, JPEG, or PNG. This may seem elementary, but it&#8217;s a mistake that&#8217;s still slowing down a good percentage of web pages out there.

</font></p><p><font>GIF is the oldest and most compatible file format for pictures on the web perfectly suited for smaller graphics that need to look crisp and clean, but don&#8217;t need more than 256 colors. GIFs can also be saved with one &#8220;transparent color,&#8221; allowing them to have irregularly shaped borders. Simple company logos, icons, and navigation buttons are good examples of graphics that should be saved in GIF format.

</font></p><p><font>Now, PNG is a lot like GIF &#8211; in fact, it was developed to be a patent-free alternative to GIF, created with the same sort of uses in mind. PNG builds on GIF&#8217;s basic features, with improvements like more colors, fancy multilevel transparency (ideal for delicate drop-shadow effects), even gamma-correction, which ensures that colors look the same on Mac, Windows, and Linux computers. Best of all, not only are PNGs just as good as GIFs in almost every way, but PNGs use better file compression so they&#8217;re smaller files which load more quickly.

</font></p><p><font>In short, PNG is an excellent substitute for GIF, built to handle the same types of graphics (logos, icons, irregularly-shaped items, et cetera) better and faster. There&#8217;s just one BIG drawback:a tiny, tiny percentage of browsers won&#8217;t display PNGs at all! And, because of this, hardly anybody uses PNGs yet.

</font></p><p><font>So should you risk stepping up to PNG just to make your pages faster? Well, probably, &#8220;Yeah!&#8221; We&#8217;ll come back to that decision, but first, let&#8217;s talk compression basics, and see how underdog PNG and old-timer GIF stack up against JPEG, the hulking file format that crushes photo-realistic data into teensy-weensy files.

</font></p>

<font><a name="JPG_and_PNG_Basics"></a></font><h4><font> <span class="mw-headline">JPG and PNG Basics</span></font></h4>

<p><font>PNGs and GIFs use a lossless compression format. Unlike a JPEG, the details of your graphic won&#8217;t get blurry. If you&#8217;re scanning something like a finely detailed map, or creating anything with small text, you should choose the GIF or PNG format. Just keep in mind that using GIFs (and even PNGs) for large pictures leads to huge file sizes and long download times.

</font></p><p><font>For example, take a look at these three images:

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_mapgif.gif" alt="siteoptimization1_mapgif.gif">

<i>12 KB GIF</i>

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_mappng.png" alt="siteoptimization1_mappng.png">

<i>13 KB PNG</i>



</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_mapjpg.jpg" alt="siteoptimization1_mapjpg.jpg">

<i>12 KB JPG</i>

</font></p><p><font>The first is a GIF, the second is a PNG, and the third is a JPEG. All three files are comparable size-wise, right around 12K. If this were a map to your office, which two formats would you consider? Right. So why use JPEGs at all, then?

</font></p><p><font>Well, take a look at these three images:

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_cactusgif.gif" alt="siteoptimization1_cactusgif.gif">

<i>49 KB GIF</i>

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_cactuspng.png" alt="siteoptimization1_cactuspng.png">

<i>44 KB PNG</i>

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_cactusjpg.jpg" alt="siteoptimization1_cactusjpg.jpg">

<i>12 KB JPG</i>

</font></p><p><font>Again, the first is a GIF. Even though it&#8217;s maxing out at 256 colors (it&#8217;s 8-bit), it looks OK, but you&#8217;ll notice that the file size is huge. The second is a picture-perfect PNG, displaying thousands of colors at once, so the shading between similar colors is really <a href="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_cactusjpg.jpg" class="external text" title="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_cactusjpg.jpg" rel="nofollow">nice and smooth</a>. But again with the big file size.



</font></p><p><font>Now the third file, a JPEG, is also using thousands of colors, and lookin&#8217; pretty good, too. And check out the small, superslim file size! See, JPEG has the advantage of &#8220;lossy&#8221; compression in which some information is actually discarded when creating the file. So while you might see some photographic details being blurred, and other tell-tale digital artifacts that are the bi-product of lossy compression, the overall image looks OK, and the file size is a fraction of what can be achieved with more accurate lossless methods.

</font></p><p><font>JPEGs are the perfect file format for color photographs on the web, whether they&#8217;re scanned or straight from the digital camera. Just keep in mind that JPEGs can&#8217;t do animation or transparency, and they don&#8217;t handle detailed drawings as well as GIFs or PNGs.

</font></p>

<font><a name="Standard_Image_Compression"></a></font><h4><font> <span class="mw-headline">Standard Image Compression</span></font></h4>

<p><font>Grab a demo of GraphicConverter, Photoshop, or Fireworks and experiment with compression. Try a bunch of different settings and see what you liked best in terms of display quality and file size.

</font></p><p><font>JPEG offers the widest range of compression levels, technically speaking, but it&#8217;s pretty intuitive: The more you compress an image, the worse it looks. Image-editing programs generally offer Low, Medium, and High options for image quality. Photoshop and Fireworks let the user twist the compression dial anywhere between levels 1 and 100. (Yes, and Nigel Tufnel would be impressed &#8211; but may we suggest a level 101?) Avoid the extremes, obviously, but determining the right level of compression on a given photograph is ultimately up to you.

</font></p><p><font>You can&#8217;t variably compress GIFs or PNGs <i>per se</i>, but you are able to reduce their color bit depth, which limits the number of colors used. To calculate the number of colors at a given bit depth, take 2 to the power of the bit depth (i.e., 8-bit color = 256 colors). The fewer the colors, the smaller the kilobyte size of the image. Say you&#8217;re building the Coca-Cola website &#8211; you can probably reduce your logo to a bit depth of 2 or 3. 2-bit color allows you a bold red and a white, but 3-bits buys you a few extra shades of each to smooth out rough edges. Speaking of extra shades, optimization pros will notice that using anti-aliased text in graphics makes it much harder to lower image bit depths. The anti-aliasing effect requires many extra colors to give text that softer look. If you must use type in your images, keeping it plain helps shrink file sizes and makes the text easier to read.

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_flowerpot4.gif" alt="siteoptimization1_flowerpot4.gif">

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_flowerpot256.gif" alt="siteoptimization1_flowerpot256.gif">

</font></p><p><font>Above: 2-bit and 8-bit versions of the same image. If you don&#8217;t need an extended range of colors, there&#8217;s no need to use higher bit depths!

</font></p>

<font><a name="Advanced_Compression_Techniques"></a></font><h4><font> <span class="mw-headline">Advanced Compression Techniques</span></font></h4>



<p><font>Even the simplest image-editing utilities let you play around with bit-depths and other compression settings. Photoshop offers a superb interface for previewing and managing compression options. Controlling color tables, dithering, and transparency while you fine-tune an image&#8217;s size is a breeze with these two titles.

</font></p><p><font>Photoshop has other options for power-users wanting better control over the image compression process. With weighted optimization, you identify important areas in your image using a masking tool, and then vary the compression settings across the image&#8217;s different regions. For example, you could apply maximum compression to the background of a candid snapshot, and apply better image quality to the people in front. Your finished product shows people&#8217;s faces without any strange-looking digital artifacts, while the unremarkable background contains evidence of higher compression settings.

</font></p><p><font>Weighted optimization works on GIFs, too. For instance, you might mark off key aspects of logo artwork, so critical image areas wouldn&#8217;t dither or have colors jump, when you began adjusting the bit depth.

</font></p><p><font>Nifty, eh? Well, to quote every self-respecting TV infomercial, &#8220;Wait! That&#8217;s not all!&#8221; There are other Ginsu-sharp tools in Photoshop&#8217;s &#8220;Save For Web&#8221; dialog. One is a blur effect for JPEGs that reduces the impact of digital artifacts &#8211; most handy, but best used with a light touch. Photoshop also lets you specify JPEGs to be formatted as &#8220;Baseline Optimized&#8221;, which is a slightly smaller format file size-wise. Disregard Photoshop&#8217;s warning that Baseline Optimized JPEGs are less compatible &#8211; they look OK in all browsers. Well, except of course for Lynx.

</font></p><p><font>&lt;nerd&gt; (Alright, alright. Since you really want to know, baseline optimized images use different quantization divisor tables and Huffman dictionaries than specified in the old-school JPEG/JFIF standard. So while optimized images may throw some image-editors and encoding software for a loop, the JPEG decoder in a web browser doesn&#8217;t care, since it parses the DQT and DHK markers to get those tables! Yeah, like, I know, how wacky is that?) &lt;/nerd&gt;

</font></p><p><font>Obviously, JPEG compression relies on extremely advanced mathematics. GIFs on the other hand&#8230;

</font></p><p><font>A GIF is just a list of colored pixels. GIF&#8217;s only attempt at compression is to abbreviate whenever same-color pixels are right next to each other horizontally. And that&#8217;s all.

</font></p><p><font>So with a row of 100 white pixels, the GIF format saves space by using an annotation along the lines of &#8220;one white, 99 more of same color&#8221;. A row of alternating black-and-white pixels, on the other hand, requires a more verbose description (&#8220;one black, one white, one black, one white&#8221;) and soaks up more space. Basically, it&#8217;s a big deal if colors change on the same horizontal line.

</font></p><p><font>Photoshop does have a &#8220;Lossiness&#8221; feature for decreasing GIF sizes, which takes advantage of GIF&#8217;s fondness for like-color clumps. Photoshop will substitute pixels here and there, and try to increase the number of same-color pixels sitting next to each other. It works okay, but not as well as it sounds; the automated results can look pretty bad, especially on the types of pixel-perfect artwork you&#8217;d want to use GIF for, anyway.

</font></p><p><font>If you&#8217;re hell-bent on optimizing a GIF&#8217;s size beyond reducing its colors, consider the compression scheme while designing it, and avoid changing colors along the horizontal axis. E.G., if you were drawing a logo with a &#8220;black-white-black-white&#8221; checker pattern in parts, consider using a solid grey instead. Don&#8217;t forget, GIF compression only takes horizontal rows into account. Ten vertical lines of white pixels occupy as much space as ten vertical lines of ten different colors.

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_badgif.gif" alt="siteoptimization1_badgif.gif">

<i>Bad GIF pattern</i>



</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_goodgif.gif" alt="siteoptimization1_goodgif.gif">

<i>Good GIF pattern</i>

</font></p><p><font>Wow! I think we finally have compression covered.

</font></p><p><font>Executed by an expert (that&#8217;s you now!), this increased control over image optimization should squeeze a few more kilobytes from each of your images, saving users seconds (and hopefully minutes) when paging through your site. That&#8217;s charitable, but remember:when a user doesn&#8217;t feel their time is being wasted, they&#8217;re liable to do just that &#8211; waste serious time. When they do it at your site, clicking link after link, that&#8217;s a good thing.

</font></p>

<font><a name="Faster_Than_a_Speeding_Progressive_Download"></a></font><h4><font> <span class="mw-headline">Faster Than a Speeding Progressive Download</span></font></h4>

<p><font>Alright. So your images are now as small and fast they can get. Let&#8217;s quickly cover one way to make them seem faster without focusing on file sizes.

</font></p><p><font>When you save images in an &#8220;Interlaced&#8221; (GIFs and PNGs) or &#8220;Progressive Loading&#8221; (JPG) format, the browser displays your pictures as fast as they can. First, they draw a rough approximation of the picture, then fill in details later. Sloppy as it sounds, this improves the user experience, because basic page elements get assembled quickly. Users can interact with the page &#8211; read your text content and such &#8211; before the loading process is completely finished.

</font></p><p><font>In the mid-90&#8242;s Paleoithic Era of the web, designers used the &#8220;lowsrc&#8221; attribute of the &lt;img&gt; tag for similar reasons. Browsers can load a super-compressed version of an image first, then load the &#8220;real&#8221; file later. The lowsrc approach &#8211; which requires downloading twice as many images &#8211; has been all but abandoned in favor of the progressive-loading technique.

</font></p><p><font>If you&#8217;re slipping into the radical optimization mindset, you&#8217;ve no doubt noticed that progressive or interlaced images are sometimes a little bigger kilobyte-wise. In this case, learn to live with it &#8211; there&#8217;s more to making a page &#8220;optimized&#8221; than just download size.

</font></p><p><font>In fact, there are 3 kinds of speed to think about on the web:



</font></p>

<ul><font><li> Download Speed

</li><li> Render Speed

</li><li> Visual Accessibility

</li></font></ul>

<p><font>A user makes the split-second decision between clicking through or heading back based upon a combination of these three types of speed. A good designer needs to find a way to balance the three elements, not unlike balancing a house of cards, to create the ideal download.

</font></p><p><font>Note that this timeline ends the first second a visitor is able to access and meaningfully interact with a page, not strictly when the page finishes rendering. In terms of user experience, rendering time is often academic.

</font></p><p><font>Knowing when a page has rendered enough to be useful (as opposed to a concrete ceiling of 10 KB or a &#8220;no more than three graphics per page&#8221; rule) gives a designer the layout latitude necessary to create a successful page. As long as users don&#8217;t ask, &#8220;Hey, how big is this page, anyway?&#8221;, the page is doing its job.

</font></p>

<font><a name="Cache_Is_Your_Friend"></a></font><h4><font> <span class="mw-headline">Cache Is Your Friend</span></font></h4>

<p><font>There&#8217;s one more important technique that&#8217;s key to boosting the perceived speed of your site. Those images that repeat throughout your site &#8211; common logos, headers, or navigation bars &#8211; don&#8217;t need to be downloaded more than once. By default, most browsers set aside a memory cache to store recently-used images in RAM and on the hard disk. If a browser recognizes the same filename, it&#8217;ll pull the image straight from the cache instead of downloading it. This provides a massive performance boost that a lot of automated timing programs don&#8217;t acknowledge. Just pull out a stopwatch and see for yourself.

</font></p><p><font>Since the client-side cache is such a useful ally, you should design pages with the browser cache in mind. For instance, if your site uses a number of different header graphics that vary only slightly (like a standard logo with various department names underneath it), try breaking up the image so that the unchanged portion (the standard logo) is stored in the cache and always loads immediately. Though you&#8217;ll still need to load a new graphic on each page (in this case, a department name), the image is smaller and therefore downloads faster.



</font></p><p><font>Browser caches are conceptually similar, but not the same thing as Network (or &#8220;Proxy&#8221;) cache, which we cover later in this Tutorial.

</font></p>

<font><a name="Size_.27Em_Right"></a></font><h4><font> <span class="mw-headline">Size &#8216;Em Right</span></font></h4>

<p><font>While your image editor is open, make sure the image is the same size (at 72 dpi) as it will appear on the web page. In your <tt>HTML</tt>, use the <tt>WIDTH</tt> and <tt>HEIGHT</tt> attributes of the <tt>&nbsp;IMAGE¢</tt> tag to restate the image&#8217;s actual dimensions. This allows the browser to lay out the rest of the page while the image is still downloading &#8211; so folks have something to read while they wait &#8211; and ensures that people surfing with &#8220;images off&#8221; will still see the page in its proper layout.



</font></p><p><font>If you&#8217;re using tables on your page, image dimensions take on a special importance since dimensionless images sometimes force browsers to clear and re-render the page. This occurs when a browser starts building the table&#8217;s structure according to the HTML-specified <tt>&lt;TABLE&gt; and &lt;TD&gt;</tt> dimensions and then, belatedly, discovers that an image lacking HTML dimensions is, in fact, too large to fit. Browsers will then re-render the table to accommodate the unwieldy image. This inefficient page rendering takes time, and it&#8217;s unpleasant for the user to see page elements move around, or disappear and reappear.

</font></p><p><font>You probably know this already, but when it comes to the WIDTH and HEIGHT attributes, the most important thing to remember is never use them to re-size or adjust the shape of graphics on your pages! Re-sizing via HTML is super-bad for two reasons. First, if you increase an image&#8217;s dimensions larger than the image&#8217;s actual size (at 72 dpi), you&#8217;ll end up with a jagged picture. Like this:

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_imagesix.gif" alt="siteoptimization1_imagesix.gif">

</font></p><p><font>Secondly, you&#8217;ll take a nasty performance hit. Using HTML to make an image appear smaller than its true size doesn&#8217;t always look as bad, but much more data gets downloaded than the browser actually needs for drawing the image, thus adding to the download time.

</font></p><p><font>Rules, of course, are made to be broken, and there is one case where it&#8217;s acceptable to fracture this rule. If you&#8217;ve been browsing Wired and Webmonkey long enough, you&#8217;ve probably seen images like this:

</font></p><p><font><img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_imageseven.gif" alt="siteoptimization1_imageseven.gif">

<img src="http://www.wired.com/wired/webmonkey/stuff/siteoptimization1_imageseven.gif" alt="siteoptimization1_imageseven.gif">

</font></p><p><font>In this case, both pictures are actually the same GIF file, so they take the exact same amount of time to download. However, the one on the right has been doubled in size via the WIDTH and HEIGHT attributes of the img tag. There isn&#8217;t any jaggedness because this image lacks any curves or diagonal lines. If you&#8217;ve got a logo or design that&#8217;s all right angles (lucky dog), you can use a super-small GIF (which downloads cheetah-quick) and then re-size it to your heart&#8217;s content in HTML &#8211; just remember to keep the dimensions proportional.

</font></p><p><font>You artsy folks out there might want to experiment with using HTML to re-size all sorts of images for creative effect (certainly the designers here at Wired used to enjoy it). Of course, only you know if the company president will care if you take the &#8220;artsy approach&#8221; with his photo.

</font></p><p><font><br />

<span id="title_name_el" class="wm_hidden_meta_class" title="Site Optimization Tutorial" style="visibility: hidden;"> <span id="page_path_el" class="wm_hidden_meta_class" title="/webmonkey/98/26/" style="visibility: hidden;"> <span id="author_el" class="wm_hidden_meta_class" title="smudge" style="visibility: hidden;"> <span id="creation_date_el" class="wm_hidden_meta_class" title="Updated 2002-12-13T24:00:00Z" style="visibility: hidden;"> </span></span></span></span>



</font></p>

<div id="series">

<div class="series_hdr"><font>Site Optimization Tutorial</font></div>

<table style="background: rgb(229, 249, 255) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" width="620">

<tbody><tr>

<td>

<p><a href="/2010/02/Site_Optimization_Tutorial" title="Tutorial:Site Optimization Tutorial"> Site Optimization Tutorial</a><br />

<strong class="selflink"> Site Optimization Tutorial &#8211; Lesson 1</strong><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_2" title="Tutorial:Site Optimization Tutorial - Lesson 2"> Site Optimization Tutorial &#8211; Lesson 2</a><br />

<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_3" title="Tutorial:Site Optimization Tutorial - Lesson 3"> Site Optimization Tutorial &#8211; Lesson 3</a><br />



<a href="/2010/02/Site_Optimization_Tutorial_-_Lesson_4" title="Tutorial:Site Optimization Tutorial - Lesson 4"> Site Optimization Tutorial &#8211; Lesson 4</a>

</p>

</td></tr></tbody></table>

</div><div id='linker_widget' class='contextly-widget'></div>]]></content:encoded>
            <wfw:commentRss>http://www.webmonkey.com/2010/02/site_optimization_tutorial_-_lesson_1/feed/</wfw:commentRss>
        <slash:comments>0</slash:comments>

        
    </item>
    </channel>
</rss>
