<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">

    <channel>
    
    <title>Erik Uetz @ Sundog</title>
    <link>http://www.sundoginteractive.com/sunblog/</link>
    <description>Here's what's on the minds of our marketing and technology experts. </description>
    <dc:language>en</dc:language>
    <dc:creator>Erik Uetz</dc:creator>
    <dc:rights>Copyright 2009</dc:rights>
    <dc:date>2009-09-01T00:54:34+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.expressionengine.com/" />
    <image>
		<url>http://www.sundoginteractive.com/images/logo_art.png</url>
		<title>Sundog</title>
		<link>http://www.sundoginteractive.com/sunblog/</link>
		<width>50</width>
		<height>46</height>
		<description>Sundog feed artwork</description>
	</image> 
    

    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Sunblog_euetz" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sunblog_euetz" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title><![CDATA[Simple Short URLs with ExpressionEngine]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/simple-short-urls-with-expressionengine</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>If you use Twitter, you&#8217;ve no doubt seen short URLs. Posting most web page URLs would use up almost all of the 140 characters allowed by Twitter. Services like <a href="http://bit.ly">http://bit.ly</a> and http://tr.im shorten any URL to just a few characters, leaving plenty of room for your comments. But <a href="http://blog.tr.im/post/159369789/tr-im-r-i-p" title="tr.im R.I.P.">history has shown</a> these third party services may not be reliable. That&#8217;s why it might be best to roll your own&#8230;and ExpressionEngine can make it easy.</p>

<p>ExpressionEngine creates very descriptive, keyword-rich URLs. And while the URLs are friendly, they can get quite long (this page&#8217;s URL is 77 characters long). But every ExpressionEngine entry also has a &#8216;short URL&#8217; in the form of its ID number. And when used in a URL, the &#8216;URL title&#8217; is interchangeable with the ID.</p>

<p>So <code>http://www.sundog.net/sunblog/posts/simple-short-urls-with-expressionengine/</code></p>

<p>can become <code>http://www.sundog.net/sunblog/posts/3487/</code> with very little effort.</p>

<p>We can get the URL shorter still, but we&#8217;ll need to create a new template group. The shortest a template group name can get is a single letter, and I chose &#8216;e&#8217; (for &#8216;entry&#8217;). PHP parsing needs to be enabled for the index page, with parsing order set to &#8216;Output&#8217;.</p>

<p>The code in the template is very simple:</p>

<p><code></p><pre>
&#123;exp:weblog:entries&#125;
&lt;?php
        header("Location: {url_title_path=sunblog/posts}", true, 301);
        exit;
?&gt;
&#123;/exp:weblog:entries&#125;
</pre><p></code></p>

<p>The EE tags are parsed first (because PHP parsing order is set to &#8216;output&#8217;), which dynamically (based on the entry id) fills in the location for the PHP redirect. The <code>url_title_path</code> is the full text URL.</p>

<p>Using this method we have reduced this:</p>

<p>(77 characters) - <code>http://www.sundog.net/sunblog/posts/simple-short-urls-with-expressionengine/</code></p>

<p>down to this:</p>

<p>(25 characters) - <code>http://sundog.net/e/3487</code></p>

<p>Keeping the domain name in the link adds authenticity and credibility. That&#8217;s important because third party services can be used to distribute malware. And because the entry id in ExpressionEngine is the permanent identifier for all entries, the short URL will still work even after changing the url title of the entry.</p>

<p>I have added the short URL to the bottom of our entry template, so it is now available for all our blog posts. Feel free to use them for all of your link posting needs.</p>]]></description>
      <dc:subject />
      <dc:date>2009-09-01T00:54:34+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/simple-short-urls-with-expressionengine</guid>
    </item>

    <item>
      <title><![CDATA[Names and IDs]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/names-and-ids</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>In XHTML 1 strict and HTML 5, the name attribute on many elements has been replaced with the id attribute. But name hasn't been replaced entirely. Form elements still use both name and id, and both serve very different functions.</p>

<h3>The id Attribute</h3>

<p>Most web developers are familiar with the id attribute in some way. It is a unique identifier for elements in HTML. Because all ids on a page must be unique, they are very useful for specific targeting with CSS and Javascript. The ids themselves are most effective when they are descriptive, such as:</p>

<pre>
&lt;div id="header"&gt;&lt;/div&gt;
&lt;div id="content"&gt;&lt;/div&gt;
&lt;div id="footer"&gt;&lt;/div&gt;
</pre>

<p>IDs are also used for inner-page links. Let's say you want to create a link to mysite.com/products.html, but want to jump directly to the content of the page. This would be done by giving the content area an id of 'content', and then creating a link like this:</p>

<code><pre>&lt;a href="http://mysite.com/products.html#content"&gt;My Content&lt;/a&gt;</pre></code>

<p>The <code>#content</code> at the end of the link represents the specific element to which to jump. </p>

<h3>The name Attribute</h3>

<p>Before XHTML, the name attribute was mostly used the same way the id attribute is now. It was usually a unique identifier, just like the id. But in XHTML and HTML 5, their function has become focused on interaction and forms.</p>

<p>Form elements can have both name and id attributes. The id attribute on form elements serves the same purpose as I described above...unique identifiers. But the name attribute is different, and in certain circumstances doesn't need to be unique.</p>

<p>When a form is submitted, the page is redirected to the location indicated in the action attribute in the form tag. The values entered into the form are added to the new page as name/value pairs in the HTTP header. Those values can then be accessed with Javascript or a server-side script, where they can be processed or added to a database. The name attribute is what is used for the name in the name/value pair. </p>

<p>Checkboxes and radio buttons have the same name attribute when they are grouped together. This is how they are associated with each other. So a series of checkboxes would look like this:</p>

<pre>
&lt;label&gt;&lt;input type="checkbox" name="colors" id="blue" value="blue"&gt; Blue&lt;/label&gt;
&lt;label&gt;&lt;input type="checkbox" name="colors" id="red" value="red"&gt; Red&lt;/label&gt;
&lt;label&gt;&lt;input type="checkbox" name="colors" id="yellow" value="yellow"&gt; Yellow&lt;/label&gt;
</pre>

<p>As you can see, they have the same name, but unique ids. So when the form is submitted, if Blue and Red are checked, the HTTP header will include colors:blue and colors:red.</p>

<p>I hope this has helped clear any confusion you may have had when creating forms. When used together, the id and name attributes can give you a lot of control over HTML.</p>]]></description>
      <dc:subject><![CDATA[Web Development,]]></dc:subject>
      <dc:date>2009-08-01T00:30:31+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/names-and-ids</guid>
    </item>

    <item>
      <title><![CDATA[Skip Photoshop&#8230;Mock Up Tables in HTML&nbsp;and&nbsp;CSS]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/skip-photoshop...mock-up-tables-in-html-and-css</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>Photoshop is a great tool for mocking up websites. Layers, shapes, and filters help make the design process quick and easy. However, designing data tables can be a chore. Setting the spacing and alignment of the text, borders, and rows isn&#8217;t necessarily hard, but is definitely tedious. A simple change of cell padding could require resizing and moving dozens of objects and layers, one at a time.</p>

<p>My advice for mocking up data tables in Photoshop? Don&#8217;t bother. There are plenty of other tools that design tables with less effort. And since a mockup&#8217;s final destination is a website, why not start with HTML?</p>

<p>HTML and CSS give an enormous amount of control over the design of tables. I always start with a table of fake data, including headers and footers. The markup looks something like this:</p>

<pre><code>
    &lt;table&gt;
        &lt;thead&gt;
            &lt;tr&gt;
                &lt;th&gt;Facilisi Formas&lt;/th&gt;
                &lt;th&gt;Ullamcorper&lt;/th&gt;
                &lt;th&gt;Usus&lt;/th&gt;
                &lt;th&gt;Feugiat&lt;/th&gt;
                &lt;th&gt;Humanitatis&lt;/th&gt;
            &lt;/tr&gt;
        &lt;/thead&gt;
        &lt;tfoot&gt;
            &lt;tr&gt;
                &lt;td colspan=&quot;5&quot;&gt;This is the FOOTER&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tfoot&gt;
        &lt;tbody&gt;
            &lt;tr&gt;
                &lt;th&gt;Row 1&lt;/th&gt;
                &lt;td&gt;Parum Lius&lt;/td&gt;
                &lt;td&gt;Minim&lt;/td&gt;
                &lt;td&gt;$1,799&lt;/td&gt;
                &lt;td&gt;Quod&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;th&gt;Row 2&lt;/th&gt;
                &lt;td&gt;Ex Amet Erat&lt;/td&gt;
                &lt;td&gt;Quinta&lt;/td&gt;
                &lt;td&gt;$4,342,099&lt;/td&gt;
                &lt;td&gt;Vulputate&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;th&gt;Row 3&lt;/th&gt;
                &lt;td&gt;Nonummy&lt;/td&gt;
                &lt;td&gt;Sed Seacula&lt;/td&gt;
                &lt;td&gt;$325&lt;/td&gt;
                &lt;td&gt;Et Dolore Iis&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;th&gt;Row 4&lt;/th&gt;
                &lt;td&gt;Doming&lt;/td&gt;
                &lt;td&gt;Tation Nunc&lt;/td&gt;
                &lt;td&gt;$99&lt;/td&gt;
                &lt;td&gt;Nunc Futurum&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
                &lt;th&gt;Row 5&lt;/th&gt;
                &lt;td&gt;Adipiscing Est Id&lt;/td&gt;
                &lt;td&gt;Nonummy&lt;/td&gt;
                &lt;td&gt;$41,799&lt;/td&gt;
                &lt;td&gt;Putamus&lt;/td&gt;
            &lt;/tr&gt;
        &lt;/tbody&gt;
    &lt;/table&gt;
</code></pre>

<p>I reuse this code for almost any design. Using CSS3 selectors, just about any table element can be targeted for styling. Here is the CSS for the above table:</p>

<p><code></p><pre>
    table &#123;
        font: normal 12px/1 Helvetica;
        border-collapse: collapse;
        padding: 0;
        border: 1px solid #6a7180;
        text-align: left;
        width: 500px;
    &#125;
    
    tbody tr:nth-child(even) &#123;
        background: #ddd;
    &#125;
    
    th, td &#123;
        line-height: 1.2;
        font-size: 11px;
        padding: 5px 6px;
        border: 1px solid #999;
        border-top: 0;
        border-bottom: 0;
    &#125;
    
    th &#123;
        font-weight: bold;
        background: rgba(163,169,183,.40);
        border-left: 1px solid #6a7180;
    
    &#125;
    
    thead th, tfoot td &#123;
        background: #a3a9b7;
        white-space: nowrap;
        padding: 12px 6px;
        text-transform: uppercase;
        font-weight: bold;
        border: 1px solid #6a7180;
    &#125;
    
    th:nth-child(4), td:nth-child(4) &#123;
        text-align: right;
    &#125;
</pre><p></code></p>

<p>There are several things to note about this CSS. Alternating row colors (zebra striping) is a great way to make tables easier to read, but it&#8217;s normally accomplished by setting a class to every other row in the markup, or through Javascript. It&#8217;s much easier using CSS3&#8217;s <code>:nth-child(even)</code> pseudo-class selector, which automatically targets every <em>even</em> table row.</p>

<p>Since I want the zebra striping to show through the header column, I am using CSS3&#8217;s <code>rgba(red,green,blue,alpha)</code> color value. The &#8216;a&#8217; in RGBa adds transparency as a decimal value between 0 (completely transparent) and 1 (opaque).</p>

<p>To give the &#8216;price column&#8217; a right-alignment, I am again utilizing the <code>:nth-child()</code> pseudo-class. In this case, I am targeting the fourth column in each row with <code>td:nth-child(4)</code>.</p>

<p>Now load this HTML into your browser (Safari, Chrome, or the latest previews of Firefox or Opera) and take a screenshot. Open the screenshot in Photoshop, crop, and drop it into the mockup. Here is a screenshot of the above sample (from Safari):</p>

<p><img src="http://www.sundoginteractive.com/images/uploads/sample_table.png" alt="sample table" title="" width="500" height="193" /></p>

<p>Updating the mockup in Photoshop is now done with a simple two-step process of deleting or hiding the current screenshot and dropping in a new one. Easy-peasy.</p>

<p>A note of caution: this HTML and CSS will need to be modified for a live website. Older browsers may not support nth-child selectors (older Firefoxes), RGBa color values (older Operas), or both (any Internet Explorer, including 8).</p>]]></description>
      <dc:subject><![CDATA[Design-Experience Design, Web Development,]]></dc:subject>
      <dc:date>2009-05-26T17:22:22+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/skip-photoshop...mock-up-tables-in-html-and-css</guid>
    </item>

    <item>
      <title><![CDATA[Little-Known Tech: Data URIs]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/little-known-tech-data-uris</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>An image doesn’t always have to be an image. Images on websites are usually .png, .jpg, or .gif files located on a server that are referenced in code. Data URIs allow you to skip referencing an image file and embed the image directly in the HTML or CSS. Here are the basics:</p>

<p>When placing an image on a web page, it’s usually done by referencing an image on the server:</p>

<p><code>&lt;img src="/images/smileys/smile.gif" alt="Smile"/&gt;</code></p>

<p>Which looks like this: <img src="/images/smileys/smile.gif" alt="Smile" style="float: none; margin:0; vertical-align: baseline;"/></p>

<p>A data URI is the same image encoded and added directly to the code:</p>

<p><code>&lt;img src="data:image/gif;base64,R0lGODlhEwATAPcAAP/+//7/////+////fvzYvryYvvzZ/fxg/zxWfvxW/zwXPrtW/vxXvfrXv3xYvrvYvntYvnvY/ruZPrwZPfsZPjsZfjtZvfsZvHmY/zxavftaPrvavjuafzxbfnua/jta/ftbP3yb/zzcPvwb/zzcfvxcfzxc/3zdf3zdv70efvwd/rwd/vwefftd/3yfPvxfP70f/zzfvnwffvzf/rxf/rxgPjvgPjvgfnwhPvzhvjvhv71jfz0kPrykvz0mv72nvblTPnnUPjoUPrpUvnnUfnpUvXlUfnpU/npVPnqVPfnU/3uVvvsWPfpVvnqWfrrXPLiW/nrX/vtYv7xavrta/Hlcvnuf/Pphvbsif3zk/zzlPzylfjuk/z0o/LqnvbhSPbhSfjiS/jlS/jjTPfhTfjlTubUU+/iiPPokfrvl/Dll/ftovLWPfHXPvHZP/PbQ/bcRuDJP/PaRvjgSffdSe3ddu7fge7fi+zkuO7NMvPTOt2/Nu7SO+3OO/PWQdnGbOneqeneqvDqyu3JMuvJMu7KNfHNON7GZdnEbejanObXnOW8JOa9KOvCLOnBK9+4Ku3FL9ayKuzEMcenK9e+XODOiePSkODOkOW3ItisI9yxL+a9NtGiHr+VH5h5JsSfNM2bGN6rMJt4JMOYL5h4JZl5Jph3Jpl4J5h5J5h3KJl4KZp5Ks+sUN7Gi96lLL+PKMmbMZt2Jpp3Jpt3KZl4K7qFFdyiKdufKsedRdm7feOpQN2QKMKENrpvJbFfIrNjJL1mLMBpLr9oLrFhK69bJFkpE1kpFYNeTqFEIlsoFbmlnlsmFFwpGFkoF/////7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAANAALAAAAAATABMAAAj/AKEJHCgokKJKlhThGciQYSIva7r8SHPFzqGGAwPd4bKlh5YsPKy0qFLnT0NAaHTcsIHDho0aKkaAwGCGEkM1NmSkIjWLBosVJT6cOjUrzsBKPl54KmYsACoTMmk1WwaA1CRoeM7siJEqmTIAsjp40ICK2bEApfZcsoQlxwxRzgI8W8XhgoVYA+Kq6sMK0QEYKVCUkoVqQwQJFTwFEAAAFZ9PlFy4OEEiRIYJD55EodDA1ClTbPp0okRFxBQDBRgskAKhiRMlc+Sw4SNpFCIoBBwkUMBkCBIiY8qAgcPG0KBHrBTFQbCEV5EjQYQACfNFjp5CgxpxagVtUhIjwzaJYSHzhQ4cP3ryQHLEqJbASnu+6EIW6o2b2X0ISXK0CFSugazs0YYmwQhziyuE2PLLIv3h0hArkRhiCCzAENOLL7tgAoqDGLXSSSaPMLIIJpmAUst/GA3UCiuv1PIKLtw1FBAAOw==" alt="Smile"/&gt;</code></p>

<p>Which will display as: <img src="data:image/gif;base64,R0lGODlhEwATAPcAAP/+//7/////+////fvzYvryYvvzZ/fxg/zxWfvxW/zwXPrtW/vxXvfrXv3xYvrvYvntYvnvY/ruZPrwZPfsZPjsZfjtZvfsZvHmY/zxavftaPrvavjuafzxbfnua/jta/ftbP3yb/zzcPvwb/zzcfvxcfzxc/3zdf3zdv70efvwd/rwd/vwefftd/3yfPvxfP70f/zzfvnwffvzf/rxf/rxgPjvgPjvgfnwhPvzhvjvhv71jfz0kPrykvz0mv72nvblTPnnUPjoUPrpUvnnUfnpUvXlUfnpU/npVPnqVPfnU/3uVvvsWPfpVvnqWfrrXPLiW/nrX/vtYv7xavrta/Hlcvnuf/Pphvbsif3zk/zzlPzylfjuk/z0o/LqnvbhSPbhSfjiS/jlS/jjTPfhTfjlTubUU+/iiPPokfrvl/Dll/ftovLWPfHXPvHZP/PbQ/bcRuDJP/PaRvjgSffdSe3ddu7fge7fi+zkuO7NMvPTOt2/Nu7SO+3OO/PWQdnGbOneqeneqvDqyu3JMuvJMu7KNfHNON7GZdnEbejanObXnOW8JOa9KOvCLOnBK9+4Ku3FL9ayKuzEMcenK9e+XODOiePSkODOkOW3ItisI9yxL+a9NtGiHr+VH5h5JsSfNM2bGN6rMJt4JMOYL5h4JZl5Jph3Jpl4J5h5J5h3KJl4KZp5Ks+sUN7Gi96lLL+PKMmbMZt2Jpp3Jpt3KZl4K7qFFdyiKdufKsedRdm7feOpQN2QKMKENrpvJbFfIrNjJL1mLMBpLr9oLrFhK69bJFkpE1kpFYNeTqFEIlsoFbmlnlsmFFwpGFkoF/////7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAANAALAAAAAATABMAAAj/AKEJHCgokKJKlhThGciQYSIva7r8SHPFzqGGAwPd4bKlh5YsPKy0qFLnT0NAaHTcsIHDho0aKkaAwGCGEkM1NmSkIjWLBosVJT6cOjUrzsBKPl54KmYsACoTMmk1WwaA1CRoeM7siJEqmTIAsjp40ICK2bEApfZcsoQlxwxRzgI8W8XhgoVYA+Kq6sMK0QEYKVCUkoVqQwQJFTwFEAAAFZ9PlFy4OEEiRIYJD55EodDA1ClTbPp0okRFxBQDBRgskAKhiRMlc+Sw4SNpFCIoBBwkUMBkCBIiY8qAgcPG0KBHrBTFQbCEV5EjQYQACfNFjp5CgxpxagVtUhIjwzaJYSHzhQ4cP3ryQHLEqJbASnu+6EIW6o2b2X0ISXK0CFSugazs0YYmwQhziyuE2PLLIv3h0hArkRhiCCzAENOLL7tgAoqDGLXSSSaPMLIIJpmAUst/GA3UCiuv1PIKLtw1FBAAOw== " alt="Smile" style="float: none; margin:0; vertical-align: baseline;"/></p>

<p>While almost all modern browsers support data URIs (including Firefox, Safari, Opera, Chrome, and Internet Explorer 8) IE 6 and 7 don’t, so that limits their usefulness. Also, data URIs aren’t cached like normal images; an encoded image used twice on a page is downloaded and rendered twice, every time that page is loaded. The encoded data is usually larger in size than the actual image equivalent, so it’s best to keep the encoded images small.</p>

<p>There are several web applications available that will encode images for you. My favorite is here: <a href="http://www.scalora.org/projects/uriencoder/">http://www.scalora.org/projects/uriencoder/</a>. If you use a Mac, there is a stand-alone app available: <a href="http://osx.iusethis.com/app/imagetodata">http://osx.iusethis.com/app/imagetodata</a></p>

<p>Using data URIs certainly seems like a gimmick, but it can be useful in certain circumstances. If you contribute to a blog but don’t have the ability to upload images, data URIs would be a nice work-around. Also, if you have a need to keep everything contained in a single HTML file &#40;say, for offline viewing&#41;, data URIs can come in handy. They also work in CSS, so you can add encoded images through styling.</p>

<p>I would suggest only using data URIs for simple graphics, such as the smiley sample above. Larger images add a <strong>LOT</strong> of code, and can make your code hard to read. Internet Explorer 8 is limited to 32 KB (even with that limitation, imagine adding 32,000 characters to your HTML). However you use them, have fun!</p>

<p>Reference: <a href="http://en.wikipedia.org/wiki/Data:_URI_scheme">http://en.wikipedia.org/wiki/Data:_URI_scheme</a></p>]]></description>
      <dc:subject><![CDATA[Web Development,]]></dc:subject>
      <dc:date>2009-04-06T17:44:16+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/little-known-tech-data-uris</guid>
    </item>

    <item>
      <title><![CDATA[The Skittles Super-Mashup: Taste the Social Rainbow]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/the-skittles-super-mashup-taste-the-social-rainbow</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p><img src="http://www.sundog.net/images/uploads/skittles.jpg" alt="Skittles" title="" width="170" height="128" /> Mars, Inc., is taking a brilliant new approach for their Skittles brand&#8217;s public website. By creating a mashup of popular social web applications, they have essentially relinquished control of their public website to the people.
</p>
<p>
On the new <a href="http://skittles.com">skittles.com</a>, the only part of the site that is actually from Skittles is a small navigation menu at the top left that floats above the pages. The navigation is just six items: Home, Products, Media, Chatter, Friends, and Contact.
</p>
<p>
The Home and Product links load the Wikipedia entry for Skittles. Media loads special Skittles Flickr and YouTube pages. Friends loads the official Skittles Facebook page. Perhaps the most daring page is Chatter, where they load a Twitter page with &#8216;skittles&#8217; pre-populated in the search. This pulls every post from Twitter that has the word &#8216;skittles&#8217; in it, good or bad. The Contact page seems to be the only one that isn&#8217;t using content from a social site.

</p>
<p>
There are several thoughts I have about their site. Above all, they are showing strong confidence in their brand. They believe in their product well enough to use content they have no control over. Technically, it&#8217;s very simple for them to maintain. All that comes from their servers are pages with their navigation and an iframe to load the content. This also means there&#8217;s very little content they need to maintain themselves. Their biggest challenge is to promote and maintain the social and viral awareness of their site.
</p>
<p>
This approach to web development is definitely not for everyone, but I believe it works for Skittles. While Skittles is technically only candy, it is also an experience that has been built through decades of advertising. Now, that experience is being built by everyone.
<br />

</p>]]></description>
      <dc:subject><![CDATA[Customer Experience, Social Media, Viral Marketing, Web Development,]]></dc:subject>
      <dc:date>2009-03-06T20:32:28+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/the-skittles-super-mashup-taste-the-social-rainbow</guid>
    </item>

    <item>
      <title><![CDATA[How to Make Your Site Look Good Naked]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/how-to-make-your-site-look-good-naked</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>There are a lot of web browsers out there that have limited CSS support, including most mobile browsers and older desktop browsers (like Netscape 4). Also, shutting off stylesheets is popular with those who are miserly with their bandwidth. So chances are there are plenty of people that have seen your site without styles. How can you keep your site sexy when the styles are stripped away?
</p>
<p>
Keep the styles separate from the content. Use external stylesheets and link to them from the HTML. Use proper markup for your content. Make sure headlines are within <code>&lt;h1&gt;</code>-<code>&lt;h6&gt;</code> tags, paragraphs are within <code>&lt;p&gt;</code> tags, and so on. If your site is built using the best practices of web standards, it&#8217;s already more than halfway there.
</p>
<p>

Pay attention to the default rendering of elements. Taking away CSS means all headlines will be bold, all paragraphs will have a double-space between them, and all lists will be indented. There are no floats or positioning, so content will be in its source code order. Every block element will start on a new line, and every inline element will flow with text. Choose your markup wisely and always plan ahead.
</p>
<p>
Don&#8217;t be afraid of <code>&lt;hr/&gt;</code> and <code>&lt;br/&gt;</code> (yes, they&#8217;re still part of XHTML strict!). Using horizontal rules to divide sections of your site can make it a lot easier to use. They are also easily hidden with CSS, so you don&#8217;t need to show them when not needed. Line breaks should be used any time you have text on different lines that is still part of one paragraph (such as a street address).
</p>
<p>
A naked webpage will have a white background, and so should your logo. In CSS, show the logo for the styled page as a background image. Add the logo with the white background as an <code>&lt;img&gt;</code> tag in the markup and hide it with CSS. That way, the appropriate logo will show according to whether styles are turned on or off. (This technique can also be used with print stylesheets.)

</p>
<p>
Every web page is different, so they don&#8217;t all have to look the same when styles are taken away. Experiment to find unique ways of designing content without CSS. Remember, your website is going to run around naked every once in a while. Be sure its warts aren&#8217;t showing.
</p>]]></description>
      <dc:subject><![CDATA[Web Development,]]></dc:subject>
      <dc:date>2009-02-05T00:31:49+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/how-to-make-your-site-look-good-naked</guid>
    </item>

    <item>
      <title><![CDATA[Tables Are Only Mostly Dead]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/tables-are-only-mostly-dead</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>I was recently browsing through a web development forum when a particular posting caught my eye. A member was asking what is the best way to mark-up and design a calendar in HTML without using a table. He got plenty of answers, with a lot of advice on complex code structure and CSS floating techniques, some with a few existing examples. He also got few responses telling him to just do it in a table; but he remained convinced it should be table-less.
</p>
<p>
Where does this anti-tableism come from? In the early days of web design, it became a very popular technique to build web pages using tables to lay out the elements. The ability to slice up Photoshop mockups and arrange them in a grid was the most basic skill a web designer could have. Everybody did it. Since web browsers were in their infancy, it was almost the only way to have a consistent design across browsers. As time went on, pages became more complex. Their designs required more and more tables nested within tables, and page size grew and grew. I remember building pages where just the markup was over 100KB. 
</p>
<p>
But soon, the web grew up, and browsers did too. With using stylesheets, we now have a much better way of designing a page. We keep the HTML dedicated to defining the content, and the CSS to styling it. When this method was new, we called it &#8216;table-less design&#8217;. Tables became associated with the ugly past. So they needed to be replaced&#8230;everywhere.

</p>
<p>
But tables should not be replaced. Tables are meant for tabular data (hence the name). Just think of them as a spreadsheet in HTML. All the HTML elements and parameters associated with tables are there to support a tabular structure. And they are perfect for the job.
</p>
<p>
Of course, this means tables should NOT be used for laying out a page, since sliced images and transparent spacer .gifs are not tabular data.
</p>
<p>
As for the calendar? It&#8217;s meant to be a grid. Calendars are tabular data. Each row represents a week, and each column represents a day of the week. Once the HTML defines the structure, CSS takes over styling it.
</p>
<p>
Tables aren&#8217;t dead in web design. They&#8217;re just finally doing what they&#8217;ve been supposed to be doing all along.
</p>]]></description>
      <dc:subject><![CDATA[Web Development,]]></dc:subject>
      <dc:date>2008-11-04T16:40:08+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/tables-are-only-mostly-dead</guid>
    </item>

    <item>
      <title><![CDATA[Learning to Love &lt;b&gt; and &lt;i&gt;]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/learning-to-love-b-and-i</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>Since the great Web Standards revival, we web developers have sworn off presentational mark-up. Strict HTML 4.01 and XHMTL 1 have exorcised presentational tags, such as <code>&lt;font&gt;</code> and <code>&lt;center&gt;</code>, completely out of the spec. Now, we bold with <code>&lt;strong&gt;</code> and italicize with <code>&lt;em&gt;</code>. There doesn&#8217;t seem to be a need for <code>&lt;b&gt;</code> or <code>&lt;i&gt;</code> anymore. So why are they still part of the spec?</p>

<p>It&#8217;s because <code>&lt;strong&gt;</code> and <code>&lt;em&gt;</code> are not replacements for <code>&lt;b&gt;</code> and <code>&lt;i&gt;</code>. They are supplements. And there are still plenty of places <code>&lt;b&gt;</code> and <code>&lt;i&gt;</code> should be used instead.</p>

<p>Book or movie titles are usually italicized, but it&#8217;s not to give them emphasis. It&#8217;s merely to set the text apart, or to give it formality. The <code>&lt;em&gt;</code> tag would not be appropriate in this case. Sure, a <code>&lt;span&gt;</code> with a class attribute of &#8216;movie-title&#8217; could be used, and then italicized with CSS. But why not use the tag that specifically italicizes text? Using something like <code>&lt;i class=&#8220;movie-title&#8221;&gt;</code> gives the text meaning <em>and</em> gives it formatting for accessibility and viewing the document without styles. (By the way, the <i>and</i> in the last sentence was marked-up with <code>&lt;em&gt;</code> because I was giving emphasis to it, but was marked up with <code>&lt;i&gt;</code> in this sentence because I am only setting it apart.)</p>

<p>The semantics of <code>&lt;b&gt;</code> and <code>&lt;i&gt;</code> are found between the lines. Just like other non-semantic tags, such as <code>&lt;div&gt;</code> and <code>&lt;span&gt;</code>, they are used to group text together.</p>

<p><code>&lt;b&gt;</code> and <code>&lt;i&gt;</code> have gotten a raw deal. It&#8217;s time to bring them back to their former glory!</p>]]></description>
      <dc:subject><![CDATA[Information Architecture, Web Development,]]></dc:subject>
      <dc:date>2008-09-24T06:21:00+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/learning-to-love-b-and-i</guid>
    </item>

    <item>
      <title><![CDATA[How Do You Browse? Take My Poll!]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/how-do-you-browse-take-my-poll</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description />
      <dc:subject><![CDATA[Customer Experience, Information Architecture, Web Development,]]></dc:subject>
      <dc:date>2008-08-30T21:48:00+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/how-do-you-browse-take-my-poll</guid>
    </item>

    <item>
      <title><![CDATA[The Endangered Mouse]]></title>
      <link>http://www.sundoginteractive.com/sunblog/posts/the-endangered-mouse</link>
      <author>erik.uetz@sundog.net (Erik Uetz)</author>
      <description><![CDATA[<p>In a recent article from BBC News, an analyst from the tech firm Gartner <a href="http://tinyurl.com/5jgt49">predicted the death of the computer mouse within the next five years</a>. He bases his prediction on current advances in interaction with electronics, such as the motion-sensitive Nintendo Wii and touch-screen iPhone. Reference is also made to technology from Panasonic which senses hand movement and facial features. But can these technologies really take the place of a mouse?</p>

<p>The modern personal computer’s user interface is largely designed around the mouse. Almost every operating system is based on objects (such as windows, icons, and buttons) being manipulated by a little arrow (the pointer) on a two-dimensional screen. The mouse was designed to allow a human to easily move the pointer with precision. Moving the pointer from one side of a twenty-four inch monitor only requires moving the mouse a few inches, which is very helpful for ergonomics.</p>

<p>Nintendo designed the Wii controller for games. It&#8217;s perfect for mimic-ing swinging a bat or throwing a bowling ball. It&#8217;s also useful for navigating the simple menus in the Wii&#8217;s interface. And for some computer related tasks, such as browsing the internet, it may work fine. But one of the reasons it won&#8217;t replace the mouse is it requires a certain distance and position from the screen. It&#8217;s made to be used on a TV across the room, not on a monitor eighteen inches from your face. A lot of people (including myself) make a living by sitting in front of a computer for eight hours or more a day. Imagine holding up and waving a device in front of you all day. Think about all the precise targeting you do to get your work done, such as opening folders, moving icons, clicking on menus, or clicking the &#8216;bold&#8217; button in Word. We don&#8217;t think about how often we do it (which is probably thousands of times a day), because the mouse makes it easy to do.</p>

<p>Touch screen popularity is also on the rise, thanks in part to Apple&#8217;s iPhone. And there&#8217;s no doubt that for a small mobile device, a touch screen is the perfect way to interact. One of the reasons it works so well on the iPhone is because the interface was designed around the finger. Many of the metaphors that exist in a personal computer, such as hovering over items, click-and-drag to select, or overlapping windows, don&#8217;t exist on the iPhone. It&#8217;s a different kind of interface. Having a touch screen desktop computer might sound neat at first, but it will quickly turn into a burden. </p>

<p>Try this little exercise: if you&#8217;re on a desktop or notebook computer, tap the actual screen (be gentle!). Tap your icons, act like you&#8217;re dragging them around, or moving or closing windows, or selecting text. Try to do it as quickly as you can with your mouse. Doing that for a minute or two isn&#8217;t bad. But imagine doing that for ten minutes, or eight hours! It would be enough to put an orthopedic surgeon on speed dial.</p>

<p>The mouse is very well suited for the problem it solves: interacting with a personal computer. There will be many more specialized interfaces in the very near future like the Wii and iPhone that don&#8217;t require a mouse. Small internet devices, like a sort of simplified tablet PC, would work just fine with a touch screen. But the personal computer is too generalized for the mouse to go away. So five, ten, fifteen, or more years in the future, the mouse will survive and remain in good health.</p>]]></description>
      <dc:subject><![CDATA[Customer Experience, Technology,]]></dc:subject>
      <dc:date>2008-07-24T08:17:01+00:00</dc:date>
      <guid>http://www.sundoginteractive.com/sunblog/posts/the-endangered-mouse</guid>
    </item>

    
    </channel>
</rss>
