<?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>Web Developer 2.0 &#187; HTML</title>
	<atom:link href="http://webdeveloper2.com/tag/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://webdeveloper2.com</link>
	<description>A blog about web design and development, tools, techniques, products and relevant news.</description>
	<lastBuildDate>Mon, 06 Sep 2010 14:00:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<cloud domain='webdeveloper2.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Dreamweaver CS5 HTML 5 Pack</title>
		<link>http://webdeveloper2.com/2010/09/dreamweaver-cs5-html-5-pack/</link>
		<comments>http://webdeveloper2.com/2010/09/dreamweaver-cs5-html-5-pack/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 14:00:18 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Dreamweaver]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Pack]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1500</guid>
		<description><![CDATA[Adobe have released the HTML 5 compatibility Pack for Dreamweaver CS5. Personally I don&#8217;t often use Dreamweaver but this seems like a useful set of extensions, particularly the CSS3 media queries to help with authoring sites for the desktop, tablets and smartphones.]]></description>
			<content:encoded><![CDATA[<p>Adobe have released the HTML 5 compatibility Pack for <a href="http://www.adobe.com/products/dreamweaver/">Dreamweaver CS5</a>. Personally I don&#8217;t often use Dreamweaver but this seems like a useful set of extensions, particularly the <a href="http://www.css3.info/preview/media-queries/">CSS3 media queries</a> to help with authoring sites for the desktop, tablets and smartphones.</p>
<p><a href="http://webdeveloper2.com/2010/09/dreamweaver-cs5-html-5-pack/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2010/09/dreamweaver-cs5-html-5-pack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Understanding CSS3 Gradients</title>
		<link>http://webdeveloper2.com/2010/09/understanding-css3-gradients/</link>
		<comments>http://webdeveloper2.com/2010/09/understanding-css3-gradients/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 00:55:35 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Gradient]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1373</guid>
		<description><![CDATA[A great quick tutorial from the brilliant Tuts+ network Refer here for the full tutorial: net.tutsplus.com The process of creating an image only for the purpose of displaying a gradient is inflexible, and is quickly becoming a bad practice. Unfortunately, at the time of this writing, they very well might still be required, but hopefully [...]]]></description>
			<content:encoded><![CDATA[<p>A great quick tutorial from the brilliant <a href="http://tutsplus.com/">Tuts+ network</a></p>
<p><a href="http://webdeveloper2.com/2010/09/understanding-css3-gradients/"><em>Click here to view the embedded video.</em></a></p>
<p>
<div style="float:left;margin:5px;"><img src=http://i.ytimg.com/vi/9D2hyM5SSCE/default.jpg /></div>
<p>Refer here for the full tutorial: <a href="http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-understanding-css3-gradients/">net.tutsplus.com</a> The process of creating an image only for the purpose of displaying a gradient is inflexible, and is quickly becoming a bad practice. Unfortunately, at the time of this writing, they very well might still be required, but hopefully not for much longer. Thanks to Firefox and Safari/Chrome, we can now create powerful gradients with minimal effort. In this video quick tip, we&#8217;ll examine some of the differences in syntax when working with the -moz and -webkit vendor prefixes.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2010/09/understanding-css3-gradients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Wilderness Downtown Video. Power of HTML5.</title>
		<link>http://webdeveloper2.com/2010/09/the-wilderness-downtown-video-power-of-html5/</link>
		<comments>http://webdeveloper2.com/2010/09/the-wilderness-downtown-video-power-of-html5/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:30:29 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1379</guid>
		<description><![CDATA[You may have already seen this doing the rounds, rock band Arcade Fire, together with Google and artist Chris Milk, launched an interactive video set to the band&#8217;s track &#8220;We Used to Wait.&#8221; Called &#8220;The Wilderness Downtown,&#8221;. This clever video starts by asking you to enter your childhood address which serves as the setting for [...]]]></description>
			<content:encoded><![CDATA[<p>You may have already seen this doing the rounds, rock band Arcade Fire, together with Google and artist Chris Milk, launched an interactive video set to the band&#8217;s track &#8220;We Used to Wait.&#8221; Called &#8220;The Wilderness Downtown,&#8221;. This clever video starts by asking you to enter your childhood address which serves as the setting for the video.</p>
<p>This experience has been optimised for Google Chrome and is a great example of how powerful HTML5 is, even at this fairly early stage in the implementation of the new standards.</p>
<p>Some of the clever techniques used here include:</p>
<ul>
<li>HTML5 Canvas 3D engine renders a flocking bird simulation that reacts to the music and mouse.</li>
<li>HTML5 audio plays music and keeps track of timecode.</li>
<li>HTML5 video plays film clips in custom sizes.</li>
<li>Choreographed windows are triggered by the music and placed relative to screen size.</li>
<li>Images extracted from Google Maps and Street View rendered as scripted 3D views.</li>
<li>Animated elements dynamically composited over Street View</li>
</ul>
<p>Fire up Chrome and see for yourself at <a href="http://www.thewildernessdowntown.com/">http://www.thewildernessdowntown.com/</a> or watch the video below, though that&#8217;s not as much fun as entering your home town and seeing familiar locations incorporated into the video.</p>
<p><a href="http://webdeveloper2.com/2010/09/the-wilderness-downtown-video-power-of-html5/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2010/09/the-wilderness-downtown-video-power-of-html5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My new favourite CMS &#8211; Concrete5</title>
		<link>http://webdeveloper2.com/2010/03/my-new-favourite-cms-concrete5/</link>
		<comments>http://webdeveloper2.com/2010/03/my-new-favourite-cms-concrete5/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 00:28:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Concrete5]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1285</guid>
		<description><![CDATA[I found Concrete5 through a list of upcoming new content management systems a few weeks ago and it looked worth trying out. After a short spell of testing it, I recommended it to a client as a replacement for a bespoke CMS on a site which they&#8217;d been struggling to complete for several months. The [...]]]></description>
			<content:encoded><![CDATA[<p>I found <a href="http://www.concrete5.org">Concrete5</a> through a list of upcoming new content management systems a few weeks ago and it looked worth trying out. After a short spell of testing it, I recommended it to a client as a replacement for a <a href="/2010/01/the-folly-of-the-agency-built-cms/">bespoke CMS</a> on a site which they&#8217;d been struggling to complete for several months.</p>
<p>The upshot is that the site has been almost completely rebuilt in a little over a week and I&#8217;m finding more an more to like about this system. Take a look at this introductory video showing how simple the editing interface is.</p>
<p><a href="http://webdeveloper2.com/2010/03/my-new-favourite-cms-concrete5/"><em>Click here to view the embedded video.</em></a></p>
<p>I&#8217;m all for a system which makes life easier for end-users (fewer exasperated support calls, less training etc.) but Concrete5 does something which many other systems fail to do. There is very little back-end development experience needed in order to build themes for the system, though the solid MVC framework which underlies the software does give developers plenty of scope to play.</p>
<p>The following video demonstrates how quickly a static HTML page can be converted into a Concrete5 theme.</p>
<p><a href="http://webdeveloper2.com/2010/03/my-new-favourite-cms-concrete5/"><em>Click here to view the embedded video.</em></a></p>
<p>For me, the real value of this system is in the way it removes bottlenecks from the production process. The back-end developers can concentrate on adding bespoke functionality, rather than bespoking standard functionality. The front-end devs can build the front-end and the content suppliers can concentrate on populating content.</p>
<p>This is the best tool that I&#8217;ve added to my web-building kit since <a href="http://www.wordpress.org">WordPress</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2010/03/my-new-favourite-cms-concrete5/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>how to fix the IE z-index bug with jQuery</title>
		<link>http://webdeveloper2.com/2010/01/how-to-fix-the-ie-z-index-bug-with-jquery/</link>
		<comments>http://webdeveloper2.com/2010/01/how-to-fix-the-ie-z-index-bug-with-jquery/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 17:30:58 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1243</guid>
		<description><![CDATA[I recently had cause to do battle with IE6 and 7 whilst implementing some updates to various sites. One of the bugs I came up against was IE&#8217;s odd z-index implementation. The site features a list of items which include thumbnail images. When hovering the mouse pointer over the thumbnail, a larger version of the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had cause to do battle with IE6 and 7 whilst implementing some updates to various sites. One of the bugs I came up against was IE&#8217;s odd z-index implementation.</p>
<p>The site features a list of items which include thumbnail images. When hovering the mouse pointer over the thumbnail, a larger version of the image is displayed &#8211; tooltip style. The problem is that the larger version of the image overlaps the preceding and following list item. In IE 6 &#038; 7 the following list item displays on top of the large image, despite it having been given a higher z-index in the CSS file.</p>
<div id="attachment_1277" class="wp-caption aligncenter" style="width: 380px"><img src="http://webdeveloper2.com/wp-content/uploads/2010/01/IntendedEffect.png" alt="thumbnail image with fullsize image on mouseover" title="Intended Effect" width="370" height="360" class="size-full wp-image-1277" /><p class="wp-caption-text">Intended Effect</p></div>
<div id="attachment_1278" class="wp-caption aligncenter" style="width: 380px"><img src="http://webdeveloper2.com/wp-content/uploads/2010/01/IEBug.png" alt="fullsize image partially hidden" title="IE Bug" width="370" height="360" class="size-full wp-image-1278" /><p class="wp-caption-text">IE Bug</p></div>
<p>This bug is caused by the fact that the list items have relative positioning (in order to position the elements within each item). IE resets the z-index stack for elements within positioned elements. </p>
<blockquote><p>In Internet Explorer positioned elements generate a new stacking context, starting with a z-index value of 0. Therefore z-index doesn&#8217;t work correctly. <a href="http://www.quirksmode.org/bugreports/archives/2006/01/Explorer_z_index_bug.html">quirksmode.org</a></p></blockquote>
<p>The way to solve this is to ensure that the positioned parent element (the list item) has a higher z-index than the positioned elements to be overlapped &#8211; in this case, the other items in the list.</p>
<p>My solution here was thanks to the fact that the site was using jQuery, I was able to implement a very simple piece of code to dynamically alter the z-index values of the items in the list.</p>
<pre class="brush: jscript;">
$('#list a.thumb').mouseover(function(){
  $(this).parent('li').css('z-index', 2).siblings('li').css('z-index',1);
});
</pre>
<p>I&#8217;ll break this down as jQuery&#8217;s function chaining enables very tight but occasionally difficult-to-read code.</p>
<p>Firstly I bind a function to the mouseover event of the thumbnail image</p>
<pre class="brush: jscript;">
$('#list a.thumb').mouseover(function(){
  ...
});
</pre>
<p> next comes the clever bit, jQuery includes a powerful set of DOM traveresal methods which allow you to dance around the document like a scripty Rudolph Nureyev without the need for messy classes and id&#8217;s on every other element.</p>
<pre class="brush: jscript;">
   $(this) //selects the anchor tag over which the mouse has moved
    .parent('li') //traverse to the anchor's parent li element
    .css('z-index', 2) //set the z-index to 2 on the li
    .siblings('li') // selects the sibling li elements (not including the one we just changed)
    .css('z-index',1); //sets the z-index to 1 on all of the sibling li elements
</pre>
<p>By inserting the code into a $(document).ready function the behaviour is applied as soon as the page has loaded.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2010/01/how-to-fix-the-ie-z-index-bug-with-jquery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pure CSS rollover for printable images</title>
		<link>http://webdeveloper2.com/2009/06/pure-css-rollover-for-printable-images/</link>
		<comments>http://webdeveloper2.com/2009/06/pure-css-rollover-for-printable-images/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 12:32:05 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[image]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=1113</guid>
		<description><![CDATA[This is a quickie but may be useful to somebody out there in the big wild interweb. I had a requirement to implement linked images in a page with a separate rollover image. Normally I&#8217;d be using CSS to switch backgrounds but the client wanted the normal image to be visible when the page was [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quickie but may be useful to somebody out there in the big wild interweb.</p>
<p>I had a requirement to implement linked images in a page with a separate rollover image. Normally I&#8217;d be using CSS to switch backgrounds but the client wanted the normal image to be visible when the page was printed out. I didn&#8217;t want to have to add in javascript, regardless of how simple it would be so I came up with this idea.</p>
<h2>The HTML</h2>
<p>I&#8217;ve used a simple image (&lt;img&gt;) tag contained inside an anchor (&lt;a&gt;) tag to create the link, this ensures that the image will be printed for most default setups.<br />
The anchor tag has a class assigned to be the hook for the rollover and I&#8217;ve used an inline style attribute to set the background image of the element to the rollover image. This could also be done by adding a specific class in the stylesheet &#8211; but not  in this demo.</p>
<pre class="brush: xml;">
&lt;a href=&quot;#&quot; class=&quot;rollover&quot; style=&quot;background-image:url(rollover.png);&quot;&gt;
 &lt;img src=&quot;normal.png&quot; /&gt;
&lt;/a&gt;
</pre>
<h2>The CSS</h2>
<p>I&#8217;ve set the <em>display</em> property for the anchor tag to <em>inline-block</em> so that it will sit within the page flow as normal, but takes on the width and height of the image contained inside it.<br />
when the mouse pointer is over the anchor, the <em>visibility</em> property of the contained image is set to <em>hidden</em>, uncovering the the anchor tag with it&#8217;s background image.</p>
<pre class="brush: css;">
.rollover{
    display:inline-block;
}
.rollover:hover img{
    visibility:hidden;
}
</pre>
<h2>Example</h2>
<style type="text/css">
  .rollover{
    display:inline-block;
  }
  .rollover:hover img{
    visibility:hidden;
  }
</style>
<p><a href="#" class="rollover" style="background-image:url(http://webdeveloper2.com/wp-content/uploads/2009/06/rollover.png);"><img src="http://webdeveloper2.com/wp-content/uploads/2009/06/normal.png" alt="normal" title="normal" width="125" height="125" /></a></p>
<p>I&#8217;ve tested this on a bunch of browsers &#8211; it doesn&#8217;t work in IE6 but then, it doesn&#8217;t work in Netscape, Mosaic or Lynx either, so go figure.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2009/06/pure-css-rollover-for-printable-images/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Web Advent Day 17 &#8211; jQuery Plugins</title>
		<link>http://webdeveloper2.com/2008/12/web-advent-day-17-jquery-plugins/</link>
		<comments>http://webdeveloper2.com/2008/12/web-advent-day-17-jquery-plugins/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 10:00:46 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[client-side solution]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[web advent]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=612</guid>
		<description><![CDATA[I&#8217;m currently close to finishing a bunch of server side stuff for an application that I&#8217;m developing. The next phase will be to overhaul the UI in order to improve usability and expose some new features that have been built into the application base. To this end I&#8217;ve been browsing various jQuery plugin directories looking [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently close to finishing a bunch of server side stuff for an application that I&#8217;m developing. The next phase will be to overhaul the UI in order to improve usability and expose some new features that have been built into the application base. To this end I&#8217;ve been browsing various <a href="http://jquery.com">jQuery</a> plugin directories looking for useful tools. Here are a selection of the ones that I&#8217;ve found, however I&#8217;ve not tried many of them yet so I can&#8217;t vouch for their reliability.</p>
<p><img class="aligncenter size-full wp-image-613" title="jquery plugins" src="http://webdeveloper2.com/wp-content/uploads/2008/12/jqueryplugins.png" alt="jquery plugins" width="450" height="85" /></p>
<ol>
<li><a href="http://www.openstudio.fr/jQuery-Multimedia-Portfolio.html?lang=en">jQuery Multimedia Portfolio</a> -Non obstrusive and accessible portfolio supporting multiple media : photos, video (flv), audio (mp3), will automatically detect the extension of each media and apply the adapted player.</li>
<li><a href="http://plugins.jquery.com/project/pagination">Pagination</a>- Create navigational elements, when you have a a large list of items you can display them grouped in pages and present navigational elements to move from one page to another.</li>
<li><a href="http://www.reconstrukt.com/ingrid/">Ingrid</a> - ngrid is an unobtrusive jQuery component that adds datagrid behaviors (column resizing, paging, sorting, row and column styling, and more) to your tables.</li>
<li><a href="http://projects.bundleweb.com.ar/jWYSIWYG/">jWYSIWYG</a> - This plugin is an inline content editor to allow editing rich HTML content on the fly.</li>
<li><a href="http://jmar777.blogspot.com/2008/02/jtruncate-in-action.html">jTruncate in Action</a> - jTruncate provides simple yet customizable truncation for text entities in your web page.</li>
<li><a href="http://eyebulb.com/dropshadow/">Drop Shadows</a> - Interesting Drop shadow effect generated by a jQuery Plugin</li>
<li><a href="http://plugins.jquery.com/project/csv2table" target="_blank">jQuery: CSV to Table</a> &#8211; This plugin loads a csv file and creates a table with the contents in that csv file.</li>
<li><a href="http://stanlemon.net/projects/jgrowl.html">jGrowl</a> &#8211; a jQuery plugin that raises unobtrusive messages within the browser, similar to the way that OS X&#8217;s <a href="http://growl.info/">Growl Framework</a> works.</li>
<li><a href="http://plugins.jquery.com/project/Colorize">Colorize</a> &#8211; a jQuery plugin to add background color to alternate table rows, highlight a row/column on mouse over, and colorize a row/column when you click your mouse button over it. You can colorize as many table rows as you want. A repeat mouse click reverts the row to the original background color.</li>
<li><a href="http://plugins.jquery.com/project/jqGrids">jqGrid</a> &#8211; The grid is a Ajax-enabled JavaScript control that provides solution for representing tabular data on the web. Since the grid is client-side solution and loading data dynamically through Ajax callbacks, it can be integrated with any server side technology.</li>
<li><a href="http://www.komodomedia.com/blog/2008/10/jquery-feed-menus/">jQuery Feed Menu</a> - allows users to click your feed icon and be presented with a list of feeds to choose from.</li>
<li><a href="http://jsgt.org/lib/jquery/plugin/jqchart/nightly/nightly.htm">jqChart </a>- Ajax &amp; Draggable Simple Chart on Canvas+jQuery.</li>
<li><a href="http://www.ollicle.com/eg/jquery/biggerlink/">jquery.biggerlink</a> - A jQuery plugin to make it really easy to enable the specified element/s to behave as a proxy for their first contained link.</li>
<li><a href="http://www.protofunc.com/scripts/jquery/ajaxManager/">Ajax Manager</a> -Helps you to manage AJAX requests and responses (i.e. abort requests, block requests, order responses).</li>
<li><a href="http://www.appelsiini.net/projects/lazyload">Lazyload</a>-Delays loading of images in (long) web pages. Images below the fold (the ones lower than window bottom) are not loaded. When scrolling down they are loaded when needed.</li>
<li><a href="http://remysharp.com/2008/02/28/upgraded-jquery-tag-suggestions/">jQuery Tag Suggestion</a>- The same tag suggesting as-you-type support that del.icio.us is uses.</li>
<li><a href="http://deepliquid.com/content/Jcrop.html">Jcrop</a> &#8211; a quick and easy way to add image cropping functionality to your web application. It combines the ease-of-use of a typical jQuery plugin with a powerful cross-platform DHTML cropping engine that is faithful to familiar desktop graphics applications.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2008/12/web-advent-day-17-jquery-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Advent Day 13 &#8211; CSS Tools</title>
		<link>http://webdeveloper2.com/2008/12/web-advent-day-13-css-tools/</link>
		<comments>http://webdeveloper2.com/2008/12/web-advent-day-13-css-tools/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 10:00:15 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[online tool]]></category>
		<category><![CDATA[software tools]]></category>
		<category><![CDATA[stylesheet]]></category>
		<category><![CDATA[web advent]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=576</guid>
		<description><![CDATA[A round up of some handy tools for working with Cascading StyleSheets today. Firebug is an essential for testing and tweaking CSS designs, the ability to manipulate the rendered DOM, means that you can even test tweaks to script-generated markup. Another FireFox add-on, the Web Developer Toolbar extension does many of the things that Firebug [...]]]></description>
			<content:encoded><![CDATA[<p>A round up of some handy tools for working with Cascading StyleSheets today.</p>
<p><a href="http://getfirebug.com/"><img class="aligncenter size-full wp-image-580" title="Firebug" src="http://webdeveloper2.com/wp-content/uploads/2008/12/firebug.jpg" alt="" width="450" height="144" /></a></p>
<ol>
<li><a href="http://getfirebug.com/">Firebug</a> is an essential for testing and tweaking CSS designs, the ability to manipulate the rendered DOM, means that you can even test tweaks to script-generated markup.</li>
<li>Another FireFox add-on, the <a href="http://chrispederick.com/work/web-developer/">Web Developer Toolbar</a> extension does many of the things that Firebug does but adds a few other little treats to the mix such as the ability to quickly deactivate stylesheets or background images for instance.</li>
<li><a href="http://www.jameswhittaker.com/blog/article/em-based-layouts-vertical-rhythm-calculator/">Vertical rhythm calculator</a> This tool converts pixel values to em values depending on the font size of the text. You can also set margins and paddings, depending on the line height you’ve defined. available in the browser or as a downloadable Air application.</li>
<li>PSD2CSS Online An online service that generates Web pages from Photoshop designs. This is an impressive technical achievement with a growing list of features. By following the guidelines and naming conventions, you can precisely choose <em>how</em> the transformation from PSD to (X)HTML and CSS is done.</li>
<li><a href="http://services.immike.net/css-checker/">CSS Redundancy Checker</a> You can use this tool to find CSS selectors that aren’t used by any of your HTML files, handy for trimmimg bloated files down to size.</li>
<li><a href="http://www.csstextwrap.com/">CSS Text Wrapper</a> make HTML text wrap in shapes other than just a rectangle. Great for creating stylish, magazine-type layouts.</li>
<li><a href="http://spritegen.website-performance.org/">CSS Sprite Generator</a> This tool will convert a number of images into a single image and generate the CSS to create CSS sprites &#8211; elemnets which display only a part of a larger image. The benefit is that a single image download can reduce page load times.<span id="more-576"></span></li>
<li><a href="http://blog.base42.nl/2008/11/20/minifyme-a-minimizer-for-css-and-javascript/">MinifyMe</a> This AIR application will compile multiple CSS and JavaScript files into one for optimising your site delivery.</li>
<li>CSS SuperScrub This tool aims to reduce the size and complexity of your CSS by stripping unneeded content, redundant items and intelligently grouping the remaining element names.</li>
<li><a href="http://typeface.neocracy.org/">typeface.js</a> This interesting development takes a different approach to rendering custom fonts in web pages. Rather than replacing the text with an image or Flash object, it uses the vector rendering capabilities of the browser to &#8220;draw&#8221; a specially converted version of the font.</li>
<li><a href="http://www.askthecssguy.com/kotatsu/index.html">Kotatsu</a> A simple HTML table generator. The tool lets you attach classes to cells which is very useful for styling up tabular data.</li>
<li><a href="http://juicystudio.com/services/csstest.php">Juicy Studio: CSS Analyser</a> Juicy Studio’s <em>CSS Analyser</em> combines the W3C validation service with additional checks of color contrast (helpful for vision-impairment accessibility issues).</li>
<li><a href="http://www.lonniebest.com/FormatCSS/">FormatCSS</a> allows you to paste your valid CSS code, correcting and standardizing your source code.</li>
</ol>
<p>Hat tip to <a href="http://www.smashingmagazine.com">Smashing Magazine</a> for helping me find most of these.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2008/12/web-advent-day-13-css-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Advent Day 6 &#8211; Mashup Tools</title>
		<link>http://webdeveloper2.com/2008/12/web-advent-day-6-mashup-tools/</link>
		<comments>http://webdeveloper2.com/2008/12/web-advent-day-6-mashup-tools/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 10:00:09 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[business intelligence tools]]></category>
		<category><![CDATA[Dapper]]></category>
		<category><![CDATA[Dion Hinchcliffe]]></category>
		<category><![CDATA[external services]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[mashup builder]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Popfly]]></category>
		<category><![CDATA[social applications]]></category>
		<category><![CDATA[Sun Microsystems]]></category>
		<category><![CDATA[web advent]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Zembly]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=480</guid>
		<description><![CDATA[Mashups are no longer interesting technical exercises, they are creating entirely new business models and also form an essential method of creating business intelligence tools. Here are six tools to assist in tinkering with the workings of the web. Yahoo Pipes Pipes is one of the most popular tools for creating simple mashups, possibly due [...]]]></description>
			<content:encoded><![CDATA[<p>Mashups are no longer interesting technical exercises, they are creating entirely new business models and also form an essential method of creating business intelligence tools. Here are six tools to assist in tinkering with the workings of the web.</p>
<h3>Yahoo Pipes</h3>
<p><a href="http://pipes.yahoo.com"><img class="aligncenter size-full wp-image-487" title="Yahoo Pipes" src="http://webdeveloper2.com/wp-content/uploads/2008/12/pipes.jpg" alt="" width="450" height="196" /></a></p>
<p><a href="http://pipes.yahoo.com">Pipes</a> is one of the most popular tools for creating simple mashups, possibly due to it&#8217;s reasonably intuitive interface. I used it recently for an experiment in trying to find appropriate images to illustrate a twitter feed.</p>
<h3>Zembly</h3>
<p><a href="http://zembly.com/"><img class="aligncenter size-full wp-image-488" title="Zembly" src="http://webdeveloper2.com/wp-content/uploads/2008/12/zembly.jpg" alt="" width="450" height="158" /></a></p>
<p><a href="http://zembly.com/">Zembly</a> from Sun Microsystems is a slightly more technical mashup builder. Like Yahoo&#8217;s pipes, it allows you to publish components and use components published by others, however it&#8217;s end delivery is far better defined. Zembly is geared towards creating apps for various platforms such as <a href="http://facebook.com/" target="_blank">Facebook</a> apps, <a href="http://www.meebo.com/platform/" target="_blank">Meebo</a> apps, <a href="http://code.google.com/apis/opensocial/" target="_blank">OpenSocial</a> apps, <a href="http://developer.apple.com/iphone/" target="_blank">iPhone</a> apps, <a href="http://www.google.com/webmasters/gadgets/" target="_blank">Google Gadgets</a>, embeddable widgets, and other social applications. It does require a reasonable knowledge of javascript and HTML in order to build anything, but offers a wealth of powerful functionality.<span id="more-480"></span></p>
<h3>Dapper</h3>
<p><a href="http://dapper.net/"><img class="aligncenter size-full wp-image-489" title="Dapper" src="http://webdeveloper2.com/wp-content/uploads/2008/12/dapper.jpg" alt="" width="450" height="114" /></a></p>
<p><a href="http://dapper.net/">Dapper</a> provides a specific but vital service in mashup building. A service for extracting information from the web in a re-usable form. This could be as simple as creating an RSS feed from a site to building an API for working with published data.</p>
<h3>Microsoft Popfly</h3>
<p><a href="http://popfly.ms"><img class="aligncenter size-full wp-image-490" title="Microsoft Popfly" src="http://webdeveloper2.com/wp-content/uploads/2008/12/popfly.jpg" alt="" width="450" height="173" /></a></p>
<p><a href="http://popfly.ms/">Popfly</a> is Microsoft&#8217;s mashup builder, it&#8217;s nicest feature is the way that components can be plonked together in a purely drag &amp; drop kind of way, or you can drill deeper and add code to implement more complex functionality.</p>
<h3>WSO<sub>2</sub> Mashup Server</h3>
<p><a href="http://wso2.org/projects/mashup"><img class="aligncenter size-full wp-image-491" title="WSO2 Mashup Server" src="http://webdeveloper2.com/wp-content/uploads/2008/12/wso2mashupserver.jpg" alt="" width="450" height="136" /></a></p>
<p><a href="http://wso2.org/projects/mashup">WSO<sub>2</sub> Mashup Server</a> provides a more heavyweight platform for building mashups. It has facilities for creating secure APIs for existing datasources in addition to being able to consume external services and data sources. This is much more of an Enterprise-level offering.</p>
<h3>Google Mashup Editor</h3>
<p><a href="http://code.google.com/gme/"><img class="aligncenter size-full wp-image-492" title="Google Mashup Editor" src="http://webdeveloper2.com/wp-content/uploads/2008/12/googlemashupeditor.jpg" alt="" width="450" height="201" /></a></p>
<p><a href="http://code.google.com/gme/">Google Mashup Editor</a> is a framework for building mashups using Google&#8217;s extensive collection of APIs. The end results usually rely on users signing in with their Google account but for creating gadgets for iGoogle, it&#8217;s a good option to try.</p>
<p> </p>
<p>Thanks have to go to <a href="http://blogs.zdnet.com/Hinchcliffe/">Dion Hinchcliffe</a> for helping me research these.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2008/12/web-advent-day-6-mashup-tools/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Resources for creating and using syndication feeds</title>
		<link>http://webdeveloper2.com/2008/11/resources-for-creating-and-using-syndication-feeds/</link>
		<comments>http://webdeveloper2.com/2008/11/resources-for-creating-and-using-syndication-feeds/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 12:33:37 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[content management]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[syndication]]></category>
		<category><![CDATA[widget creation tools]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=436</guid>
		<description><![CDATA[I was recently asked at a seminar about creating and consuming RSS feeds for a site with very limited content management facilities. The person had access to edit areas of the HTML but no more than that. I didn&#8217;t want to overwhelm him with too many links, just a selection of ones which I either [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://feeds.feedburner.com/web-dev2"><img class="size-full wp-image-439 alignright" title="Syndication Feed Icon" src="http://webdeveloper2.com/wp-content/uploads/2008/11/3d_feedicon.png" alt="" width="172" height="185" /></a>I was recently asked at a <a title="Web Content Strategy in Black and White" href="http://webdeveloper2.com/2008/10/seminar-web-content-strategy/">seminar</a> about creating and consuming <a title="Really Simple Syndication" href="http://www.commoncraft.com/rss_plain_english">RSS</a> feeds for a site with very limited content management facilities. The person had access to edit areas of the <a title="HyperText Markup Language" href="http://en.wikipedia.org/wiki/HTML">HTML</a> but no more than that. I didn&#8217;t want to overwhelm him with too many links, just a selection of ones which I either already knew or looked like they were worth trying.</p>
<h3>Creating syndication feeds</h3>
<p>If you are interested in creating syndication feeds for your own site, there are plenty of tools available; these will attempt to generate a feed automatically by reading the pages on your site:</p>
<ul>
<li><a href="http://feedity.com/">http://feedity.com/</a></li>
<li><a href="http://www.dapper.net/">http://www.dapper.net/</a></li>
<li><a href="http://www.rsspect.com/">http://www.rsspect.com/</a></li>
<li><a href="http://runstream.com/">http://runstream.com/</a></li>
</ul>
<p>If this doesn’t work (or doesn&#8217;t do everything that you want) then you could manually create a feed using one of the following:</p>
<ul>
<li><a href="http://webrss.com/">http://webrss.com/</a></li>
<li><a href="http://www.rapidfeeds.com/">http://www.rapidfeeds.com/</a></li>
<li><a href="http://www.feedforall.com/">http://www.feedforall.com</a> – this is      a desktop application which can upload the updated rss file to your website</li>
</ul>
<p>Once you’ve created a feed, I would recommend using <a href="http://www.feedburner.com/">http://www.feedburner.com</a> to re-syndicate it, you get good analytics to monitor the usage of your feed and feedburner provides plenty of tools for optimising and publicising the feed (including the ability for people to subscribe by email).</p>
<h3>Importing feed content into your own site</h3>
<p>The most common way to do this is using what’s generally referred to as a widget – a piece of code which dynamically generates a section of content on your page. Here are some of the best widget creation tools:</p>
<ul>
<li><a href="http://sproutbuilder.com/">http://sproutbuilder.com/</a></li>
<li><a href="http://www.clearspring.com/">http://www.clearspring.com/</a></li>
<li><a href="http://www.springwidgets.com/">http://www.springwidgets.com/</a></li>
<li>also, specifically for displaying a feed, you could try: <a href="http://www.feedroll.com/">http://www.feedroll.com/</a></li>
</ul>
<p>I may post a more comprehensive list at some point soon so if anybody has any suggestions or recommendations then please let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2008/11/resources-for-creating-and-using-syndication-feeds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Experiment #3 &#8211; Illustrated Tweets</title>
		<link>http://webdeveloper2.com/2008/11/experiment-3-illustrated-tweets/</link>
		<comments>http://webdeveloper2.com/2008/11/experiment-3-illustrated-tweets/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 01:26:27 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Lab]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Pipes]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://webdeveloper2.com/?p=400</guid>
		<description><![CDATA[This experiment started out as an excercise in using jQuery to fetch a JSON feed from Yahoo Pipes and then displaying it. In order to make it more interesting I decided to use Pipes to attempt to find a photo from Flickr for each entry in a twitter feed. Step 1 &#8211; Fetching the Twitter [...]]]></description>
			<content:encoded><![CDATA[<p>This experiment started out as an excercise in using <a href="http://jquery.com/">jQuery</a> to fetch a JSON feed from <a href="http://pipes.yahoo.com">Yahoo Pipes</a> and then displaying it. In order to make it more interesting I decided to use Pipes to attempt to find a photo from <a href="http://www.flickr.com">Flickr</a> for each entry in a twitter feed.</p>
<h3>Step 1 &#8211; Fetching the Twitter data</h3>
<p>Rather than just getting a static twitter feed, I thought it would be more useful to pass the Twitter username as an input parameter to the pipe. A quick glance at the <a href="http://apiwiki.twitter.com/REST+API+Documentation#UserMethods">Twitter API</a> gave me everything I needed to know about retrieving a data stream for any username. I could have settled for using the RSS feed for the user but in order to also grab some data about the user I opted for getting the xml output. The url for this is <strong>http://twitter.com/statuses/user_timeline/<em>[username]</em>.xml</strong>. </p>
<p>To get the feed, I used a <strong>Text Input</strong> module to make the Twitter username a parameter that can be passed into the pipe. I used the <strong>String Builder</strong> module to add the username into the url string and then the <strong>URL Builder</strong> to convert the string into a URL object. Finally the <strong>Fetch Data</strong> module gets the data returned from the url. <br />
<span id="more-400"></span><br />
<img class="size-full wp-image-407" title="Fetching a Twitter XML feed in Yahoo Pipes" src="http://webdeveloper2.com/wp-content/uploads/2008/11/pipes1.png" alt="Fetching a Twitter XML feed in Yahoo Pipes" width="464" height="463" /></p>
<h3>Step 2 &#8211; Getting an appropriate image</h3>
<p>To get an image from flickr for each tweet, I used a series of loops. Firstly, for each tweet in the feed, I used the Term Extractor module to get the important keywords from the text, outputting them as a single string. The next loop takes each extracted terms string and replaced any spaces with &#8221; OR &#8221; to use as the search string e.g. &#8220;tree leaf&#8221; would be transformed into &#8220;tree OR leaf&#8221;.<br />
The final loop uses the search string to get one image from Flickr and emit it as an additional element in the returned data stream.</p>
<p><img class="aligncenter size-full wp-image-408" title="Term extraction and Flickr image search" src="http://webdeveloper2.com/wp-content/uploads/2008/11/pipes2.png" alt="" width="464" height="625" /></p>
<p><a href="http://pipes.yahoo.com/techn0tic/twitterimages">View or copy the completed pipe here</a>.</p>
<h3>Step 3 &#8211; Fetching the data</h3>
<p>jQuery is a good choice here as Pipes allows any pipe to return a JSON string and jQuery includes <a href="http://docs.jquery.com/Ajax/jQuery.getJSON">getJSON</a> as an Ajax method.</p>
<p>I started with basic HTML to get the Twitter username and an empty div in which the results will be displayed:</p>
<pre class="brush: xml;">
&lt;div id=&quot;input&quot;&gt;
  &lt;label for=&quot;Username&quot;&gt;Twitter Username&lt;/label&gt;
  &lt;input id=&quot;Username&quot; type=&quot;text&quot; value=&quot;darthvader&quot; /&gt;
  &lt;input id=&quot;Load&quot; type=&quot;button&quot; value=&quot;Glorify the tweets&quot; onclick=&quot;GrabTweets()&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;feed&quot;&gt;&lt;/div&gt;
</pre>
<p>After adding the script tag to load the jQuery library I could add the javascript to grab the json output for the pipe. Pipes accepts parameters as a url parameter so in this case I needed to load: <em>http://pipes.yahoo.com/pipes/pipe.run?TwitterUser=<strong>TwitterUsername</strong>&amp;_id=c5b92f96787d9bcce54fd4ec19d21cc2&amp;_render=json&amp;_callback=?</em><br />
The resulting script looks a little like this:</p>
<pre class="brush: jscript;">
function GrabTweets(){
  var TUser = $('#Username').val(); //get the value of the username input
  $.getJSON('http://pipes.yahoo.com/pipes/pipe.run?TwitterUser=' + TUser + '&amp;_id=c5b92f96787d9bcce54fd4ec19d21cc2&amp;_render=json&amp;_callback=?',
    function(json){
//callback function to display the data here
    }
);
}
</pre>
<h3>Step 4 &#8211; Presenting the data</h3>
<p>I added a callback function for the getJSON call which sends the result to <strong>output_feed_items</strong> which loops through the first five items in the feed.</p>
<pre class="brush: jscript;">
function GrabTweets(){
 var TUser = $('#Username').val();
 $(&quot;#feed&quot;).html('');
 var content = &quot;&quot;;
 $.getJSON('http://pipes.yahoo.com/pipes/pipe.run?TwitterUser=' + TUser + '&amp;_id=c5b92f96787d9bcce54fd4ec19d21cc2&amp;_render=json&amp;_callback=?',
 function(json){
 if(json.count &gt; 0) {
 content = output_feed_items(json);
 } else {
 content = &quot;The request did not return results.&quot;;
 }
 $(&quot;#feed&quot;).html(content);
 });
}

function output_feed_items(json) {
 var itemList = &quot;&quot;;
 for (i=0;i&lt;5;i++) {
 itemList += make_feed_desc(json.value.items[i], i);
 }
 return itemList;
}
</pre>
<p>The <strong>make_feed_desc</strong> function outputs the HTML for each item in the JSON feed. I&#8217;ve added classes to the elements to use as hooks for the CSS but to add the individual images returned from Flickr, I added an inline style declaration.</p>
<pre class="brush: jscript;">
function make_feed_desc(item, item_id) {
 var itemElement = '';
 var bgimage = item.flickr['y:flickr'].img.replace('_m.jpg','.jpg');
 itemElement += '
&lt;div id=&quot;item-' + item_id + '&quot; class=&quot;item&quot; style=&quot;background-image:url(' + bgimage + ')&quot;&gt;';
 itemElement += '
&lt;div class=&quot;talk&quot;&gt;';
 itemElement += item.text + '&lt;/div&gt;
';
 itemElement += '&lt;a title=&quot;' + item.user.name + ' - ' + item.user.description + '&quot; href=&quot;http://twitter.com/' + item.user.screen_name + '&quot;&gt;&lt;img class=&quot;profilepic&quot; src=&quot;' + item.user.profile_image_url + '&quot; alt=&quot;' + item.user.screen_name + ' / ' + item.user.name + '&quot; /&gt;&lt;/a&gt;';
 itemElement += '&lt;a class=&quot;photocredit&quot; title=&quot;' + item.flickr.title + '&quot; href=&quot;' + item.flickr['y:flickr'].link + '&quot;&gt;' + item.flickr['y:flickr'].link + '&lt;/a&gt;';
 itemElement += '&lt;/div&gt;
';
 return itemElement;
}
</pre>
<p>Finally I added a smattering of CSS to make the whole thing a little more presentable.</p>
<h3>The Result</h3>
<p><a href="http://webdeveloper2.com/lab/03/flittr.htm"><img class="aligncenter size-full wp-image-415" title="flittr example" src="http://webdeveloper2.com/wp-content/uploads/2008/11/flittr.png" alt="" width="468" height="589" /></a></p>
<p><a href="http://webdeveloper2.com/lab/03/flittr.htm">Live example here</a><br />
<a href="http://webdeveloper2.com/lab/03/flittr.zip"> download source</a></p>
<p>I may try to improve on this by building a Flickr search based on relevance to the keywords rather than the default module which is based on Flickr&#8217;s <em>&#8220;interestingness&#8221; </em>as the images returned, though very nice, often seem a little too removed from the subject of the tweet. Feel free to do whatever you like with the pipe or code, please drop me a line if you find it useful for anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://webdeveloper2.com/2008/11/experiment-3-illustrated-tweets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: webdeveloper2.com @ 2010-09-07 02:08:09 by W3 Total Cache -->