<?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"
	>

<channel>
	<title>notebook</title>
	<atom:link href="http://eddcouchman.com/notebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://eddcouchman.com/notebook</link>
	<description>from edd couchman, the creator of redheat and chopter</description>
	<pubDate>Fri, 28 Dec 2007 16:16:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>iPhone Review after 50 days</title>
		<link>http://eddcouchman.com/notebook/iphone-review-after-50-days/</link>
		<comments>http://eddcouchman.com/notebook/iphone-review-after-50-days/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 16:16:12 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[today]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[installer.app]]></category>

		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/iphone-review-after-50-days/</guid>
		<description><![CDATA[I&#8217;ve now had my iPhone for 50 days, so thought I&#8217;d give you all a quick review.It&#8217;s incredible!
But, I have decided to jailbreak it &#8212; which, by the way, is pretty easy to do.
The main reason for jailbreaking the iPhone, is because you can&#8217;t send a text message to multiple people, which in my opinion, is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve now had my iPhone for 50 days, so thought I&#8217;d give you all a quick review.It&#8217;s incredible!</p>
<p>But, I have decided to jailbreak it &#8212; which, by the way, is <a href="http://lifehacker.com/337863/how-to-install-third+party-apps-on-your-new-iphone-or-ipod-touch">pretty easy to do</a>.</p>
<p>The main reason for jailbreaking the iPhone, is because you can&#8217;t send a text message to multiple people, which in my opinion, is a really big oversight by Apple. Other than this small problem, the iPhone is pretty perfect&#8230; or, I thought it was pretty perfect.</p>
<p>Since jailbreaking, I have re-fallen in love with this gadget. It&#8217;s incredibly powerful, and now does all of the things I wish it could do from the off.</p>
<ul>
<li>Rule number one when buying the iPhone. Jailbreak!</li>
<li>Rule number two: buy some decent headphones. I just bought the V-moda &#8216;phones, and they&#8217;re really, really good. </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/iphone-review-after-50-days/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lazy Load Images with Prototype</title>
		<link>http://eddcouchman.com/notebook/lazy-load-images-with-prototype/</link>
		<comments>http://eddcouchman.com/notebook/lazy-load-images-with-prototype/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 11:13:23 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/lazy-load-images-with-prototype/</guid>
		<description><![CDATA[Download lazyload.js.
Requires prototype.js version 1.6.0_rc0 or above.
Element.addMethods&#40;&#123;
	lazyload: function&#40;element, options&#41;
	&#123;
		/**
		What does it do?
			It delays loading of images in (long) pages. Images below the fold (far down in the
			page) won’t be loaded before the user scrolls down. This is exact opposite of image
			preloading. With long pages containing heavy image content end user result is the
			same. Page feels [...]]]></description>
			<content:encoded><![CDATA[<p>Download <a href="http://eddcouchman.com/notebook/wp-content/uploads/2007/09/lazyload.js" title="lazyload.js">lazyload.js</a>.</p>
<p>Requires <a href="http://prototypejs.org/">prototype.js</a> version 1.6.0_rc0 or above.</p>
<p><pre class="javascript">Element.<span style="color: #006600;">addMethods</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>
	lazyload: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>element, options<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #009900; font-style: italic;">/**
		What does it do?
			It delays loading of images in (long) pages. Images below the fold (far down in the
			page) won’t be loaded before the user scrolls down. This is exact opposite of image
			preloading. With long pages containing heavy image content end user result is the
			same. Page feels snappier. Browser is in ready state after loading visible images.
			No need to wait for n pictures to load.
			
		From Wikipedia:
			Lazy loading is a design pattern commonly used in computer programming to defer
			initialization of an object until the point at which it is needed. It can contribute
			to efficiency in the program’s operation if properly and appropriately used.
		
		Inspired by:
			http://www.appelsiini.net/2007/9/lazy-load-images-jquery-plugin
			
		Requires:
			Prototype.js version 1.6.0_rc0 or later
			A page with lots of big images below the fold (optional)
		*/</span>
		
		<span style="color: #003366; font-weight: bold;">function</span> $restore<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #009900; font-style: italic;">// this function restores the original image source; called when above the fold</span>
			<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #003366; font-weight: bold;">true</span> === $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">hasAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'_src'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				$<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">writeAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> src: $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">readAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'_src'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #003366; font-weight: bold;">function</span> $scroll<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #009900; font-style: italic;">// this function returns the amount the page is scrolled vertically</span>
			<span style="color: #003366; font-weight: bold;">var</span> scroll_y = self.<span style="color: #006600;">pageYOffset</span> || document.<span style="color: #006600;">documentElement</span>.<span style="color: #006600;">scrollTop</span> || document.<span style="color: #006600;">body</span>.<span style="color: #006600;">scrollTop</span>;
			<span style="color: #000066; font-weight: bold;">return</span> parseInt<span style="color: #66cc66;">&#40;</span>scroll_y<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #003366; font-weight: bold;">function</span> $height<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #009900; font-style: italic;">// this function returns the height of the viewport</span>
			<span style="color: #003366; font-weight: bold;">var</span> window_height = window.<span style="color: #006600;">innerHeight</span> || document.<span style="color: #006600;">documentElement</span>.<span style="color: #006600;">clientHeight</span>;
			<span style="color: #000066; font-weight: bold;">return</span> parseInt<span style="color: #66cc66;">&#40;</span>window_height<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #003366; font-weight: bold;">var</span> element     = $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #003366; font-weight: bold;">var</span> options     = Object.<span style="color: #006600;">extend</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>
			threshold   : <span style="color: #CC0000;">0</span>,
			placeholder : <span style="color: #3366CC;">'/images/grey.gif'</span>,
			event       : <span style="color: #3366CC;">'scroll'</span>,
			frequency   : <span style="color: #CC0000;">0.1</span>
		<span style="color: #66cc66;">&#125;</span>, options || <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> offset      = $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">cumulativeOffset</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#93;</span>;
		<span style="color: #003366; font-weight: bold;">var</span> activate_on = <span style="color: #66cc66;">&#40;</span>offset - options.<span style="color: #006600;">threshold</span><span style="color: #66cc66;">&#41;</span> - $height<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> old_source  = $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">readAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'src'</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #003366; font-weight: bold;">var</span> new_source  = options.<span style="color: #006600;">placeholder</span>;
&nbsp;
		$<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>
			.<span style="color: #006600;">writeAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> src :  new_source <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>
			.<span style="color: #006600;">writeAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #3366CC;">'_src'</span> :  old_source <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
		
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'scroll'</span> === options.<span style="color: #006600;">event</span> <span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">new</span> PeriodicalExecuter<span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>$executor<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> activate_on &lt;= $scroll<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span>
				<span style="color: #66cc66;">&#123;</span>
					$restore<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; $executor.<span style="color: #000066;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>, options.<span style="color: #006600;">frequency</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span>
		<span style="color: #66cc66;">&#123;</span>
			$<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">observe</span><span style="color: #66cc66;">&#40;</span>options.<span style="color: #006600;">event</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				$restore<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>; $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">stopObserving</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #000066; font-weight: bold;">return</span> $<span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
document.<span style="color: #006600;">observe</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'contentloaded'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	$$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'img'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">invoke</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'lazyload'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/lazy-load-images-with-prototype/feed/</wfw:commentRss>
		</item>
		<item>
		<title>dispatch.fcgi or, How to get Ruby on Rails to work</title>
		<link>http://eddcouchman.com/notebook/dispatchfcgi-or-how-to-get-ruby-on-rails-to-work/</link>
		<comments>http://eddcouchman.com/notebook/dispatchfcgi-or-how-to-get-ruby-on-rails-to-work/#comments</comments>
		<pubDate>Tue, 04 Sep 2007 12:14:53 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[today]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/dispatchfcgi-or-how-to-get-ruby-on-rails-to-work/</guid>
		<description><![CDATA[I host all of my website with Dreamhost. I think they’re fantastic — a little slow, perhaps — but they’re full of features, and let you install all kinds of goodness on their servers.
Recently, however, I have been struggling to get Ruby on Rails working on their domains. I have been fighting an uphill battle [...]]]></description>
			<content:encoded><![CDATA[<p>I host all of my website with <a href="http://www.dreamhost.com/r.cgi?200192">Dreamhost</a>. I think they’re fantastic — a little slow, perhaps — but they’re full of features, and let you install all kinds of goodness on their servers.</p>
<p>Recently, however, I have been struggling to get Ruby on Rails working on their domains. I have been fighting an uphill battle and losing, until I worked out the Shebang! line in dispatch.fcgi…</p>
<blockquote><p>#!/usr/bin/ruby1.8</p></blockquote>
<p>This will magically get your <abbr title="Ruby on Rails">RoR</abbr> application working.</p>
<p>The full dispatch.fcgi file is below:</p>
<blockquote><p><pre class="php"><span style="color: #808080; font-style: italic;">#!/usr/bin/ruby1.8</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># You may specify the path to the FastCGI crash log (a log of unhandled</span>
<span style="color: #808080; font-style: italic;"># exceptions which forced the FastCGI instance to exit, great for debugging)</span>
<span style="color: #808080; font-style: italic;"># and the number of requests to process before running garbage collection.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log</span>
<span style="color: #808080; font-style: italic;"># and the GC period is nil (turned off).  A reasonable number of requests</span>
<span style="color: #808080; font-style: italic;"># could range from 10-100 depending on the memory footprint of your app.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Example:</span>
<span style="color: #808080; font-style: italic;">#   # Default log path, normal GC behavior.</span>
<span style="color: #808080; font-style: italic;">#   RailsFCGIHandler.process!</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;">#   # Default log path, 50 requests between GC.</span>
<span style="color: #808080; font-style: italic;">#   RailsFCGIHandler.process! nil, 50</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;">#   # Custom log path, normal GC behavior.</span>
<span style="color: #808080; font-style: italic;">#   RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #b1b100;">require</span> <a href="http://www.php.net/file"><span style="color: #000066;">File</span></a>.<a href="http://www.php.net/dirname"><span style="color: #000066;">dirname</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">__FILE__</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">&quot;/../config/environment&quot;</span>
<span style="color: #b1b100;">require</span> <span style="color: #ff0000;">'fcgi_handler'</span></pre></p>
<p>RailsFCGIHandler.process!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/dispatchfcgi-or-how-to-get-ruby-on-rails-to-work/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coherence for testing</title>
		<link>http://eddcouchman.com/notebook/coherence-for-testing/</link>
		<comments>http://eddcouchman.com/notebook/coherence-for-testing/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 08:21:00 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[review]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/coherence-for-testing/</guid>
		<description><![CDATA[I often write about the work I create, and sometimes write about the tools I use to create it, but I have never told you how I integrate my Mac with our Windows office (small O). What is the right way™?To do this, I use Parallels, which is a fantastic tool, and have recently been [...]]]></description>
			<content:encoded><![CDATA[<p>I often write about the work I create, and sometimes write about the tools I use to create it, but I have never told you how I integrate my Mac with our Windows office (small O). What is the <span style="font-style: italic" class="Apple-style-span">right way</span>™?To do this, I use Parallels, which is a fantastic tool, and have recently been using it in Coherence mode. In this magical mode I can have Internet Explorer running next to Safari with no problems at all. I can have Access open importing a spreadsheet I&#8217;ve created in Excel for the Mac. All with no problems.The best advice I can give you is buy Parallels, turn on Coherence mode, and drag your favourite applications (different Internet Explorers for testing, etc.) into the dock. It&#8217;s fantastic, and so quick. </p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/coherence-for-testing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Equal Height Columns</title>
		<link>http://eddcouchman.com/notebook/equal-height-columns/</link>
		<comments>http://eddcouchman.com/notebook/equal-height-columns/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 11:48:17 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[prototype]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/equal-height-columns/</guid>
		<description><![CDATA[There are no CSS hacks that can get equal-sized columns, so I wrote this tiny bit of Javascript to do the work for you. Simply add a class of &#8220;column&#8221; to any &#60;div&#62;s and their heights will match when the page loads.
function matchColumns&#40;&#41;
&#123;
	var columns = $A&#40;$$&#40;'div.column'&#41;&#41;;
	var column_height = 0;
	var max_height = 0;
	columns.each&#40;function&#40;column&#41;
	&#123;
		column_height = column.getHeight&#40;&#41;;
		max_height = [...]]]></description>
			<content:encoded><![CDATA[<p>There are no CSS hacks that can get equal-sized columns, so I wrote this tiny bit of Javascript to do the work for you. Simply add a class of &#8220;column&#8221; to any &lt;div&gt;s and their heights will match when the page loads.</p>
<p><pre class="javascript"><span style="color: #003366; font-weight: bold;">function</span> matchColumns<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> columns = $A<span style="color: #66cc66;">&#40;</span>$$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'div.column'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #003366; font-weight: bold;">var</span> column_height = <span style="color: #CC0000;">0</span>;
	<span style="color: #003366; font-weight: bold;">var</span> max_height = <span style="color: #CC0000;">0</span>;
	columns.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>column<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		column_height = column.<span style="color: #006600;">getHeight</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		max_height = <span style="color: #66cc66;">&#40;</span> column_height &gt; max_height <span style="color: #66cc66;">&#41;</span> ? column_height : max_height;
	<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	columns.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>column<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		column.<span style="color: #006600;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>
			height: <span style="color: #66cc66;">&#40;</span>max_height + <span style="color: #CC0000;">10</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">'px'</span>
		<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
Event.<span style="color: #006600;">observe</span><span style="color: #66cc66;">&#40;</span>window, <span style="color: #3366CC;">'load'</span>, matchColumns<span style="color: #66cc66;">&#41;</span>;</pre></p>
<p>As always, this script requires <a href="http://prototypejs.org/">prototype</a>, and will work better if you have a DOMReady function instead of window.load.</p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/equal-height-columns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Smooth Scrolling Links</title>
		<link>http://eddcouchman.com/notebook/smooth-scrolling-links/</link>
		<comments>http://eddcouchman.com/notebook/smooth-scrolling-links/#comments</comments>
		<pubDate>Sat, 23 Jun 2007 23:17:31 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[javascript]]></category>

		<category><![CDATA[prototype]]></category>

		<category><![CDATA[scriptaculous]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/smooth-scrolling-links/</guid>
		<description><![CDATA[FAQs are tedious, but we can make their usage much more enjoyable (although I use this word lightly) by imroving the User Experience slightly.
Normal FAQs jump from the list of questions to the answer; with a simple bit of Javascript the page will smoothly scroll to the answer, and then&#8211;as a bonus&#8211;the answer will flash [...]]]></description>
			<content:encoded><![CDATA[<p>FAQs are tedious, but we can make their usage much more enjoyable (although I use this word lightly) by imroving the User Experience slightly.</p>
<p>Normal FAQs jump from the list of questions to the answer; with a simple bit of Javascript the page will smoothly scroll to the answer, and then&#8211;as a bonus&#8211;the answer will flash slightly.</p>
<p><pre class="javascript">Event.<span style="color: #006600;">observe</span><span style="color: #66cc66;">&#40;</span>window, <span style="color: #3366CC;">'load'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
   $$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'a[href^=#]:not([href=#])'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">each</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span>
      element.<span style="color: #006600;">observe</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'click'</span>, <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#123;</span>
         <span style="color: #003366; font-weight: bold;">new</span> Effect.<span style="color: #006600;">ScrollTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">hash</span>.<span style="color: #006600;">substr</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#41;</span>,
         <span style="color: #66cc66;">&#123;</span>
            offset: <span style="color: #CC0000;">-12</span>
         <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
 
         <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">hash</span>.<span style="color: #006600;">substr</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#41;</span> !== <span style="color: #3366CC;">'top'</span> <span style="color: #66cc66;">&#41;</span>
         <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> Prototype.<span style="color: #006600;">Browser</span>.<span style="color: #006600;">IE</span> <span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#123;</span>
               $<span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">hash</span>.<span style="color: #006600;">substr</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">setStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>
                  backgroundColor: <span style="color: #3366CC;">'#fff'</span>
               <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #66cc66;">&#125;</span>
 
            Effect.<span style="color: #006600;">Pulsate</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">hash</span>.<span style="color: #006600;">substr</span><span style="color: #66cc66;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #66cc66;">&#41;</span>,
            <span style="color: #66cc66;">&#123;</span>
               from: <span style="color: #CC0000;">0.5</span>,
               pulses: <span style="color: #CC0000;">5</span>
            <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
         <span style="color: #66cc66;">&#125;</span>
 
         Event.<span style="color: #000066;">stop</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span>;
      <span style="color: #66cc66;">&#125;</span>.<span style="color: #006600;">bindAsEventListener</span><span style="color: #66cc66;">&#40;</span>element<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
   <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></p>
<p>This script requires <a href="http://script.aculo.us/">script.aculo.us</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/smooth-scrolling-links/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MacBook Pro Plus™</title>
		<link>http://eddcouchman.com/notebook/macbook-pro-plus%e2%84%a2/</link>
		<comments>http://eddcouchman.com/notebook/macbook-pro-plus%e2%84%a2/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 13:34:23 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[review]]></category>

		<category><![CDATA[today]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/macbook-pro-plus%e2%84%a2/</guid>
		<description><![CDATA[It&#8217;s amazing!
The MacBook Pro that Vuture bought me is incredible. The whole machine flies (not literally, obviously) and running Windows in real-time alongside OS X is such a boon.
If you have the money, I would definitely recommend that you buy one of these beasts.
]]></description>
			<content:encoded><![CDATA[<p><strong>It&#8217;s amazing!</strong></p>
<p>The MacBook Pro that <a href="http://www.vuture.co.uk/">Vuture</a> bought me is incredible. The whole machine flies (not literally, obviously) and running Windows in real-time alongside OS X is such a boon.</p>
<p>If you have the money, I would definitely recommend that you buy one of these beasts.</p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/macbook-pro-plus%e2%84%a2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MacBook Pro</title>
		<link>http://eddcouchman.com/notebook/macbook-pro/</link>
		<comments>http://eddcouchman.com/notebook/macbook-pro/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 16:09:39 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[today]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/macbook-pro/</guid>
		<description><![CDATA[One week ago today I started fulltime work at Vuture.
Today, Vuture ordered me a brand new 2.4GHz Core 2 Duo MacBook Pro! (For those of you who don&#8217;t understand &#8220;Geek speak&#8221;, that means: kick-ass laptop).
I&#8217;m very excited!
Thank you Vuture!
]]></description>
			<content:encoded><![CDATA[<p>One week ago today I started fulltime work at Vuture.<br />
Today, Vuture ordered me a brand new 2.4GHz Core 2 Duo MacBook Pro! (For those of you who don&#8217;t understand &#8220;Geek speak&#8221;, that means: kick-ass laptop).<br />
I&#8217;m <strong>very</strong> excited!</p>
<p>Thank you Vuture!</p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/macbook-pro/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coda</title>
		<link>http://eddcouchman.com/notebook/coda/</link>
		<comments>http://eddcouchman.com/notebook/coda/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 09:45:29 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[today]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/coda/</guid>
		<description><![CDATA[I have fallen in love. Seriously, I&#8217;m truly, truly smitten with Coda from Panic. It is a fantastic bit of kit, and by far better than Adobe&#8217;s Dreamweaver CS3.
The page views are stunning, the FTP integration and large Publish All button works incredibly well.
While the text editor isn&#8217;t as powerful as Textmate, and the CSS [...]]]></description>
			<content:encoded><![CDATA[<p>I have fallen in love. Seriously, I&#8217;m truly, truly smitten with <a href="http://www.panic.com/coda/">Coda</a> from Panic. It is a fantastic bit of kit, and by far better than Adobe&rsquo;s Dreamweaver CS3.</p>
<p>The page views are stunning, the FTP integration and large <strong>Publish All</strong> button works incredibly well.</p>
<p>While the text editor isn&#8217;t as powerful as Textmate, and the CSS editor isn&#8217;t as flexible as CSSEdit2, the overall synergy of this tool is fantastic.</p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/coda/feed/</wfw:commentRss>
		</item>
		<item>
		<title>coursework: travel site</title>
		<link>http://eddcouchman.com/notebook/coursework-travel-site/</link>
		<comments>http://eddcouchman.com/notebook/coursework-travel-site/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 23:14:01 +0000</pubDate>
		<dc:creator>edd</dc:creator>
		
		<category><![CDATA[php]]></category>

		<category><![CDATA[prototype]]></category>

		<category><![CDATA[university]]></category>

		<guid isPermaLink="false">http://eddcouchman.com/notebook/coursework-travel-site/</guid>
		<description><![CDATA[Today I presented some coursework to my Multimedia Databases lectured, Dr. Kyberd.
I got an A!
The final part of this coursework is due on Wednesday, so I&#8217;d better pull my thumb out and get on with it.
]]></description>
			<content:encoded><![CDATA[<p>Today I presented some <a href="http://travel.redheat.co.uk/" rel="nofollow">coursework</a> to my <em>Multimedia Databases</em> lectured, Dr. Kyberd.</p>
<p><strong>I got an A!</strong></p>
<p>The final part of this coursework is due on Wednesday, so I&#8217;d better pull my thumb out and get on with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://eddcouchman.com/notebook/coursework-travel-site/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 12.428 seconds -->
<!-- Cached page served by WP-Cache -->
