<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns: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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>CoffeePowered » Blog</title>
	
	<link>http://coffeepowered.co.uk</link>
	<description>The online ramblings of Paul Stanton</description>
	<lastBuildDate>Wed, 13 Jan 2010 11:06:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Coffeepowered" /><feedburner:info uri="coffeepowered" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Nurturing my pet projects</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/yCzzOgv1KbQ/</link>
		<comments>http://coffeepowered.co.uk/2010/01/nurturing-my-pet-projects/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 10:36:57 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[p52]]></category>
		<category><![CDATA[pet projects]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=210</guid>
		<description><![CDATA[I&#8217;ve been dabbling in web design and development for 10 years now, and for as long as I can remember I&#8217;ve had one or more pet projects on the go. At the start of the year I decided that I&#8217;d like to devote some more of my personal time to these pet projects, whether that [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been dabbling in web design and development for 10 years now, and for as long as I can remember I&#8217;ve had one or more pet projects on the go. At the start of the year I decided that I&#8217;d like to devote some more of my personal time to these pet projects, whether that means playing with some of the newest toys like HTML5 and CSS3, or simply finishing writing some long-neglected functionality to improve the project as a whole.</p>
<p>I sometimes struggle with the common problem of finding time to devote to pet projects, making sure I don&#8217;t neglect my day-job or my fiancée and while some people may advocate working until the early hours of the morning, it&#8217;s not an option for everyone (and I like my sleep), but as Elliot said recently: &#8220;<a href="http://24ways.org/2009/a-pet-project-is-for-life-not-just-for-christmas">A pet project is for life, not just for Christmas</a></p>
<p>So, for my second <a href="http://project52.info/">#p52</a> blog, I thought I&#8217;d write a little about the pet projects I currently have on the go and list some of the immediate goals for each which I hope to achieve in the next few weeks. I decided to cut some straggling projects loose and concentrate on two, for now.</p>
<h3><a href="http://coffeepowered.co.uk">coffeepowered.co.uk</a></h3>
<p>I&#8217;m in the middle of a complete redesign of my personal site &mdash; including this blog &mdash; in an effort to consolidate some of the contrasting elements I have here &#038; there. The new site will have a portfolio section which features some of my work in a more detailed way than on my CV.</p>
<h4>Goals for Jan/Feb</h4>
<ul>
<li>Complete and release the new design</li>
<li>Continue with Project52</li>
</ul>
<h3><a href="http://homeofmuppets.com">homeofmuppets.com</a></h3>
<p>This is my long-term pet project. Created in 2001 this site revolves around a small group of friends from various parts of the world and still chugs along despite the rise of social networking sites over the past few years, albeit in a stripped-down form. Last year I started a rebuild of the codebase in the CakePHP framework, and it&#8217;s still missing some core functionality.</p>
<h4>Goals for Jan/Feb</h4>
<ul>
<li>Implement OAuth based user login/registration</li>
<li>Finish the design rollout</li>
</ul>
<h3>What about you?</h3>
<p>Are you nurturing any pet projects? What techniques do you use to make sure you&#8217;re devoting enough time to them and not neglecting them? Hit the comment box below and let me know!</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/yCzzOgv1KbQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2010/01/nurturing-my-pet-projects/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2010/01/nurturing-my-pet-projects/</feedburner:origLink></item>
		<item>
		<title>CSS coding standards</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/NEshs3eFYTo/</link>
		<comments>http://coffeepowered.co.uk/2010/01/css-coding-standards/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 20:04:58 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[maintainable css]]></category>
		<category><![CDATA[p52]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=182</guid>
		<description><![CDATA[Well, it&#8217;s now 2010 and as usual, January brings with it many self-made promises and resolutions, one of mine is to write more, even if it&#8217;s just quick tips &#038; tricks rather than lengthy diatribes which I always want to write, but never seem to find the time.
During the back end of last year I [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s now 2010 and as usual, January brings with it many self-made promises and resolutions, one of mine is to write more, even if it&#8217;s just quick tips &#038; tricks rather than lengthy diatribes which I always want to write, but never seem to find the time.</p>
<p>During the back end of last year I started to experiment with one of the more boring aspects of CSS, but one of the most rewarding in the long-term: How I actually write, organise and maintain my CSS files. These are relatively minor tweaks, but I thought I&#8217;d share them in case anyone finds them useful.</p>
<p>I&#8217;d just like to note that these are my personal preferences, you may disagree entirely with the way I do things and that&#8217;s fine, feel free to drop a comment below if you&#8217;d like!</p>
<h3>Single vs. Multi-line</h3>
<p>So lets get this out of the way, I hate single line CSS rules, they&#8217;re a pain-in-the-ass to navigate and can cause problems with some source control tools which may only tell you which line has changed and not which property has changed specifically or when running your code through the validator and getting errors which refer to specific line numbers as well as times when you might not have syntax highlighting to help you quickly visually identify properties and values (such as viewing CSS in Firebug).</p>
<p>I&#8217;ve never written my CSS rules as single-line and I doubt I&#8217;ll ever start.</p>
<h3>Ordering of declarations</h3>
<p>One of my most common bugbears is with the ordering of declarations, a lot of the CSS files I come across in my &#8216;day job&#8217; are simply not ordered in any meaningful way, some have a semblance of ordering based on the personal preferences of the designer and may have width &#038; height rules together, floats and positions together for example, this always differs from designer to designer.</p>
<p>The best way to order declarations is alphabetically, it makes it far easier to scan through and visually locate a specific declaration, especially in large rules. Also, for teams of multiple designers it&#8217;s far easier to add declarations to an existing rule as they simply slot in alphabetically.</p>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ul<span style="color: #cc00cc;">#nav_primary</span> li a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#999</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.2em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span>0 <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-transform</span><span style="color: #00AA00;">:</span><span style="color: #993333;">uppercase</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p></p>
<h3>Curly braces</h3>
<p>This might be one of those decisions where people think &#8220;Does that *really* matter?&#8221;, but I&#8217;ve started to place my closing brace on the same line as the last declaration. The reason behind this is to improve the visual distinction between rules which helps when scanning quickly through a large CSS document.</p>
<p>Previously, I&#8217;d place the closing brace on it&#8217;s own line, like this:</p>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">h1 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">2em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.5em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span>0 0 <span style="color: #933;">18px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <br />
<span style="color: #00AA00;">&#125;</span><br />
h2 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.333em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.125em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.125em</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <br />
<span style="color: #00AA00;">&#125;</span><br />
h3 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.1667em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.2857em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.2857em</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>
Now that the brace follows the last declaration it improves the spacing between rules, or course I could simply add another line after each rule, but that simply adds to the filesize and needlessly pads out the document. This method also places all of the selectors on their own tab level which helps when scanning through to locate a selector.</p>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">h1 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">2px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">2em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.5em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span>0 0 <span style="color: #933;">18px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span><br />
<br />
h2 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.333em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.125em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.125em</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span><br />
<br />
h3 <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.1667em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.2857em</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #933;">1.2857em</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p></p>
<h3>Closing semi-colon</h3>
<p>The closing semi-colon on the last declaration of a CSS rule is optional, while some people will no-doubt argue that dropping this will lead to smaller filesizes I&#8217;d always argue that long-term maintainability is more important, especially on larger projects with multiple developers or for projects which are handed to clients to maintain themselves.</p>
<p>By keeping the closing semi-colon in place anyone can quickly dive into the file and add rules without needing to worry about where the semi-colons are.</p>
<h3>Further reading</h3>
<p>I&#8217;ve only skimmed the surface of CSS coding standards to highlight some of the ways I like to do things, If you&#8217;re interested in making your CSS more readable, and especially more maintainable then I&#8217;d highly recommend you read the PDF version of this BarCamp presentation by Natalie Downe on <a href="http://natbat.net/2008/Sep/28/css-systems/">&#8220;CSS Systems for writing maintainable CSS&#8221;</a> which is a must-read and chock-full of excellent advice.</p>
<h3>What do you do?</h3>
<p>Do you have any personal preferences when it comes to writing your CSS? Feel free to hit the comment box below and let me know!</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/NEshs3eFYTo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2010/01/css-coding-standards/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2010/01/css-coding-standards/</feedburner:origLink></item>
		<item>
		<title>Encouraging impulse purchases</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/lopC-SLevtM/</link>
		<comments>http://coffeepowered.co.uk/2009/10/encouraging-impulse-purchases/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 12:55:16 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[impulse]]></category>
		<category><![CDATA[purchases]]></category>
		<category><![CDATA[retail]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=172</guid>
		<description><![CDATA[So I was in the City this weekend with my fiancée Natalie and we popped into La Senza to pick up an early Christmas present for Nat&#8217;s sister. While we were at the checkout I noticed that the cashiers were using a very effective technique for encouraging impulse purchases.
La Senza offer a complimentary gift wrapping [...]]]></description>
			<content:encoded><![CDATA[<p>So I was in the City this weekend with my fiancée Natalie and we popped into La Senza to pick up an early Christmas present for Nat&#8217;s sister. While we were at the checkout I noticed that the cashiers were using a very effective technique for encouraging impulse purchases.</p>
<p>La Senza offer a complimentary gift wrapping service, and even if you don&#8217;t want a full blown gift box, they still take the time to wrap your purchases in a nice way. This gives them the time to have a quick chat with the customer and in our case, while the cashier was wrapping the set of PJ&#8217;s we&#8217;d picked and asked Nat if they were for her, she replied explaining that they were a Christmas present for her sister to which we were offered a gift box. While she was boxing them and chatting about how many people were doing their Christmas shopping early these days she dropped in &#8220;have you seen our fluffy bedsocks? we&#8217;ve got some in pink and brown which would go really well with these PJ&#8217;s&#8221; which prompted Nat to  go back into the store after her purchase to take a look at.</p>
<p>I&#8217;d also been listening in to the cashier next to us who did exactly the same, noticed what product the customer was purchasing and recommended a specific complimentary product of a relatively low value. This customer also went back into the store to take a look at the other product.</p>
<p>There&#8217;s lots of opportunities for brick &#038; mortar retail stores to passively encourage impulse buys, such as the common technique of having lots of low-value products near and around the checkout, but it was interesting to see the cashiers actively encouraging impulse purchases so effectively by suggesting products based on the customers purchase rather than lazily offering a single product-of-the-day type deal and I began to wonder how this could translate to e-commerce retailers.</p>
<p>It&#8217;s a common technique on e-commerce sites to offer matching products but more often than not these database driven lists aren&#8217;t very useful. When I purchased my netbook online I was presented with a selection of &#8220;You might also like&#8221; products, 2 of which were the same netbook in different colours. Other stores such as Amazon make great use of &#8220;Other customers also bought&#8230;&#8221; type lists which attempt to tap into common buyer preferences which undoubtedly works really well for companies like Amazon, but small retailers might benefit more by adopting this La Senza type approach by giving their customers a small selection of products which compliment their specific purchase and are of a low enough value to be treated as an impulse purchase.</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/lopC-SLevtM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/10/encouraging-impulse-purchases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/10/encouraging-impulse-purchases/</feedburner:origLink></item>
		<item>
		<title>Quick and dirty dropdown pagination in CakePHP</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/vKT8OnpJ08Q/</link>
		<comments>http://coffeepowered.co.uk/2009/10/quick-and-dirty-dropdown-pagination-in-cakephp/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 08:49:46 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[cake]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[homeofmuppets]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[moblog]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=147</guid>
		<description><![CDATA[I&#8217;ve been slowly rebuilding my Moblog application using the CakePHP framework over the past year when I have the time and motivation. Over the past few evenings I&#8217;ve been refining a small element of my Moblog site which has started to dramatically increase user interaction with the site and allow old content to bubble back [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been slowly rebuilding my <a href="http://homeofmuppets.com/moblogs">Moblog</a> application using the CakePHP framework over the past year when I have the time and motivation. Over the past few evenings I&#8217;ve been refining a small element of my Moblog site which has started to dramatically increase user interaction with the site and allow old content to bubble back up to the top.</p>
<p>The Cake <a href="http://book.cakephp.org/view/656/Methods">paginator helper</a> works fine if you&#8217;re using basic anchor links to trigger sort options, but I wanted to use a dropdown select element so that the user can choose how to order the moblogs.</p>
<p>So I know this is most likely a horrible solution to the problem and certainly not very &#8216;cakey&#8217;, but it&#8217;s quick, dirty, and it works for what I need it to do.</p>
<p>In the view we need a valid form element, even though the javascript hijacks the onChange event and doesn&#8217;t actually post the result. At the moment this does mean that this doesn&#8217;t work without javascript but I plan on improving this soon by only using $paginator->sort links in the view, and replacing them with the form completely in javascript.</p>
<p>in the view:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?=</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">create</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Moblog'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'controller'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'moblogs'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'type'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'get'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'div'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?=</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'order'</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'label'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'sort:'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'options'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'modified'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'recent activity'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'date added'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'commented'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'last commented'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'moblog_comment_count'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'most commented'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'rand()'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'random'</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'selected'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'div'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
<span style="color: #000000; font-weight: bold;">&lt;?=</span> <span style="color: #000088;">$form</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">end</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'go'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>In the jQuery we take whichever value was selected on change, build the relevant &#8216;paginator compatible&#8217; url which the helper will use to return the required data on page load and then redirect the browser.</p>
<p>jQuery:</p>
<div class="codecolorer-container javascript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#MoblogOrder'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">change</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> url <span style="color: #339933;">=</span> <span style="color: #3366CC;">'/moblogs/index'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#MoblogOrder option:selected'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'modified'</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/sort:modified/direction:desc/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'id'</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/sort:id/direction:desc/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'commented'</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/sort:commented/direction:desc/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'moblog_comment_count'</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/sort:moblog_comment_count/direction:desc/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">'rand()'</span><span style="color: #339933;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/order:rand()/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">default</span> <span style="color: #339933;">:</span> url <span style="color: #339933;">+=</span> <span style="color: #3366CC;">'/page:1/sort:modified/direction:desc/'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; window.<span style="color: #660066;">location</span> <span style="color: #339933;">=</span> url<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>In this particular example, I&#8217;m using a random order also, which needs to be an &#8216;order&#8217; param instead of a &#8217;sort&#8217;, so in the controller I&#8217;m checking which params are being used, and setting a consistant order variable which is used in the view to maintain the selected state of the select element.</p>
<p>in the index method in the controller</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'named'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sort'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'named'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'sort'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">elseif</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'named'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'named'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'order'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'modified'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>If any Cake ninjas are reading this and have any suggestions, or better methods, please do leave a comment!</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/vKT8OnpJ08Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/10/quick-and-dirty-dropdown-pagination-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/10/quick-and-dirty-dropdown-pagination-in-cakephp/</feedburner:origLink></item>
		<item>
		<title>The best quotes from FOWA</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/4-Ev9LqoG4w/</link>
		<comments>http://coffeepowered.co.uk/2009/10/the-best-quotes-from-fowa/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:09:24 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Conference]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=138</guid>
		<description><![CDATA[This years Future of Web Apps conference was an absolute blast, I&#8217;m hoping to give a full write up of my experience, but for now, here&#8217;s a list of my favourite quotes from the two days.
Stop thinking you understand your users.
Kevin Rose
Don&#8217;t build anything you don&#8217;t need for launch.
Mike McDerment
jQuery is like cocaine. One line [...]]]></description>
			<content:encoded><![CDATA[<p>This years Future of Web Apps conference was an absolute blast, I&#8217;m hoping to give a full write up of my experience, but for now, here&#8217;s a list of my favourite quotes from the two days.</p>
<blockquote><p>Stop thinking you understand your users.<br />
<cite>Kevin Rose</p></blockquote>
<blockquote><p>Don&#8217;t build anything you don&#8217;t need for launch.<br />
<cite>Mike McDerment</cite></p></blockquote>
<blockquote><p>jQuery is like cocaine. One line will get you hooked.<br />
<cite>Dustin Diaz</cite></p></blockquote>
<blockquote><p>Metaprogramming is like trying to do crack cocaine responsibly.<br />
<cite>Dustin Diaz</cite></p></blockquote>
<blockquote><p>The web is too important to be owned by one vendor.<br />
<cite>Bruce Lawson on Canvas vs. Flash</cite></p></blockquote>
<blockquote><p>The great thing about standards is that there&#8217;s so many of them.<br />
<cite>Aza Raskin on the number of OpenID providers</cite></p></blockquote>
<blockquote><p>Marketing is the cancer on the nutsack of creativity.<br />
<cite>Alex Hunter</cite></p></blockquote>
<blockquote><p>Look after your users&#8217; best interest, not yours.<br />
<cite>Alex Hunter</cite></p></blockquote>
<blockquote><p>If you keep pounding someone, they will come.<br />
<cite>Gary Vaynerchuck</cite></p></blockquote>
<blockquote><p>Customer service is not a fucking little &#8220;feedback&#8221; link in the corner of your website!<br />
<cite>Gary Vaynerchuck</cite></p></blockquote>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/4-Ev9LqoG4w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/10/the-best-quotes-from-fowa/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/10/the-best-quotes-from-fowa/</feedburner:origLink></item>
		<item>
		<title>Deliciously Timed Tweets</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/tbzF0IQRu5o/</link>
		<comments>http://coffeepowered.co.uk/2009/09/deliciously-timed-tweets/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 09:52:02 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Labs]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=132</guid>
		<description><![CDATA[What is it?
Deliciously Timed Tweets (or DTT for short) is a collection of API&#8217;s which allow you to bookmark links in Delicious, and then automatically tweet them at a specified time interval.
What&#8217;s the point?
Delicious does already allow you to tweet your bookmarked links, the only problem is that this can result in Twitter spam if [...]]]></description>
			<content:encoded><![CDATA[<h3>What is it?</h3>
<p>Deliciously Timed Tweets (or DTT for short) is a collection of API&#8217;s which allow you to bookmark links in <a href="http://delicious.com">Delicious</a>, and then automatically tweet them at a specified time interval.</p>
<h3>What&#8217;s the point?</h3>
<p>Delicious does already allow you to tweet your bookmarked links, the only problem is that this can result in Twitter spam if you bookmark lots of links in quick succession. DTT queues up your recent bookmarks, and allows you to specify a rate (say, every 60 minutes) for them to be tweeted at.</p>
<p>DTT powers the <a href="http://twitter.com/boaglinks">@boaglinks</a> twitter feed.</p>
<h3>What do I need?</h3>
<ul>
<li>PHP 4+ with cURL support</li>
<li>MySQL</li>
<li>Access to <a id="Requirements" href="http://en.wikipedia.org/wiki/Cron">cron</a></li>
<li>A <a rel="nofollow" href="http://del.icio.us/">Delicious</a> account and some bookmarks.</li>
</ul>
<h3>How do I get it?</h3>
<p><strong>Git :</strong> git clone http://coffeepowered.co.uk/labs/dtt/.git</p>
<p><strong>Zip :</strong> <a href="http://coffeepowered.co.uk/labs/dtt/dtt.zip">http://coffeepowered.co.uk/labs/dtt/dtt.zip</a></p>
<p><strong>Tar :</strong> <a href="http://coffeepowered.co.uk/labs/dtt/dtt.tar">http://coffeepowered.co.uk/labs/dtt/dtt.tar</a></p>
<h3>How do I install it?</h3>
<ol>
<li>Grab the source from any of the locations above and extract/upload it to a location on your own server</li>
<li>Modify config.php with your own details</li>
<li>CHMOD install.php to 755</li>
<li>Visit the install.php file in your browser (http://yoursite.com/path/to/file/install.php)</li>
</ol>
<p>The default setting is for DTT to sync with delicious every hour, and new bookmarks will be tweeted out at a an rate of 1 per hour.</p>
<h3>Support?</h3>
<p>Officially, this is provided &#8220;as is&#8221; and is an unsupported script, however I&#8217;ll endeavour to provide support for anyone who does have problems but I can&#8217;t promise anything!</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/tbzF0IQRu5o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/09/deliciously-timed-tweets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/09/deliciously-timed-tweets/</feedburner:origLink></item>
		<item>
		<title>Lose the snooze</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/XKFtUoT8vc8/</link>
		<comments>http://coffeepowered.co.uk/2009/08/lose-the-snooze/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 07:17:16 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[alarm]]></category>
		<category><![CDATA[life hack]]></category>
		<category><![CDATA[life hacking]]></category>
		<category><![CDATA[snooze]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=109</guid>
		<description><![CDATA[I&#8217;m always up for a bit of &#8216;life hacking&#8217;, figuring out ways to get the most out of everday life and recently I&#8217;ve noticed I&#8217;ve been feeling extremely tired on a morning, almost fatigued and this feeling continues for most of the day.
I get a decent amount of sleep, usually going to bed before 11pm [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always up for a bit of &#8216;life hacking&#8217;, figuring out ways to get the most out of everday life and recently I&#8217;ve noticed I&#8217;ve been feeling extremely tired on a morning, almost fatigued and this feeling continues for most of the day.</p>
<div id="attachment_111" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.flickr.com/photos/h_is_for_home/2460111952/"><img src="http://coffeepowered.co.uk/blog/wp-content/uploads/2009/08/2460111952_1e7f3f8eff.jpg" alt="Photo credit: H is for Home" title="2460111952_1e7f3f8eff" width="500" height="333" class="size-full wp-image-111" /></a><p class="wp-caption-text">Photo credit: H is for Home</p></div>
<p>I get a decent amount of sleep, usually going to bed before 11pm and &mdash; on a weekday &mdash; the alarm goes off at 6:15am when my fiancée wakes up to get ready for work and I normally hit the snooze button a couple of times and get out of bed around 6:30 to 6:45.</p>
<p>I&#8217;ve always thought that by using the snooze button, my body would wake up gradually and I&#8217;d be more awake by the time I got out of bed. My increasing daily tiredness has caused me to question this, and earlier this week I started forcing myself to get out of bed as soon as the 6:15 alarm goes off to see if it makes me feel more awake throughout the day.</p>
<p>So far, so good! Admittedly the inital jump out of bed is quite difficult as I&#8217;m prone to walking into the door in my half-asleep state, but I&#8217;ve found that the simple act of losing the snooze seems to work! I&#8217;m less tired during the day, more alert, focused and productive. Maybe you should give it a try!</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/XKFtUoT8vc8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/08/lose-the-snooze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/08/lose-the-snooze/</feedburner:origLink></item>
		<item>
		<title>New stylings</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/1XobRsQ_DWM/</link>
		<comments>http://coffeepowered.co.uk/2009/08/new-stylings/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 19:25:54 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[coffeepowered]]></category>
		<category><![CDATA[leather]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=103</guid>
		<description><![CDATA[As you can see, I&#8217;ve been tinkering with a new theme for the blog! Please feel free to let me know what you think! I&#8217;ll be using the same leathery style on the Coffeepowered frontpage also, once the blog is done  
Disclaimer!
This theme isn&#8217;t finished, isn&#8217;t cross-browser tested and probably doesn&#8217;t validate. It&#8217;s to [...]]]></description>
			<content:encoded><![CDATA[<p>As you can see, I&#8217;ve been tinkering with a new theme for the blog! Please feel free to let me know what you think! I&#8217;ll be using the same leathery style on the Coffeepowered frontpage also, once the blog is done <img src='http://coffeepowered.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Disclaimer!</h3>
<p>This theme isn&#8217;t finished, isn&#8217;t cross-browser tested and probably doesn&#8217;t validate. It&#8217;s to be considered a work in progress which I was just too impatient to keep hidden.</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/1XobRsQ_DWM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/08/new-stylings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/08/new-stylings/</feedburner:origLink></item>
		<item>
		<title>Printable logos</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/Sudu2luxIPQ/</link>
		<comments>http://coffeepowered.co.uk/2009/08/printable-logos/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 18:33:57 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips and tricks]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=50</guid>
		<description><![CDATA[This is one of those tips where I think &#8220;surely everyone knows this already?&#8221; but it&#8217;s a solution to a problem that I found which was quite neat and I&#8217;ll use all the time from now on.
When it comes to embedding a company logo into a page, quite often the logo won&#8217;t be suitable for [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of those tips where I think &#8220;surely everyone knows this already?&#8221; but it&#8217;s a solution to a problem that I found which was quite neat and I&#8217;ll use all the time from now on.</p>
<p>When it comes to embedding a company logo into a page, quite often the logo won&#8217;t be suitable for print. For example, the website may be dark and the logo might be light and while this works fine when the site is viewed on-screen, it can look out of place when used in a print stylesheet or if the site is viewed with CSS disabled.</p>
<p>While building the new University of Leeds corporate website we got to the stage where we needed to build our print stylesheet, the page header has a white logo on a dark background.</p>
<p>Originally, the logo was inserted into the design using a standard CSS image-replacement technique:</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.leeds.ac.uk&quot;</span>&gt;</span>University of Leeds<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></td></tr></tbody></table></div>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#logo</span> a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">logo_black.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">53px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-9999px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">184px</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<div id="attachment_59" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-59" title="University of Leeds header" src="http://coffeepowered.co.uk/wp-content/uploads/2009/08/University-of-Leeds_1249982729324.png" alt="Light logo on dark header" width="500" height="272" /><p class="wp-caption-text">Light logo on dark header</p></div>
<p>When you&#8217;re using a CSS image replacement, the image doesn&#8217;t exist in the markup, it&#8217;s applied as a background image and only the h2 text is displayed. We toyed with the idea of using the same image replacement technique in our print.css, replacing the logo with the black-on-white variant. This quickly fell on it&#8217;s arse, as most browsers are set by default to not print background images as seen below.</p>
<div id="attachment_72" class="wp-caption aligncenter" style="width: 209px"><img class="size-full wp-image-72" title="University of Leeds - no logo - no css" src="http://coffeepowered.co.uk/wp-content/uploads/2009/08/universityofleeds_nologo_nocss.png" alt="Image replacement with CSS disabled" width="199" height="319" /><p class="wp-caption-text">Image replacement with CSS disabled</p></div>
<h3>Putting the image back into the markup</h3>
<p>In order to get around this, we decided to stop using image replacement and go back to having the image in the markup. Initially I was curious as to the effect of this from an SEO standpoint and had a quick chat with an <a href="http://thehodge.co.uk">SEO friend</a> about the disadvantage of not having our corporate logo as a heading. He pointed out that there would be no disadvantage to us as we&#8217;re not trying to rank on the &#8216;University of Leeds&#8217; as a keyword and that as it&#8217;s mentioned everywhere else in the thousands of pages we manage, it&#8217;s not going to make a difference. (Your mileage may vary and this might not be suitable for everyone)</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo_black.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;University of Leeds logo&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></td></tr></tbody></table></div>
<h3>Doing it bass-ackwards</h3>
<p>Once we&#8217;d put the image back into the markup, it showed up as expected in our print stylesheet, however our white-on-black logo wasn&#8217;t really suited.</p>
<div id="attachment_63" class="wp-caption aligncenter" style="width: 209px"><img class="size-full wp-image-63" title="University of Leeds - CSS disabled" src="http://coffeepowered.co.uk/wp-content/uploads/2009/08/universityofleeds_dark_nocss1.png" alt="Same logo with CSS disabled" width="199" height="320" /><p class="wp-caption-text">Same logo with CSS disabled</p></div>
<p>We already knew that we couldn&#8217;t use CSS to replace this with the black-on-white logo in our print.css, so we decided to do it the other way round. Rather than the have the white-on-black logo as default, we changed to having the black-on white as the default meaning that our no-css and print.css got the correct logo. We used a &#8220;hidden&#8221; class so we could hide the default image and a CSS overlay on the anchor tag to bring back our white-on-black logo to fit in with the rest of the design.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://www.leeds.ac.uk&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hidden&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;logo_white.png&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;University of Leeds logo&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></td></tr></tbody></table></div>
<div class="codecolorer-container css default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#logo</span> a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">logo_black.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
.<span style="color: #993333;">hidden</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<div id="attachment_59" class="wp-caption aligncenter" style="width: 510px"><img class="size-full wp-image-59" title="University of Leeds header" src="http://coffeepowered.co.uk/wp-content/uploads/2009/08/University-of-Leeds_1249982729324.png" alt="Light logo on dark header" width="500" height="272" /><p class="wp-caption-text">CSS enabled</p></div>
<div id="attachment_61" class="wp-caption aligncenter" style="width: 209px"><img class="size-full wp-image-61" title="University of Leeds - No CSS" src="http://coffeepowered.co.uk/wp-content/uploads/2009/08/universityofleeds_nocss.png" alt="Black on white logo" width="199" height="320" /><p class="wp-caption-text">CSS disabled / print stylesheet</p></div>
<h3>Conclusion</h3>
<p>Because most browsers disable background images when printing by default, you need to be aware that any important images that are using image-replacement techniques may not work. Working around these limitations is possible with a bit of planning.</p>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/Sudu2luxIPQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/08/printable-logos/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/08/printable-logos/</feedburner:origLink></item>
		<item>
		<title>Featured : Designers scribbles</title>
		<link>http://feedproxy.google.com/~r/Coffeepowered/~3/3ARKRqlZNAk/</link>
		<comments>http://coffeepowered.co.uk/2009/08/featured-designers-scribbles/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 21:27:17 +0000</pubDate>
		<dc:creator>Stanton</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[moleskine]]></category>
		<category><![CDATA[scribble]]></category>

		<guid isPermaLink="false">http://coffeepowered.co.uk/blog/?p=45</guid>
		<description><![CDATA[I&#8217;ve only just spotted this, but some of my moleskine scribbles were featured in Niki Brown&#8217;s Design O&#8217;Blog a while ago.
I love my moleskine, although I need to get into the habit of scribbling more!
http://www.nikibrown.com/designoblog/2008/12/01/designers-scribbles/
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve only just spotted this, but some of my moleskine scribbles were featured in Niki Brown&#8217;s Design O&#8217;Blog a while ago.</p>
<p>I love my moleskine, although I need to get into the habit of scribbling more!</p>
<p><a href="http://www.nikibrown.com//designoblog/2008/12/01/designers-scribbles/">http://www.nikibrown.com/designoblog/2008/12/01/designers-scribbles/</a></p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://www.flickr.com/photos/paulstanton/sets/72157609974943074/"><img title="Moleskine scribbles" src="http://farm4.static.flickr.com/3166/3055609487_6cc99f2efc.jpg" alt="" width="500" height="375" /></a><p class="wp-caption-text">Moleskine scribbles</p></div>
<img src="http://feeds.feedburner.com/~r/Coffeepowered/~4/3ARKRqlZNAk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://coffeepowered.co.uk/2009/08/featured-designers-scribbles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://coffeepowered.co.uk/2009/08/featured-designers-scribbles/</feedburner:origLink></item>
	</channel>
</rss>
