<?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>Interaction Designer Craig Dennis</title>
	<atom:link href="http://craigmdennis.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://craigmdennis.com</link>
	<description>The portfolio &#38; blog for Craig Dennis, an Interaction Designer based in South East England</description>
	<lastBuildDate>Fri, 06 Jan 2012 21:41:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>jQuery plugin to use CSS3 animations (animate.css)</title>
		<link>http://craigmdennis.com/jquery-plugin-to-use-css3-animations/</link>
		<comments>http://craigmdennis.com/jquery-plugin-to-use-css3-animations/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 20:38:23 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[animate.css]]></category>
		<category><![CDATA[animations]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery animateCSS]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2532</guid>
		<description><![CDATA[A while back, I stumbled across a very nice set of CSS3 animations by Dan Eden which (if you haven&#8217;t already clicked the link and looked for yourself) are plug and play. All you do is add a class to the element you want to animate and it&#8230; well&#8230; animates. This is great! Dan recommends that... <a class="more" href="http://craigmdennis.com/jquery-plugin-to-use-css3-animations/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>A while back, I stumbled across a <a title="animate.css" href="http://daneden.me/animate/" target="_blank">very nice set of CSS3 animations </a>by Dan Eden which (if you haven&#8217;t already clicked the link and looked for yourself) are plug and play. All you do is add a class to the element you want to animate and it&#8230; well&#8230; animates. This is great! Dan recommends that you use something like <code>$('.bouncy').addClass('bounceInDown');</code> to add the class with jQuery and this is the simplest method to get you started. In fact this is the method I used when I started my site redesign.</p>
<p>I quickly ran into issues though. Now, it wasn&#8217;t anything that animate.css does or doesn&#8217;t do. More the fact that there was no way to replace jQuery animations with the CSS3 fancy-pants ones.</p>
<h2>&#8220;What did you do?&#8221; I hear you ask.</h2>
<p>Well, I&#8217;ll tell you.<a href="https://gist.github.com/1438197/3629f4f16dd37b629606daafaa8bf8da2ac46130" target="_blank"> I wrote a little function</a> that handled adding the classes to any element dynamically. This gave me a little improvement in terms of ease of use and speed. There was still something missing though. I only realised when I had 3 animations that needed to run one after each other, that there was no way to determine when a CSS3 animation had completed so I could run another one. In the interim I set a delay parameter so I could say &#8216;do this, wait 3 seconds then do this&#8217;.</p>
<p>This &#8216;callback&#8217; functionality does exist and CSS3 animations do indeed trigger an event when they finish, you just need to set a javascript event listener to detect that so you can apply some actions. After a little Googling I added this to my function. This now worked in a very similar way to jQuery&#8217;s own animate function so it was very familiar.</p>
<h2>Then came the plugin</h2>
<p>A few weeks later, Dan (<a title="Follow Dan Eden on Twitter" href="http://twitter.com/_dte" target="_blank">@_dte</a>) mentioned me in a tweet saying that my site was using his animate.css and looked good. I thanked him and showed him my jQuery function that helped. <a title="View the Tweet on Twitter" href="https://twitter.com/#!/_dte/status/144043920148545536" target="_blank">He seemed suitably impressed</a> and asked if he could use it. It was already a public gist on github so I said no problem. That evening I decided it would be even better if it was an actual plugin that could be used in an even similar way to jQuery&#8217;s native functions. And so <a title="Get jQuery animateCSS on GitHub" href="https://github.com/craigmdennis/animateCSS" target="_blank">jQuery animateCSS</a> was born.</p>
<p>To use it is pretty easy.</p>
<h3>Basic</h3>
<pre>$('#your-id').animateCSS('fadeIn');</pre>
<h3>With callback</h3>
<pre>$('#your-id').animateCSS('fadeIn', function(){
    alert('Boom! Animation Complete');
});</pre>
<h3>With delay (in ms)</h3>
<pre>$('#your-id').animateCSS('fadeIn', 500);</pre>
<h3>With delay AND callback</h3>
<pre>$('#your-id').animateCSS('fadeIn', 1000, function(){
    alert('Boom! Animation Complete');
});</pre>
<p>If you want to hide an element when the page loads and then apply an effect, it might look something like this:</p>
<pre>&lt;style&gt;
    .js #your-id {
        visibility:hidden;
    }
&lt;/style&gt;

$(window).load( function(){
    $('#your-id').animateCSS('fadeIn', 1000, function(){
        alert('Boom! Animation Complete');
    });
});</pre>
<p>Remember to use a .js (or .no-js depending on how you role) so that the element still displays for non javascript users (and Google previews).</p>
<p>Again, the plugin is available here: <a href="https://github.com/craigmdennis/animateCSS/">https://github.com/craigmdennis/animateCSS/</a></p>
<p>That&#8217;s it guys. Have fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/jquery-plugin-to-use-css3-animations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HoverIntent jQuery plugin initiated by a click event</title>
		<link>http://craigmdennis.com/hoverintent-jquery-plugin-initiated-by-a-click-event/</link>
		<comments>http://craigmdennis.com/hoverintent-jquery-plugin-initiated-by-a-click-event/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 22:28:49 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HoverIntent]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2298</guid>
		<description><![CDATA[Let me start by saying that I am not a developer, I am a designer who dabbles in jQuery and as such my code will probably not be the cleanest or most efficient but it gets the job done. I will also assume you have some basic knowledge of jQuery. View the demo Recently I... <a class="more" href="http://craigmdennis.com/hoverintent-jquery-plugin-initiated-by-a-click-event/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://craigmdennis.com/demos/hover-intent"><img class="alignnone size-full wp-image-2320" title="hoverIntent" src="http://uploads.craigmdennis.com/2010/11/hoverIntent.jpg" alt="" width="414" height="150" /></a></p>
<p>Let me start by saying that I am not a developer, I am a designer who dabbles in jQuery and as such my code will probably not be the cleanest or most efficient but it gets the job done.</p>
<p>I will also assume you have some basic knowledge of jQuery.</p>
<p><a class="call-to-action" href="http://craigmdennis.com/demos/hover-intent/" target="_blank">View the demo</a></p>
<p>Recently I had to create a sophisticated jQuery interface initiated by clicking an icon and showing a div then fading it away upon leaving the div. The problem was the shape meant that when a user moved the cursor from the icon to the div they briefly left the confines of the div and as such the div would fade out. This was a problem and the solution seemed to be the <a href="http://cherne.net/brian/resources/jquery.hoverIntent.html" target="_blank">Hover Intent plugin</a> which allows the mouse cursor to leave the div and re-enter it within a certain number of ms (milliseconds) and not fade out the div (or whatever action you have written).</p>
<p>This is great right? Well yeah, but this only works when you hover over an element to begin with. What happens when you want to initiate the initial action on a click instead of on hover? This was my problem.</p>
<h3>My solution:</h3>
<p>So lets set up Hover Intent set up to work on hover with a mega-menu. Below is just the jQuery, you can see the html and CSS <a href="http://craigmdennis.com/demos/hover-intent/" target="_blank">in the demo</a> if you want to or <a href="http://craigmdennis.com/downloads/hover-intent.zip?9d7bd4">download the source files here</a>.</p>
<pre>$(document).ready(function(){
$('body').removeClass('no-js'); // Removes the class 'no-js' from the body to let us know javascript is enabled
function slideTheMenuDown() { // This function is called by hover intent 'over:'
$(this).find('.subnav').slideDown('fast'); // Slide the menu down
}

function slideTheMenuUp() { // This function is called by hover intent 'out:'
$(this).find('.subnav').slideUp('fast'); // Slide up the sub menu
}

$('ul.topnav li').hoverIntent({
sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
interval: 100,   // number = milliseconds of polling interval (we want this to be initiated on click rather than hover)
over: slideTheMenuDown,  // function = onMouseOver callback (required)
timeout: 500,   // number = milliseconds delay before onMouseOut function call
out: slideTheMenuUp    // function = onMouseOut callback (required)
})
});</pre>
<p>Now that we have Hover Intent working on hover all we need to do is wrap the function slideTheMenuDown in a click event. When Hover Intent reacts to a hover event, there is no action until the associated click event has triggered (basically until you click nothing happens). The result is no animation until you are hovering over the desired element and are also clicking it. Sweet right?</p>
<p>This is what it looks like</p>
<pre>function slideTheMenuDown() {
    $(this).click(function() { // We wrap the action in a click event
        $(this).find('.subnav').slideDown('fast') // Slide the menu down on click
    });
});</pre>
<p>That&#8217;s it, you&#8217;re done.</p>
<p>I have added a few embellishments such as adding an active class to the parent li so when you hover onto the submenu, the hover state sticks on the top level menu item.</p>
<p><a href="http://www.premiumpixels.com/clean-simple-navigation-menu-psd/">Get the menu style as a psd from Premium Pixels</a></p>
<p><a class="call-to-action" href="http://craigmdennis.com/demos/hover-intent/" target="_blank">View the demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/hoverintent-jquery-plugin-initiated-by-a-click-event/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shoutbox</title>
		<link>http://craigmdennis.com/shoutbox/</link>
		<comments>http://craigmdennis.com/shoutbox/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 22:14:13 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Uni work]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[MaxMSP]]></category>
		<category><![CDATA[Sound]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2279</guid>
		<description><![CDATA[The objective was to create an interactive environment with the premise of a 21st century ‘village fete’. Looking into what makes a fete and how this can be recreated with new interactions. The traditional village fete was analysed to see what underlying principles to find out of what one consisted. What did people remember from them? Why... <a class="more" href="http://craigmdennis.com/shoutbox/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<div>
<p><img title="2008-06-11" src="http://uploads.craigmdennis.com/2010/04/2008-06-11-419x337.jpg" alt="" width="420" height="337" /></p>
<p>The objective was to create an interactive environment with the premise of a 21st century ‘village fete’. Looking into what makes a fete and how this can be recreated with new interactions. The traditional village fete was analysed to see what underlying principles to find out of what one consisted.</p>
<p>What did people remember from them? Why did they go to them? Research shows that people enjoy village fetes because of the sense of community, fun and prizes.</p>
<p>Designed to give the user a feeling of fun and community, Shoutbox creates ‘bubbles’ in a variety of shapes and colours based on sound input. Any sound can be used such as a single voice, many voices or instruments. The louder the input; the larger the bubble and the longer the length of the sound; the faster the bubble moves across the screen. In addition, whenever there is a collision between the bubbles, the sound used to create the bubble is played back. Sound attracts people, drawing them together and developing an ad-hoc community wherever it is deployed.</p>
<p><a class="youtube call-to-action" title="Shoutbox demonstration" href="http://www.youtube.com/v/zSHtgOgnI6Y">Watch a video of Shoutbox »</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/shoutbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QR Stamps: RSA Competition</title>
		<link>http://craigmdennis.com/qr-stamps-rsa-competition/</link>
		<comments>http://craigmdennis.com/qr-stamps-rsa-competition/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 01:47:04 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Uni work]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Ravensbourne]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[Stamps]]></category>
		<category><![CDATA[Thermochromic Ink]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2162</guid>
		<description><![CDATA[The aim was to create a stamp that promotes renewable energies. While traditionally a graphic design brief I tried to make the process of informing people more tangible. The stamps use thermochromic ink which, when heated, turns transparent. Two different colours are layered to create a nice effect. Body heat is enough to activate the... <a class="more" href="http://craigmdennis.com/qr-stamps-rsa-competition/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2190 alignnone" title="qr" src="http://uploads.craigmdennis.com/2010/07/qr.jpg" alt="" width="414" height="552" /></p>
<p>The aim was to create a stamp that promotes renewable energies. While traditionally a graphic design brief I tried to make the process of informing people more tangible.</p>
<p>The stamps use thermochromic ink which, when heated, turns transparent. Two different colours are layered to create a nice effect. Body heat is enough to activate the process. When the ink is activated it turns transparent and reveals a QR tag underneath. The QR tag is then captured by a mobile device and automatically directs it to a mobile site. The site contains contextual information related to the specific stamp as part of a photo sharing social network</p>
<p>The inherent social aspect allows for real discussions about problems and solutions. With the rise in connected devices and the increase in mobile cameras, the concept relies on existing technologies. QR tag readers are available on any mobile device and can be downloaded for free. Many mobile devices are being sold with readers already installed and if this continues then the uptake of QR tag usage would naturally increase.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/qr-stamps-rsa-competition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dissertation: Privacy vs Security</title>
		<link>http://craigmdennis.com/dissertation-privacy-vs-security/</link>
		<comments>http://craigmdennis.com/dissertation-privacy-vs-security/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 00:44:06 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Dissertation]]></category>
		<category><![CDATA[Freedom]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2151</guid>
		<description><![CDATA[My dissertation is about internet security and internet privacy issues. The fact that they are both such large parts of everyone’s online experience and yet they seem to constantly battle against each other for supremacy. Can there be harmony or is there an inherent paradox between them meaning they can never function in equilibrium? As part of the dissertation... <a class="more" href="http://craigmdennis.com/dissertation-privacy-vs-security/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img title="Dissertation" src="http://uploads.craigmdennis.com/2010/04/1188852_55513970-Large-420x280.jpg" alt="" width="420" height="280" /></p>
<p>My dissertation is about internet security and internet privacy issues. The fact that they are both such large parts of everyone’s online experience and yet they seem to constantly battle against each other for supremacy. Can there be harmony or is there an inherent paradox between them meaning they can never function in equilibrium?</p>
<p>As part of the dissertation process interviews were conducted, one of which with the global IT manager of Premier Oil, to establish what issues are involved in business as well as consumer experiences and what guidelines they have to adhere to. More importantly if any of them are working or not.</p>
<p><a class="call-to-action" href="http://uploads.craigmdennis.com/2010/04/2008-12-01_Dissertation.pdf">Read my dissertation here ›</a></p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/dissertation-privacy-vs-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a CSS drop-down menu with persistent active state</title>
		<link>http://craigmdennis.com/pure-css-drop-down-menu-with-persistent-active-state/</link>
		<comments>http://craigmdennis.com/pure-css-drop-down-menu-with-persistent-active-state/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 22:17:15 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Active Hover]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[Inline]]></category>
		<category><![CDATA[List]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2083</guid>
		<description><![CDATA[Yesterday at work I stumbled upon an idea that I haven&#8217;t seen before when dealing with pure CSS drop-down menus. The general premise is to use an unordered list within an unordered list activated on hover of the parent li. This is pretty standard (but won&#8217;t work in IE6 due to hovers only being available... <a class="more" href="http://craigmdennis.com/pure-css-drop-down-menu-with-persistent-active-state/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://craigmdennis.com/pure-css-drop-down-menu-with-persistent-active-state/untitled-1-4/" rel="attachment wp-att-2360"><img class="alignnone size-medium wp-image-2360" title="Untitled-1" src="http://uploads.craigmdennis.com/2010/07/Untitled-11-414x212.jpg" alt="" width="414" height="212" /></a></p>
<p>Yesterday at work I stumbled upon an idea that I haven&#8217;t seen before when dealing with pure CSS drop-down menus. The general premise is to use an unordered list within an unordered list activated on hover of the parent li. This is pretty standard (but won&#8217;t work in IE6 due to hovers only being available on anchor tags) and was no problem to implement:</p>
<p><a class="call-to-action" href="http://jsfiddle.net/craigmdennis/pQHs8/" target="_blank">View the demo ›</a></p>
<h3>The HTML</h3>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">&lt;ul id="menu"&gt;
  &lt;li&gt;&lt;a href="#item1"&gt;Menu Item 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#item2"&gt;Menu Item 2&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;a href="#sub1"&gt;Sub Menu Item 1&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#sub2"&gt;Sub Menu Item 2&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#sub3"&gt;Sub Menu Item 3&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;li&gt;&lt;a href="#item2"&gt;Menu Item 3&lt;/a&gt;
&lt;/ul&gt;</pre>
<h3>The CSS</h3>
<pre>ul#menu {list-style:none;}
ul#menu li {display:inline; float:left; width:200px;}
ul#menu li a {background:#CCCCCC; display:block; padding:5px 10px; text-align:center; text-decoration:none;}
ul#menu li a:hover {background:#333333;}
ul#menu li ul {display:none; position:relative;}
ul#menu li:hover ul {display:block;}
ul#menu li ul li a {background:#333333;}
ul#menu li ul li.overlay {position:absolute; top:-26px; left:0;}</pre>
<h2>The problem?</h2>
<p>The problem you will notice is that as soon as you start to hover over the sub menu items, the main menu item returns to it&#8217;s native, non-hover state. This is a problem as this affects the aesthetic quality of the menu and goes against the expected action.</p>
<h2>The solution</h2>
<p>The idea I had to solve this problem was to add anextra list element at the top of the sub menu unordered list and absolutely position it over the item on the main menu when the cursor hovers over the sub menu. Again this action is only supported by IE7 and above.</p>
<ol>
<li>The list item will have a class &#8216;overlay&#8217; applied to it so as it can be uniquely identified.</li>
<li>The list item will have the same text and same link destination as the main menu item.</li>
<li>position:relative; needs to be added to the sub menu unordered list in order to add position:absolute; to the class &#8216;overlay&#8217;</li>
<li>The position of the class &#8216;overlay&#8217; needs to be the negative value of the sub menu list items. So if your list items are 20px in height, the class &#8216;overlay&#8217; needs to have top:-20px; applied to it.</li>
<li>For some reason float:left; needs to be applied to the sub menu unordered list for the effect to work properly in IE7.</li>
</ol>
<p>Have a look at the code below and check out the <a href="http://jsfiddle.net/craigmdennis/pQHs8/" target="_blank">demo</a></p>
<h3>The HTML</h3>
<pre>&lt;ul id="menu"&gt;
  &lt;li&gt;&lt;a href="#item1"&gt;Menu Item 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#item2"&gt;Menu Item 2&lt;/a&gt;
    &lt;ul&gt;
      &lt;li class="overlay"&gt;&lt;a href="#item2"&gt;Menu Item 2&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#sub1"&gt;Sub Menu Item 1&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#sub2"&gt;Sub Menu Item 2&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href="#sub3"&gt;Sub Menu Item 3&lt;/a&gt;&lt;/li&gt;
   &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href="#item3"&gt;Menu Item 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<h3>The CSS</h3>
<p>&nbsp;</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">ul#menu {list-style:none;}
ul#menu li {display:inline; float:left; width:200px;}
ul#menu li a {background:#CCCCCC; display:block; padding:5px 10px; text-align:center; text-decoration:none;}
ul#menu li a:hover {background:#333333;}
ul#menu li ul {display:none; position:relative; float:left;}
ul#menu li:hover ul {display:block;}
ul#menu li ul li a {background:#333333;}
ul#menu li ul li.overlay {position:absolute; top:-26px; left:0;}</pre>
<p>This is the basic principle. View the demo to see it with some styling.</p>
<p><a class="call-to-action" href="http://jsfiddle.net/craigmdennis/pQHs8/" target="_blank">View the demo ›</a></p>
<p class="clear">Please feel free to comment with any improvements or criticisms.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/pure-css-drop-down-menu-with-persistent-active-state/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Get The Most Out Of Your Media Center</title>
		<link>http://craigmdennis.com/get-the-most-out-of-your-windows-7-media-center/</link>
		<comments>http://craigmdennis.com/get-the-most-out-of-your-windows-7-media-center/#comments</comments>
		<pubDate>Thu, 13 May 2010 21:04:23 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[7MC]]></category>
		<category><![CDATA[Codecs]]></category>
		<category><![CDATA[Extender]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[HDCP]]></category>
		<category><![CDATA[Media Center]]></category>
		<category><![CDATA[MKV]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[Problem]]></category>
		<category><![CDATA[Remote]]></category>
		<category><![CDATA[S/PDIF]]></category>
		<category><![CDATA[Shark007]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Xbox 360]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=1675</guid>
		<description><![CDATA[I have just bought a new Media Center PC to connect to my TV and amp. It has been a major headache trying to set it up the way I want so I though (after finally getting it to work) that I would impart some advice. My Setup TV &#8211; LG 42LH7000 Surround System &#8211;... <a class="more" href="http://craigmdennis.com/get-the-most-out-of-your-windows-7-media-center/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>I have just bought a new Media Center PC to connect to my TV and amp. It has been a major headache trying to set it up the way I want so I though (after finally getting it to work) that I would impart some advice.</p>
<h2>My Setup</h2>
<ul>
<li>TV &#8211; LG 42LH7000</li>
<li>Surround System &#8211; Logitech Z5500</li>
<li>PC &#8211; Windows 7 Media Center PC</li>
</ul>
<h2>A few common problems and solutions</h2>
<p><strong>Problem</strong>: Loss of signal when changing inputs on the TV or when PC goes to sleep.<br />
<strong></strong></p>
<p>First thing first &#8211; With everything off, connect the Media Center to the TV with an HDMI lead. This is important because Windows 7 has old drivers for the nVidia GeForce 8200 and has problems with HDCP so your TV needs to be on and set to the correct HDMI input <span style="text-decoration: underline;"><strong>before</strong></span> you turn your PC on. This is known as the &#8216;HDCP handshake issue&#8217; and is quite common. It results in a loss of signal when changing TV inputs or when the PC goes to sleep.</p>
<p>If, like me, you have an nVidia card then fear not as they have fixed this problem with a driver update. Go to <a href="http://www.nvidia.com/Download/index5.aspx?lang=en-us" target="_blank">nvidia.com</a> and select &#8216;Automatically find drivers for my NVIDIA products&#8217; and download the latest version. Mine was 130MB. Install this and reboot.</p>
<p>Unfortunately if you are using an ATI card there is no driver fix. The only thing you can do is download an application that disables and re-enables the HDMI connection fooling the device to re-initiate the handshake. This can be mapped to a keyboard shortcut.</p>
<p><strong>Problem</strong>: No sound through S/PDIF</p>
<p>There are many reasons for this to happen. If you are using the Asus V3M28 motherboard then you have to switch the default audio output to be S/PDIF.</p>
<p>Remember to look in the sound setting to make sure that &#8216;allow programs to take control of this device&#8217; is checked.</p>
<p>If you use VLC and can&#8217;t get S/PDIF to work or it&#8217;s stuttering, in the options set the sound output to Wave32.</p>
<p>There is also a problem with the S/PDIF VIA audio when the computer goes into sleep mode as when it resumes, the connections seems to be &#8216;dead&#8217;. A work around for this is to write a small bat file and have it run on resume which disables and enables the sound device. I think this may have been fixed in a recent Windows Update.</p>
<h2>Getting the best experience</h2>
<h3>Media Broswer</h3>
<p>To make the best of your Windows Media Center experience, download <a href="http://www.mediabrowser.tv/" target="_blank">Media Browser</a>. It&#8217;s a plugin for Media Center that provides you with cover art for Films and TV series, meta data for all the IMDB ratings and synopsis as well as having it&#8217;s own plugins such as themes and more information about the actual files themselves (such as 1080p or 720p or DTS audio or AC-3). It uses <a href="http://thetvdb.com/" target="_blank">http://thetvdb.com/</a> and <a href="http://www.themoviedb.org/" target="_blank">http://www.themoviedb.org/</a> to get all the information. It also provides user generated backdrops that fill the screen with scenes from whatever is selected.</p>
<p>You can also add multiple locations for media. For example I have films stored on my local machine and on an external hard drive. Add both locations and they show up under one category listing that I can name. So I have HD, DVD &amp; TV. One of the plugins allows you to add film trailers to the menu.</p>
<p><img class="alignnone size-medium wp-image-2119" title="media-center" src="http://uploads.craigmdennis.com/2010/05/media-center-420x262.jpg" alt="" width="420" height="262" /></p>
<h3>Shark007 Codec Pack</h3>
<p>Couple this with the Windows 7 <a href="http://shark007.net/" target="_blank">Shark007 codec pack</a>, you can watch any format of video on your Media Center. This is pretty straight forward to install as it uninstalls any other codec pack you might have on your system. Check the ;use Shark&#8217;s recommended settings&#8217; to get the best setup.</p>
<p><em>NOTE: If you are using S/PDIF then in the audio tab you will need to check &#8216;Use pass-through (Dolby Digital)&#8217; in the section titled &#8216;FFDShow S/PDIF pass-through&#8217;.</em></p>
<p><em><img class="alignnone size-medium wp-image-2062" title="Digital Pass-Through" src="http://uploads.craigmdennis.com/2010/05/audio-420x276.png" alt="" width="420" height="276" /></em></p>
<p>Once you have installed the codec pack and set it up, you can use Media Browser on your Media Center Extender device to stream all your content to it &#8211; <strong>this includes .mkv files</strong>. The way you do this is by opening the Media Browser configuration utility, clicking &#8216;advanced&#8217; and selecting the tab mentioning extenders. Now all you have to do is add &#8216;.mkv&#8217; to the list on the left as well as &#8216;.avi&#8217; and any other format you want to play on your extender or just untick &#8216;use Transcode 360&#8242;.</p>
<p><img title="Extender Settings" src="http://uploads.craigmdennis.com/2010/05/extender-420x347.png" alt="" width="420" height="347" /></p>
<p><em>NOTE: Because the Media Center had the codec to play it, you can even stream HD content to your Xbox 360!</em></p>
<h3>Media Center Studio</h3>
<p>Now you have Media Browser set up, you don&#8217;t really need the video section of the Media Center menu. It&#8217;s kinda annoying having something that you no longer need there and so <a href="http://www.adventmediacenter.com/" target="_blank">Media Center Studio</a> comes to the rescue. This provides a WYSIWYG interface for manipulating the Media Center menu to your heart&#8217;s content. I went minimal and just have tasks, TV, Music &amp; Media Browser.</p>
<p><a href="http://uploads.craigmdennis.com/2010/05/browser.png"><img class="alignnone size-medium wp-image-2060" title="Media Center Studio" src="http://uploads.craigmdennis.com/2010/05/browser-420x294.png" alt="" width="420" height="294" /></a></p>
<h3>The remote</h3>
<p>Most people tend to forget about this part of the setup which is strange as it possibly the most important. It is your point of contact with the system so you want it to feel as natural as possible and to be effortless. I recommend one of the <a href="http://www.logitech.com/en-us/remotes/universal_remotes/" target="_blank">Logitech Harmony remotes</a> &#8211; they are learning universal remotes and much more. You can program button configurations so you use the up, down, left &amp; right buttons for the Media Center but still use the volume up &amp; down for the TV without having to select various inputs. It also has macros so with the press of one button you can turn all of your devices on and set them to the correct inputs! Excellent! I have the Harmony 550.</p>
<p><img class="alignnone size-full wp-image-2059" title="Logitech Harmony 550" src="http://uploads.craigmdennis.com/2010/05/logitech_harmony500__52648_zoom-e1273784177689.jpg" alt="" width="420" height="420" /></p>
<h2>Other useful things</h2>
<p>There are many more things that can be customised in Media Center and a great resource for find them out is <a href="http://www.hack7mc.com/">http://www.hack7mc.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/get-the-most-out-of-your-windows-7-media-center/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Graceful Degradation vs Progressive Enhancement</title>
		<link>http://craigmdennis.com/graceful-degradation-vs-progressive-enhancement/</link>
		<comments>http://craigmdennis.com/graceful-degradation-vs-progressive-enhancement/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 21:11:37 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Browser Compatability]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Graceful Degredation]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Progressive Enhancement]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=2039</guid>
		<description><![CDATA[For years web designers have had to deal with compatibility issues across multiple browsers and for just as many years have had to accept content being displayed in slightly different ways. This is unlikely to change soon but the differences are becoming fewer and fewer. To make the most of this you need to choose... <a class="more" href="http://craigmdennis.com/graceful-degradation-vs-progressive-enhancement/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>For years web designers have had to deal with compatibility issues across multiple browsers and for just as many years have had to accept content being displayed in slightly different ways. This is unlikely to change soon but the differences are becoming fewer and fewer. To make the most of this you need to choose a browser in which to make your design / functionality work the way you want it to and then compromise fix it in Internet Explorer other browsers.</p>
<p><img class="alignnone size-medium wp-image-2041" title="Safari Browser" src="http://uploads.craigmdennis.com/2010/04/531173_57280561-Large-420x315.jpg" alt="" width="420" height="315" /></p>
<h3>Let there be light!</h3>
<p>The main thing to realise is that all browsers are not created equal. Older browsers lack support for new technologies (CSS3 / HTML5) and render pages in sometimes odd ways. They also tend to be less forgiving with various structural models and dynamic scripting languages like JavaScript. Something often forgotten is that some users may decide to turn off features in browsers or may be impaired in a manner which affects their browsing habits.</p>
<p>Examples include:</p>
<ul>
<li>disabling JavaScript</li>
<li>disabling images</li>
<li>not using a mouse</li>
<li>using a screen reader</li>
<li>using a text-to-speech device</li>
</ul>
<p>Now while it is near impossible to include in a design every aspect that could affect the way someone experiences a website, there are things that can be done to improve the experience where possible.</p>
<h3>Graceful degradation</h3>
<blockquote><p><em>“Graceful degradation means that your Web site continues to operate even when viewed with less-than-optimal software in which advanced effects don’t work.”</em></p>
<p>– <a href="http://www.digital-web.com/articles/fluid_thinking/">Fluid Thinking</a>, by Peter-Paul Koch</p></blockquote>
<p>Graceful degradation is finally being addressed as the wrong way to approach the problem – design utilising the most advanced features of a browser and where a browser is not capable of implementing those features, a compromise needs to be made. The testing of older browsers is often done towards the end of the development cycle. More often than not this results in a less pleasing site for those using older browsers. This mainly affects IE6 which is still widely adopted throughout the corporate world. Using this approach focuses on using the latest technologies and not considering the experience for people with older browsers, disabilities or with certain functionalities disabled.</p>
<p>So how do you add bells and whistles to a site while maintaining  focus on usability and experience? The answer is in the design process. By first focusing on what ‘everyone’ will see and use, you can address the broadest issues. Bear in mind that a good experience with a site does NOT mean pretty pictures (although they can help) and a person can have a good experience on a simple site, for no other reason than being able to do what they want to do with ease and no interference.</p>
<h3>Progressive enhancement</h3>
<p>Leading on from core usability is the inclusionof  features to improve the experience for those people who are able to experience them – this is known as ‘layering’, starting with semantic  (X)HTML, wrapped in some CSS and finally some JavaScript on top.</p>
<blockquote><p><em>“Progressive enhancement uses web technologies in a layered fashion that allows everyone to access the basic content and functionality of a web page, using any browser or Internet connection, while also providing those with better bandwidth or more advanced browser software an enhanced version of the page.”</em></p>
<p>– <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">Wikipedia</a></p></blockquote>
<p>There is a far more tasty explaination using an M&amp;M that defines the same point:</p>
<blockquote><p><em>“Start with your content peanut, marked up in rich, semantic (X)HTML. Coat that content with a layer of rich, creamy CSS. Finally, add JavaScript as the hard candy shell to make a wonderfully tasty treat (and keep it from melting in your hands).”</em></p>
<p>– <a href="http://www.alistapart.com/articles/understandingprogressiveenhancement/">Aaron Gustafson</a></p></blockquote>
<h3>Good for SEO too?</h3>
<p>When you write rich, semantic (X)HTML you are making life easier for search engines to index your site. It is written in a predictable, organised fashion and as such means the search-bots are more likely to pick up on any extra information as well as index it in the way it is intended. If you think about a search-bot ‘seeing’ in a similar way to a screen-reader, they generally only read text and links and with progressive enhancement you have given them both the best opportunity to get the most out of your site.</p>
<h3>In practice…</h3>
<p>It’s difficult to keep this in mind when you want to use newer technologies to make your life easier. CSS3’s rounded corner declaration or shadow facility would be great, but what happens when you meet a browser that doesn’t support it? As long as the contrast of text to background is suitable and the corners are not an integral part of the design then they will just have square boxes and normal text – something that doesn’t affect their experience too much and won’t affect the usability in any way.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/graceful-degradation-vs-progressive-enhancement/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress, TimThumb &amp; jQuery: Image Hover Effect</title>
		<link>http://craigmdennis.com/wordpress-timthumb-jquery-image-hover-effect/</link>
		<comments>http://craigmdennis.com/wordpress-timthumb-jquery-image-hover-effect/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 16:40:01 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Effect]]></category>
		<category><![CDATA[Greyscale Hover]]></category>
		<category><![CDATA[Hover]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[On-The-Fly Thumbnails]]></category>
		<category><![CDATA[Thumbnail Generation]]></category>
		<category><![CDATA[TimThumb]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=1986</guid>
		<description><![CDATA[This post is about using TimThumb to create an on-the-fly, greyscale image thumbnail of the first image in a post and use jQuery to fade in a colour version on top creating a nice effect. Let me also say that this is not in-depth and is not for beginners as I&#8217;m not going to walk... <a class="more" href="http://craigmdennis.com/wordpress-timthumb-jquery-image-hover-effect/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-2104" title="wordpress" src="http://uploads.craigmdennis.com/2010/04/wordpress-420x370.jpg" alt="" width="420" height="370" /></p>
<p>This post is about using TimThumb to create an on-the-fly, greyscale image thumbnail of the first image in a post and use jQuery to fade in a colour version on top creating a nice effect.</p>
<p>Let me also say that this is not in-depth and is not for beginners as I&#8217;m not going to walk you through each step, merely give you an overview.</p>
<p>If you want to see a demo then look at my <a href="http://craigmdennis.com/articles/">homepage</a> as I&#8217;ve used this effect there and on my search &amp; post lists. As the thumbnails are created on-the-fly and not during image upload, you can use this technique anywhere you like! Why there isn&#8217;t a plugin for this I don&#8217;t know.</p>
<p>Things you will need:</p>
<ol>
<li>TimThumb.php</li>
<li><a href="http://www.pixellica.com/web/free-wordpress-script-for-custom-post-images#more-837" target="_blank">Get the Image script</a> (includes a TimThumb.php in a package file)</li>
<li>jQuery</li>
<li>WordPress</li>
</ol>
<p>Put TimThumb.php in your theme folder in /scripts/ (create this folder if it doesn&#8217;t exist)</p>
<p>Follow <a href="http://www.pixellica.com/web/free-wordpress-script-for-custom-post-images#more-837" target="_blank">this</a> tutorial to get TimThumb and Get The Image working in wordpress. It&#8217;s as simple as copying the script to your functions.php file (or create one if you don&#8217;t have one).</p>
<p>Link to jQuery (there is a way to link to the jQuery library that comes with WordPress but I prefer to link to the one hosted on Google)</p>
<p><strong>To view all the code, simply hover over it.</strong></p>
<h3><strong>Link to jQuery</strong></h3>
<p>Add the following to your header template to link to the Google Code hosted jQuery library:</p>
<pre>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js" type="text/javascript"&gt;&lt;/script&gt;</pre>
<h3><strong>The PHP</strong></h3>
<p>This goes in your template file</p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">
<div id="_mcePaste">&lt;?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?&gt;</div>
<div id="_mcePaste" style="padding-left: 30px;">&lt;div class="home-thumb"&gt;</div>
<div id="_mcePaste" style="padding-left: 60px;">&lt;a class="post-thumb-a" href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php echo get_image(150, 306, '2'); ?&gt;&lt;/a&gt;</div>
<div id="_mcePaste" style="padding-left: 60px;">&lt;a class="post-thumb-b" href="&lt;?php the_permalink(); ?&gt;"&gt;&lt;?php echo get_image(150,306,''); ?&gt;&lt;/a&gt;</div>
<div id="_mcePaste" style="padding-left: 30px;">&lt;/div&gt;</div>
<div id="_mcePaste">&lt;?php endwhile; endif; ?&gt;</div>
</pre>
<p>This should be generally familiar to WordPress people but it&#8217;s saying if there are posts, while there are posts, get the information within the post. More information can be found on the <a href="http://codex.wordpress.org/The_Loop" target="_blank">WordPress Codex about The Loop</a>. The permalink links to the url of the post (can be any link destination though) and inside the link we call the function you should have pasted into your functions file &#8211; get_image(). The arguments are &#8216;height&#8217;, &#8216;width&#8217; and &#8216;filter&#8217;. I have yet to find a list of all the filters supported by TimThumb but for this you&#8217;ll only need filter 2 &#8211; greyscale.</p>
<p>So get_image()  gets the first image in the post and crops it to the dimensions inside the callback (in this case a height of 150px and a width of 306px but you can choose any size that is smaller than the image in the post). The third number is calling a filter from TimThumb which creates a greyscale thumbnail of the image. Then we duplicate this call but remove the &#8217;2&#8242; so we get the full colour thumbnail. We do this so that we can position them one on top of the other and fade one in creating a cool transtion.</p>
<p>The class &#8216;.post-thumb-a&#8217; should be on the link containg the greyscale image &amp; the class &#8216;.post-thumb-b&#8217; goes on the link containing the colour image. This is important as &#8216;.post-thumb-a&#8217; will be placed on top to hide the colour image and will be faded out to reveal the colour image.</p>
<h3>The CSS</h3>
<p>This positions the images and title correctly</p>
<pre>.home-thumb {

<span style="white-space: pre;">	</span>overflow:hidden;

<span style="white-space: pre;">	</span>position:relative;

<span style="white-space: pre;">	</span>width:306px;

<span style="white-space: pre;">	</span>height:150px;

}

a.post-thumb-a img, a.post-thumb-b img {

<span style="white-space: pre;">	</span>position:absolute;<span style="white-space: pre;">	</span>

<span style="white-space: pre;">	</span>top:0;

<span style="white-space: pre;">	</span>left:0;

}

a.post-thumb-a img {

<span style="white-space: pre;">	</span>z-index:10;

}</pre>
<p>What the CSS does is position &#8216;post-thumb-a img&#8217; (the image inside the link) on top (z-index:10;) of post-thumb-b img. This needs to be inside a div as it uses an absolute position to make sure they are pixel perfect overlayed. Make the parent div the same height and width as the thumbnail size you specified in the get_image() callback above.</p>
<p>If you test this now, you should see the greyscale image and not the coloured on &#8212; that&#8217;s because they coloured one is hidden underneath.</p>
<h3>The Javascript</h3>
<p>This goes in the header.php template of your WordPress theme</p>
<pre>&lt;script type="text/javascript"&gt;

jQuery(document).ready(function($){

<span style="white-space: pre;">	</span>$(".home-thumb a img").hover(

<span style="white-space: pre;">		</span>function() {

<span style="white-space: pre;">			</span>$(this).stop().animate({"opacity": "0"}, 800);

<span style="white-space: pre;">			</span>},

<span style="white-space: pre;">		</span>function() {

<span style="white-space: pre;">			</span>$(this).stop().animate({"opacity": "1"}, 800);

<span style="white-space: pre;">			</span>});

});

&lt;/script&gt;</pre>
<p>The Javascript selects &#8216;.home-thumb-a img&#8217; (the greyscale image within the link, the one hiding the coloured image) and sets the opacity to &#8217;1&#8242; until the mouse hovers over it, then change the opacity to &#8217;0&#8242; over the time of 800 ms (1000 ms = 1 second) to reveal the colour image, creating a colour fading effect.</p>
<p>That&#8217;s it, you&#8217;re done. Now have a play around. I&#8217;ve added a title tag in mine.</p>
<p>If I&#8217;ve made a mistake anywhere here please let me know and I&#8217;ll make sure to change it. Any questions and I&#8217;ll be glad to help.</p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/wordpress-timthumb-jquery-image-hover-effect/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mouse-tracking my day</title>
		<link>http://craigmdennis.com/mouse-tracking-my-day/</link>
		<comments>http://craigmdennis.com/mouse-tracking-my-day/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 19:49:09 +0000</pubDate>
		<dc:creator>Craig</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[.jar]]></category>
		<category><![CDATA[Cool]]></category>
		<category><![CDATA[Download]]></category>
		<category><![CDATA[Dual Screen]]></category>
		<category><![CDATA[Modern Art]]></category>
		<category><![CDATA[Mouse Tracking]]></category>

		<guid isPermaLink="false">http://craigmdennis.com/?p=1931</guid>
		<description><![CDATA[While reading an article today in my feed reader (which still says I have over 1000 &#8212; great) I saw someone displaying their mouse movements over the course of a day. I had seen these before but something was different with this one as instead of a traditional heat-map over a browser, this showed it... <a class="more" href="http://craigmdennis.com/mouse-tracking-my-day/">Read more &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>While reading an article today in my feed reader (which still says I have over 1000 &#8212; great) I saw someone displaying their mouse movements over the course of a day.</p>
<p>I had seen these before but something was different with this one as instead of a traditional heat-map over a browser, this showed it more like modern art. Each dot represents a pause on that area of the screen and the larger the dot, the longer the pause was. This article also included a download link for the program which produces them.</p>
<p>So I decided to give it a go. The results of my mouse movements today can be seen below. I work on a dual screen setup but this is take from the left screen. I&#8217;d be interested to run this again on the right screen and compare then two.</p>
<p><a href="http://uploads.craigmdennis.com/2010/04/MouseTracker-09-04-10.jpg"><img class="alignleft size-medium wp-image-1930" title="MouseTracker-09-04-10" src="http://uploads.craigmdennis.com/2010/04/MouseTracker-09-04-10-420x327.jpg" alt="" width="420" height="327" /></a></p>
<p>If you would like to try it, it is a simple .jar file that you execute and run in the background. Pressing [s] saves the screen as a .tif file and [r] resets the screen.</p>
<p><a class="post-link" href="http://uploads.craigmdennis.com/2010/04/mousepath.zip">Download mousepath ›</a></p>
]]></content:encoded>
			<wfw:commentRss>http://craigmdennis.com/mouse-tracking-my-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: craigmdennis.com @ 2012-02-06 22:52:45 by W3 Total Cache -->
