<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>JamesWhittaker.com</title>
    <link>http://www.jameswhittaker.com/</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:creator>jmwhittaker@gmail.com</dc:creator>
    <dc:rights>Copyright 2008</dc:rights>
    <dc:date>2008-03-02T22:37:00+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.pmachine.com/" />
    

    <item>
      <title>EM Calculator updated for AIR 1.0</title>
      <link>http://www.jameswhittaker.com/blog/article/em-calculator-updated-for-air-10/</link>
      <guid>http://www.jameswhittaker.com/blog/article/em-calculator-updated-for-air-10/#When:22:37:00Z</guid>
      <description><![CDATA[<p>I have updated my EM Calculator so that it now works with the newly released <span class="caps">AIR</span> version 1.0 runtime. If you already have the calculator installed you will need to remove the app, install the new <span class="caps">AIR</span> 1.0 runtime then install the new app using the installer badge. I have not built in self updating in the 0.3 version although that will come now that <span class="caps">AIR</span> is set at version 1.0.</p>

	<p>I have changed the install method to now use the <span class="caps">AIR</span> badge installer so that should make life easier to install the application. As this is new I would be interested to hear your feedback on this.</p>

	<p>So please read the original post for the updated installer at <a href="http://www.jameswhittaker.com/blog/article/em-based-layouts-vertical-rhythm-calculator/">http://www.jameswhittaker.com/blog/article/em-based-layouts-vertical-rhythm-calculator/</a></p>]]></description>
      <dc:subject>Flex, Tools, UI</dc:subject>
      <dc:date>2008-03-02T22:37:00+00:00</dc:date>
    </item>

    <item>
      <title>FITC Amsterdam 2008</title>
      <link>http://www.jameswhittaker.com/blog/article/fitc-amsterdam-2008/</link>
      <guid>http://www.jameswhittaker.com/blog/article/fitc-amsterdam-2008/#When:11:33:00Z</guid>
      <description><![CDATA[<p><a href="http://www.fitc.ca"><img src="http://www.jameswhittaker.com/uploads/blogimages/fitc-amsterdam.jpg" title="FITC Amsterdam" alt="FITC Amsterdam" width="449" height="95" /></a></p>

	<p>Just finished booking my flights and hotel for Flash in the can Amsterdam. I&#8217;ve become a bit of a conference junkie lately with Max in Barcelona then Flash on the beach and now <span class="caps">FITC</span>. I am a bit miffed that some of the speakers, who i&#8217;m sure get paid quite a bit for their attendance, are giving the same sessions as Flash on the Beach. Oh well I will just attend some of the different or new sessions.</p>

	<p>Unfortunately i&#8217;m not going to be attending the now sold out Papervision 3d workshop on the Sunday but I&#8217;m determined to go to the many PV3d sessions during the event. So my provisional session schedule looks like this:</p>

	<h3>Monday Feb 25th</h3>

	<table>
		<tr>
			<td>09:00 &#8211; 10:00</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=609">Adobe Keynote &#8211; Mike Downey</a></td>
		</tr>
		<tr>
			<td>10:15 &#8211; 11:15</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=578"><span class="caps">RIA</span> meets desktop &#8211; Peter Elst</a></td>
		</tr>
		<tr>
			<td>11:30 &#8211; 12:30</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=581">Data Visualization with Flex and <span class="caps">AIR</span> &#8211; Nicolas Lierman</a></td>
		</tr>
		<tr>
			<td>13:30 &#8211; 14:30</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=617">From Screen to Space: Designing Large-Scale Interactive Experiences &#8211; Nikolai Cornell</a></td>
		</tr>
		<tr>
			<td>14:45 &#8211; 15:45</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=601">Kaboom!!! Flash Pyrotechnics &#8211; Seb Lee-Delisle</a></td>
		</tr>
		<tr>
			<td>16:00 &#8211; 17:00</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=618">North Kingdom &#8211; An Inside View &#8211; Andreas Pihlström</a></td>
		</tr>
		<tr>
			<td>17:15 &#8211; 18:15</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=585">Reducing Complexity: An Intimate Look at Saffron &#8211; Samuel Agesilas</a></td>
		</tr>
	</table>

	<h3>Tuesday Feb 26th</h3>

	<table>
		<tr>
			<td>09:00 &#8211; 10:00</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=584">Play with Pixels, Bitmap Manipulation with Flash! &#8211; Koen De Weggheleire</a></td>
		</tr>
		<tr>
			<td>10:15 &#8211; 11:15</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=621"><span class="caps">AIR</span> Conditioning &#8211; Lee Brimlow</a></td>
		</tr>
		<tr>
			<td>11:30 &#8211; 12:30</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=583">Do The Right Thing. Do The Thing Right &#8211; Robert L. Peters</a></td>
		</tr>
		<tr>
			<td>13:30 &#8211; 14:30</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=605">Big Spaceship &#8211; Joshua Hirsch</a></td>
		</tr>
		<tr>
			<td>14:45 &#8211; 15:45</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=612">Flash 2D & 3D Effects &#8211; Ralph Hauwert</a></td>
		</tr>
		<tr>
			<td>16:00 &#8211; 17:00</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=604">The Rest of the Iceberg &#8211; Hoss Gifford</a></td>
		</tr>
		<tr>
			<td>17:15 &#8211; 18:15</td>
			<td><a href="http://www.fitc.ca/presentation_detail.cfm?festival_id=29&#38;presentation_id=596">Flex development for your daily development &#8211; Marco Casario</a></td>
		</tr>
	</table>

	<p>I think there is a good mixture there, although I hope that <a href="http://hossgifford.com/">Hoss</a> shows some different stuff to <a href="http://www.flashonthebeach.com/">Flash on the beach</a> should still be good.</p>

	<p>So if you are heading to <a href="http://www.fitc.ca">FITC</a> please come and say hi and grab one of my fabulous <a href="http://www.moo.com">Moo.com</a> cards.</p>]]></description>
      <dc:subject>Conference, Travel</dc:subject>
      <dc:date>2008-02-13T11:33:00+00:00</dc:date>
    </item>

    <item>
      <title>How I built my lifestream</title>
      <link>http://www.jameswhittaker.com/blog/article/how-i-built-my-lifestream/</link>
      <guid>http://www.jameswhittaker.com/blog/article/how-i-built-my-lifestream/#When:19:34:00Z</guid>
      <description><![CDATA[<p>Yes, I&#8217;m a bit late to the party with the whole let&#8217;s aggregate some data together thing. However new site so I thought wouldn&#8217;t it be great to build my own <a href="http://jameswhittaker.com/lifestream">lifestream</a>, a chronological listing of all my online activities. Well, web 2.0 is all about freedom and interoperability of data so a <a href="http://jameswhittaker.com/lifestream">lifestream</a> it is.</p>

	<p><a href="http://www.jameswhittaker.com/lifestream"><img src="http://www.jameswhittaker.com/uploads/blogimages/lifestream-2.png" title="My lifestream screenshot" alt="My lifestream screenshot" width="442" height="264" /></a></p>

	<h3>Step 1 &#8211; Identify your feeds</h3>

	<p>What do you use online frequently? Photos to <a href="http://www.flickr.com">Flickr?</a>, bookmarks to <a href="http://del.icio.us">Delicious</a> or <a href="http://ma.gnolia.com/">Magnolia</a>? And I bet your a massive <a href="http://twitter.com">Twitter</a> fan too right? Yes see you have a list already.  Basically any web based service that you currently use could be used as an input to your lifestream. Most sites provide public <a href="http://en.wikipedia.org/wiki/RSS_file_format">RSS</a> or <a href="http://www.json.org/">JSON</a> feeds for you to use those mentioned above do.</p>

	<p>So go and list the URL&#8217;s for all of your feeds.</p>

	<h3>Step 2 &#8211; Mashing it up</h3>

	<p>Now there are so many ways in which you could combine your feeds together. You could do this server side using <span class="caps">PHP</span> like <a href="http://adactio.com/journal/1202/">Jeremy Keith</a>, or Django like <a href="http://www2.jeffcroft.com/stream/">Jeff Croft</a> anything you are comfortable with. I decided to try a different route. <a href="http://pipes.yahoo.com">Yahoo Pipes</a> has been around for a while now and the toolset is getting better. Yahoo pipes is built for mashing up information into new feeds using a great drag and drop graphical user interface.</p>

	<p><img src="http://www.jameswhittaker.com/uploads/blogimages/lifestream-1.png" title="Yahoo Pipes lifestream screenshot" alt="Yahoo Pipes lifestream screenshot" width="554" height="264" /></p>

	<p>What I wanted to achieve with Yahoo! Pipes is to combine my <span class="caps">RSS</span> feeds together. Then tweak a few things like:</p>

	<ul>
		<li>Add a feed name to each item</li>
		<li>Add a foreword to each title element</li>
		<li>Sort all feeds by date</li>
	</ul>

	<p>Better that explaining in detail what I have done in Pipes it&#8217;s better if you head on over and have a look for yourself.<br />

You can view my lifestream pipe <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=50b829b26c0a049d6b9c7c771059a987">here</a>.</p>

	<p>Also be aware that Yahoo! Pipes caches it&#8217;s feed output for obvious performance reasons. I&#8217;m not sure what the actual time for the cache is.</p>

	<h3>Step 3 &#8211; Consuming your new mashed up feed</h3>

	<p>There are a number of different output formats that Pipes supports. Of most interest for us is going to be either <span class="caps">RSS</span> or <span class="caps">JSON</span>. The choice depending on how you are going to be consuming your data. If you plan on using  Flash or Flex then it&#8217;s better to opt for an <span class="caps">XML</span> based feed like <span class="caps">RSS</span>. This time I decided that I was going to use client side JavaScript to inject my feed items into the <a href="http://en.wikipedia.org/wiki/Document_Object_Model">DOM</a> of my page, going to use JavaScript then it&#8217;s easier to use the native <span class="caps">JSON</span> format. It is worth pointing out that Pipes supports different formats from the same pipe so you don&#8217;t have to create new pipes for each format you wish to use, it&#8217;s just a parameter in the <span class="caps">URL</span> query string.</p>

	<p>Using <span class="caps">JSON</span> can be pose a security risk especially if you don&#8217;t know or trust the source, this is because you need to <a href="http://www.json.org/js.html">eval</a> the response on the client to turn it into JavaScript objects. Yahoo makes using <span class="caps">JSON</span> easier and safer (well they did come up with the idea) by passing a callback function name along in the query string. This eliminates the need to use Ajax for fetching the data then having to eval the response. The process is as follows:</p>

	<ul>
		<li>Dynamically add a new script tag into the page <span class="caps">DOM</span> setting the source as the <span class="caps">URL</span> of your pipe plus you callback function name</li>
		<li>Page loads this script as if it were native JavaScript in your page &#8211; the response back from Pipes is of type application/json</li>
		<li>Your callback function is called passing in the <span class="caps">JSON</span> object</li>
		<li>Your function then manipulates the data</li>
	</ul>

	<p>Read more about Yahoo! and <span class="caps">JSON</span> within their web services <a href="http://developer.yahoo.com/common/json.html">here</a>. It&#8217;s a good article that will really help you understand <span class="caps">JSON</span> better.</p>

	<h3>Step 4 &#8211; Injecting the results into the <span class="caps">DOM</span></h3>

	<p>You now have a JavaScript object full of data from your feed, time to add it to your <span class="caps">XHTML</span> by injecting new elements into the <span class="caps">DOM</span>. Sounds scary well not really. This can be achieved using plain JavaScript but I felt the need to play with the <a href="http://www.mootools.net">MooTools JavaScript library</a>, having previously used and loved the now very overweight <a href="http://www.prototypejs.com">PrototypeJS</a> library. The great thing with <a href="http://www.mootools.net">MooTools</a> is that you can pick the elements of the suite that you need reducing the file size dramatically if you don&#8217;t require all of the extras.</p>

	<p>Firstly inject the new script tag containing your Pipes <span class="caps">URL</span> into the head of your page. </p>

<pre>
	<code>
		var headId = document.getElementsByTagName(&#38;#34;head&#38;#34;)[0];
		var newScript = document.createElement(&#38;#39;script&#38;#39;);
		newScript.type = &#38;#39;text/javascript&#38;#39;;
		newScript.src = your pipes URL goes here as a string;
		headId.appendChild(newScript);
	</code>
</pre>

	<p>Using <a href="http://www.mootools.com">MooTools</a> I have taken a class based approach to the JavaScript, doesn&#8217;t really make a difference here but I think it looks neater and prepares you for any bigger stuff.</p>

	<p><a href="http://www.mootools.net"><img src="http://www.jameswhittaker.com/uploads/blogimages/mootools.png" title="Mootools logo and link to site" alt="Mootools logo and link to site" width="212" height="78" /></a></p>

	<p>To get the code to run when your page loads <a href="http://www.mootools.net">MooTools</a> has a new event that you can attach to the window which detects when the <span class="caps">DOM</span> is ready. This is better in many sense because the <span class="caps">DOM</span> can be ready before your page is fully visually rendered by the browser:</p>

<pre>
	<code>
		window.addEvent(&#38;#39;domready&#38;#39;, function(){init()});
	</code>
</pre>

	<p>Now create a function to handle the response callback from your Pipe. This must be the same as what you passed in on the query string <span class="caps">URL</span> earlier to Yahoo!. My callback is called ProcessJSON(obj). Inside this function you will need to loop over each item in the <span class="caps">JSON</span> object:</p>

<pre>
<code>
	function ProcessJSON(obj)
	{
		var items = obj.value.items;
		
		//Go through all of the items
		for(var i = 0; i &#38;#60;  items.length; i++)
		{
			//build new DOM elements for each item here
		}
	}	
</code>
</pre>

	<p>To build a new <span class="caps">DOM</span> element using <a href="http://www.mootools.net">MooTools</a> is really easy, see the example below for creating a new definition description <span class="caps">DOM</span> element then adding some text to that element:</p>

<pre>
<code>
	// create element
	var myDD = new Element(&#38;#39;dd&#38;#39;, { id:&#38;#39;feedItem&#38;#39;, &#38;#39;class&#38;#39;:&#38;#39;vevent&#38;#39;});
	
	// add text node to above element
	myDD.appendText(&#38;#34;hello i&#38;#39;m a text node&#38;#34;);
	
	// add an element inside of the dd - example 
	var myAbbr = new Element(&#38;#39;abbr&#38;#39;, {&#38;#39;class&#38;#39;:&#38;#39;dstart published dtend&#38;#39;, title:currentItem.pubDate}).injectInside(myDD);
	myAbbr.appendText(postedTime);
	
	// now add inside the dd created above
	myHref.injectInside(myDD);
	
	// once you have all of your elements add them into the DOM
	$(&#38;#39;lifeStream&#38;#39;).appendChild(myDD);
</code>
</pre>

	<p>For my lifestream I used a <a href="http://xhtml.com/en/xhtml/reference/dl/" title="dl">definition list</a> to hold all of my items. I think this is a really semantic way of marking up this type of data. For the <a href="http://xhtml.com/en/xhtml/reference/dt/" title="dt">titles</a> I have the date of the posts then underneath I then have a series of <a href="http://xhtml.com/en/xhtml/reference/dd/" title="dd">definition descriptions</a> that describe the item for that date. My Javascript contains a little more date sorting to get the nice headings out of the numeric dates sent from Pipes, view the javascript and take a look. It&#8217;s all fairly harmless, I promise.</p>

	<h3>Step 5 &#8211; Feed icons</h3>

	<p>To get the icons I made my own and placed them into an images directory, naming them the same as the feedname that I added during my Pipe creation. That way in my code when I&#8217;m building the elements I can just place the feedname for the image file name:</p>

<pre>
<code>
	var myImgIcon = new Element(&#38;#39;img&#38;#39;, {&#38;#39;class&#38;#39;:&#38;#39;postType&#38;#39;, src:&#38;#39;images/&#38;#39; + currentItem.feedName + &#38;#39;.gif&#38;#39;, width:&#38;#39;32&#38;#39;, height:&#38;#39;32&#38;#39;, alt:currentItem.feedName});
	myImgIcon.injectInside(myHref);
</code>
</pre>

	<h3>Step 6 &#8211; Showing your flickr thumbnails (if you have flickr images)</h3>

	<p>I wanted to show a thumbnail image of the photo that I uploaded to my flickr account. </p>

	<p><img src="http://www.jameswhittaker.com/uploads/blogimages/lifestream-3.png" title="My lifestream flickr image screenshot" alt="My lifestream flickr image screenshot" width="149" height="118" /></p>

	<p>This is really easy as the feed from flickr has the url for the thumbnail already set in the response. You will have to be a little careful as it is namespaced to &#8216;media&#8217;. So just add a new image <span class="caps">DOM</span> element setting the source to be the url from your flickr feed and the size is 75px square. Don&#8217;t forget your alt tags I use the image title again as that makes semantic sense.</p>

<pre>
<code>
	//if flickr
	if(currentItem.feedName == &#38;#34;flickr&#38;#34;)
	{
		var myImgFlickr = new Element(&#38;#39;img&#38;#39;, {&#38;#39;class&#38;#39;:&#38;#39;flickrImg&#38;#39;, src:currentItem[&#38;#34;media:thumbnail&#38;#34;].url, width:&#38;#39;75&#38;#39;, height:&#38;#39;75&#38;#39;, alt:currentItem[&#38;#34;media.title&#38;#34;]});
		myImgFlickr.injectInside(myHref);
	}
</code>
</pre>

	<h3>Step 7 &#8211; Styling</h3>

	<p>Well I shall leave that up to you!</p>

	<h3>Finish &#8211; grab a nice cool beer!</h3>

	<p>I hope that has given you a few pointers and ideas that will help you build a <a href="http://jameswhittaker.com/lifestream">lifestream</a> for your site. All the techniques used here can be done with any JavaScript library or none at all. You could go crazy with effects etc if you like, I have just opted for a nice fade in when all of the elements are built.</p>

	<p>The good thing is that you now have a feed that you could re-use in Flash or Flex and display your <a href="http://jameswhittaker.com/lifestream">lifestream</a> in new and fantastic ways. Go crazy!</p>

]]></description>
      <dc:subject>Blogging, CSS, Javascript, UI</dc:subject>
      <dc:date>2008-02-02T19:34:00+00:00</dc:date>
    </item>

    <item>
      <title>Em based layouts &#45; Vertical rhythm calculator</title>
      <link>http://www.jameswhittaker.com/blog/article/em-based-layouts-vertical-rhythm-calculator/</link>
      <guid>http://www.jameswhittaker.com/blog/article/em-based-layouts-vertical-rhythm-calculator/#When:11:53:00Z</guid>
      <description><![CDATA[<p>Typography on the web has become a point of focus for standards based developers recently. The pioneering work by <a href="http://www.markboulton.co.uk/">Mark Boulton</a> and <a href="http://clagnut.com/">Richard Rutter</a> has highlighted the importance of good web typography. With the advent of more standards compliant browsers and a better understanding of the capabilities of <span class="caps">CSS</span>, more developers are spending the extra time and effort in pursuit of typography excellence within their designs.</p>

	<p>For years we have touted the phrase &#8216;the web is not print&#8217; and consequently have forgotten about the basics of designing for type, like working to a baseline rhythm. I have come across many a design where the developer has not thought about typography before diving straight into the code. The result is a mess of random amounts of padding and margin married with unnecessary style rules, this in turn leads to <span class="caps">CSS</span> code that is harder to understand and maintain.</p>

	<p>One of the key concepts that we can use within our sites is consistent line-height in <span class="caps">CSS</span> terms. If you think of a ruled notebook, the lines are all equal heights.</p>

	<p>The concept is fairly straight forward but in practice can be confusing especially for a <span class="caps">CSS</span> newcomer. All sizing needs to be relative to the base size. This allows for easy scaling up or down while keeping the required spacing and layout consistent, this can be refereed to as an elastic layout. To allow this we need to specify measurements in percent or em. </p>

	<h3>What is an <strong>em</strong> measurement?</h3>

	<p>A <strong>pixel</strong> is the &#8216;dot&#8217; on your computer screen. Displays are measured in pixels across and down like 1024 &#215; 768. These dots are unscalable and fixed in size. In some situations this is desirable and it would be better to set your measurements as pixels.</p>

	<p>An <strong>em</strong> is a relative measurement based on the square of the font size at that particular point. As font sizes can vary across differing systems and displays, the result is that the <strong>em</strong> measurement will always be relatively sized and scalable.</p>

	<p>As we are now developing for a wider range of devices and screen sizes we should look to adopt em instead of pixels in all of our designs. Let&#8217;s take a look at how.</p>

	<h3>The browser default size</h3>

	<p>Modern browsers ( IE7, Opera, Safari and Mozilla ) have a built in default font size of 16px so we can use that as the cornerstone for all of our sizing calculations from now on. At this point we need to make a choice as to the base font-size we are going to work with, nominally this will be 12px or 14px which we can set as a percentage of the 16px browser default. An example for 12px required size would be:</p>

<pre><code>*/ 12 / 16 * 100 = 75% /*</code></pre>

	<p>As usual it&#8217;s not always that simple and Safari 2 does apply a 13px base size to fixed width fonts. To overcome this situation you will need to tell Safari to use a base size as a set pixel value, like 16px or 12px. Beware though that you must use conditional comments to block that statement from IE. For IE&#8217;s font scaling to work correctly it needs to be given a relative base size set in percent or em. For more guidance I refer you to Richard&#8217;s article on <a href="http://www.alistapart.com">A List Apart</a> titled &#8211; <a href="http://www.alistapart.com/articles/howtosizetextincss">how to size text in CSS</a>.</p>

	<h3>Working out a required font-size</h3>

	<p>Well that&#8217;s why I built the calculator! to save you the hassle of all of those calculations. I&#8217;m going to cheat here and direct you to a great article on <a href="http://24ways.org">24ways</a> titled &#8211; <a href="http://24ways.org/2006/compose-to-a-vertical-rhythm">composing to a vertical rhythm</a>. This is the background to the calculations behind my calculator.</p>

	<h3>Using the calculator</h3>

	<p>The calculator defaults to a required base font-size of 12px and a 21px line-height. If you have set yours to be any different then please change this now. Some people prefer a line-height to be 1.5 x the base font-size, I personally prefer a larger 1.75 x the font size. It give more breathing space I feel.</p>

	<p>Now you have set the base sizes you need to start adding some style rules, so click the button and the interface will expand down. Now give the style a name, this could be <strong>p</strong> or <strong>h1</strong> or any standard rule or your own based on your markup. This name will be in the <span class="caps">CSS</span> and can be altered later.</p>

	<p>The parent rule is there for creating cascading calculations. Font-sizes in em&#8217;s are always based of the parent font-size. So if you need it it&#8217;s there if not then leave it set to document base.</p>

	<p>Next type your required font-size in pixels and push the calculate button. Your <span class="caps">CSS</span> will be there ready to copy to the clipboard and the options to add padding or margins that will live update in the <span class="caps">CSS</span> code. <span class="caps">BEWARE</span> that if you change your font-size you will need to click the recalculate button as all the other measurements are based off the font-size.</p>

	<p>The margins and padding are in line height units, refer to the <a href="http://24ways.org/2006/compose-to-a-vertical-rhythm">24ways article</a> for more understanding or send me an email if your stuck.</p>

	<p>The final thing is that you have a simple em calculator for working out pixel to em values based upon the current set font-size. You could use this for working out the width of an element in em&#8217;s. Where your design is say 120px you could get that value in em&#8217;s. Just enter the pixel value in the box and it will auto calculate.</p>

	<h3>The calculator</h3>

 <script type="text/javascript">
			var flashvars = {};
			var params = {};
params.wmode = &#8220;transparent&#8221;;
			var attributes = {};
			swfobject.embedSWF(&#8220;http://www.jameswhittaker.com/uploads/tools/em_calculator.swf&#8221;, &#8220;flashAlternative&#8221;, &#8220;500&#8221;, &#8220;770&#8221;, &#8220;9.0.0&#8221;, false, flashvars, params, attributes);
</script>
	
<div id="flashAlternative">
<p><strong>Sorry, you don&#8217;t appear to have the required Flash Player plugin to view this content.</strong><br />
This might be because you are viewing this site on a mobile device that does not support Flash or that your installed player might be out of date. If you would like to get the latest Flash Player for your system then <a href="http://www.adobe.com/go/getflashplayer"> please click here</a>.</p><br />
<p>If you are still having problems then check that you have JavaScript enabled on your browser.</p></div>

	<h3>Em Calculator &#8211; now for your desktop!</h3>

	<p>I have now produced the calculator as an Adobe <span class="caps">AIR</span> application so that you can run it on your desktop. To run the application you will need the latest Adobe <span class="caps">AIR</span> runtime (version 1.0). It will then install and off you go. This version is just the same as the online version shown above. I&#8217;m still working on an <span class="caps">AIR</span> app with the integrated browser.</p>

 <script type="text/javascript">
	var flashvars = {
		appname:&#8216;Em Calculator&#8217;,
		appurl:&#8216;http://www.jameswhittaker.com/uploads/tools/emcalculator/emcalculator.air&#8217;,
		imageurl:&#8216;http://www.jameswhittaker.com/uploads/tools/emcalculator/emcalcbadge.png&#8217;,
		airversion:&#8216;1.0&#8217;,
		messagecolor:&#8216;FFFFFF&#8217;
	};
	var params = {};
	params.wmode = &#8220;transparent&#8221;;
	var attributes = {};
	swfobject.embedSWF(&#8220;http://www.jameswhittaker.com/uploads/tools/badge.swf&#8221;, &#8220;flashAlternativeBadge&#8221;, &#8220;217&#8221;, &#8220;180&#8221;, &#8220;9.0.0&#8221;,false, flashvars, params, attributes);
</script>
	
<div id="flashAlternativeBadge">
<p><strong>Sorry, you don&#8217;t appear to have the required Flash Player plugin to view this content.</strong><br />
This might be because you are viewing this site on a mobile device that does not support Flash or that your installed player might be out of date. If you would like to get the latest Flash Player for your system then <a href="http://www.adobe.com/go/getflashplayer"> please click here</a>.</p><br />
<p>If you are still having problems then check that you have JavaScript enabled on your browser.</p></div>

	<h3>Contributions</h3>

	<p>If you like the EM Calculator and would like to make a contribution to it&#8217;s development please use the button below thanks.</p>

	<p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post"><br />
<input type="hidden" name="cmd" value="_s-xclick"><br />
<input type="image" src="https://www.paypal.com/en_GB/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"><br />
<img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1"><br />
<input type=&#8220;hidden&#8221; name=&#8220;encrypted&#8221; value=&#8221;&#8212;&#8212;-<span class="caps">BEGIN</span> PKCS7&#8212;&#8212;-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&#8212;&#8212;-<span class="caps">END</span> PKCS7&#8212;&#8212;-<br />
&#8220;><br />
</form><br />
</p>

	<h3>Feedback and questions</h3>

	<p>This site has been built using an elastic layout and <strong>em</strong> sizing so feel free to have a look at the <span class="caps">CSS</span>, usual thing don&#8217;t steal it all but look, learn or challenge it.</p>

	<p>If you find this useful or have any feedback please let me know. It is a beta version there could be a few little gremlins hanging around which I will address in future versions.</p>

	<p>I am working on an Adobe <span class="caps">AIR</span> version that has an integrated browser for instant visual feedback so check back for that soon.</p>

]]></description>
      <dc:subject>CSS, Flex, Tools</dc:subject>
      <dc:date>2008-01-18T11:53:00+00:00</dc:date>
    </item>

    <item>
      <title>Custom iPhone web clip icon &#45; how to</title>
      <link>http://www.jameswhittaker.com/blog/article/custom-iphone-web-clip-icon-how-to/</link>
      <guid>http://www.jameswhittaker.com/blog/article/custom-iphone-web-clip-icon-how-to/#When:22:46:00Z</guid>
      <description><![CDATA[<p>Yesterday&#8217;s MacWorld contained a few little gems of information in addition to the fabulous <a href="http://www.apple.com/uk/macbookair/">MacBook AIR</a> announcement. What a great name, I bet <a href="http://www.adobe.com">Adobe</a> were kissing Apple for bringing even more attention to the word <a href="http://www.adobe.com/air/">AIR</a>. Personally I&#8217;m not going to be queuing up for the MacBook <span class="caps">AIR</span> as I only run one machine, my <a href="http://www.apple.com/uk/macbookpro/">MacBook Pro</a>. Its getting on a bit now and is due for an update however I think I will wait for the 45nm chipsets and the integration of the new multi-touch trackpad before I invest in another Apple notebook, it needs to be a bit more of a work horse.</p>

	<p>Apart from our friends at <a href="http://www.apple.com">Apple</a> wanting to charge a staggering £12.99 for a firmware update for my <a href="http://www.apple.com/ipodtouch/">iPod Touch</a> ( daylight robbery if you ask me ! ), I am really impressed by the introduction of webclips for the <a href="http://www.apple.com/ipodtouch/">iTouch</a> and <a href="http://www.apple.com/iphone/">iPhone</a>. Basically you can zoom into a webpage using mobile Safari and then save it as a web clip, an icon appears on your home screen for easy retrieval of your clip. According to <a href="http://www.apple.com/iphone/webapps/">Apple&#8217;s iPhone webapps page</a> the homescreen can contain up to nine different web clips.  This is a great bridge between the web and the convenience of a desktop shortcut, I see it as a small step towards something like Adobe <span class="caps">AIR</span> on a mobile device.</p>

	<p>So this site now has an icon that the iPhone will use if anyone makes a web clip out of <a href="http://www.jameswhittaker.com/">my site</a>.</p>

	<p>My icons is shown below:</p>

	<p><img src="http://www.jameswhittaker.com/apple-touch-icon.png" title="My Apple touch icon for web clip on iPhone" alt="My Apple touch icon for web clip on iPhone" width="158" height="158" /></p>

	<h3>How to create a custom iPhone web clip icon</h3>

	<p>Working just like the favicon.ico file simply place a 57px x 57px ( <a href="http://playgroundblues.com/posts/2008/jan/15/iphone-bookmark-iconage/">or a now confirmed 158px x 158px</a> ) <span class="caps">PNG</span> file called <a href="http://www.jameswhittaker.com/apple-touch-icon.png">apple-touch-icon.png</a> into the root of your web server.</p>

	<p>If you need to override the bookmark on a specific page it&#8217;s possible by placing a rel link in the head of that page like this:</p>

<pre>
<code>
&#38;#60;link rel=&#38;#34;apple-touch-icon&#38;#34; href=&#38;#34;/customIcon.png&#38;#34;/&#38;#62;
</code>
</pre>

	<p>The original article on the Apple Developer site is <a href="http://developer.apple.com/iphone/devcenter/designingcontent.html">here</a>.</p>

	<p>You don&#8217;t need to concern yourself with rounded corners or flashy highlights as the iPhone will add these ontop of your icon. Until I can bring myself to say goodbye to my jailbroken iTouch and pay Steve £12.99 for the official firmware I don&#8217;t have a picture of my icon as a webclip on an iPhone. If you do have an image then please <a href="http://www.jameswhittaker.com/contact">send it into me</a> and I will place it here.</p>

	<p><strong>Update:</strong> <a href="http://allinthehead.com">Drew McLellan</a> has produced a <a href="http://allinthehead.com/retro/319/how-to-set-an-apple-touch-icon-for-any-site">bookmarklet</a> that allows you to set the icon for any site. It works using script to place the link rel markup into the head of the document. Theoretically this will work although you might need to place it above any other previously defined custom icon rel link.</p>

]]></description>
      <dc:subject>Apple, iPhone, UI</dc:subject>
      <dc:date>2008-01-16T22:46:00+00:00</dc:date>
    </item>

    <item>
      <title>Flex user group presentation &#45; Skinning Flex 2</title>
      <link>http://www.jameswhittaker.com/blog/article/flex-user-group-presentation-skinning-flex-2/</link>
      <guid>http://www.jameswhittaker.com/blog/article/flex-user-group-presentation-skinning-flex-2/#When:20:44:00Z</guid>
      <description><![CDATA[<p>Back in October last year I presented at the <a href="http://www.flexdeveloper.eu/fuguk">Midlands Flex user group</a>. While working on a financial planning Flex 2 application I learned heaps about creating a fully customized UI using the CS3 suite and Flex.</p>

	<p>The presentation is not to technical in its delivery. The audience we have at the user group can cover designer, manager developer and complete newbie so the presentation had to reflect this. The main aim was to show that Flex did not have to look like Flex. You can achieve very interesting results by investing some time in planning, designing and developing the user experience of your application.</p>

	<p>Many Flex applications forget to restyle the pre-loader. While not being the easiest component to style or add extra behavior to it sure can give your application that polished look. There are a number of ways in which you can prepare your assets for use within a Flex application. <span class="caps">PNG</span> from Fireworks or Photoshop to <span class="caps">SWF</span> from Flash or Illustrator. </p>

	<p>This presentation was targeted around Flex 2. Flex 3 has dramatically changed the way you work with skinning assets from programs like Adobe Illustrator or Flash, and I will cover this in future posts. </p>

 
<script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.allowfullscreen = &#8220;true&#8221;;
			params.allowscriptaccess = &#8220;always&#8221;;
			params.wmode = &#8220;transparent&#8221;;
			var attributes = {};
			attributes.id = &#8220;__ss_227377&#8221;;
			swfobject.embedSWF(&#8220;http://static.slideshare.net/swf/ssplayer2.swf?doc=flex-user-group-skinning-presentation-1200307522959262-3&#8221;, &#8220;flashContent&#8221;, &#8220;425&#8221;, &#8220;335&#8221;, &#8220;9.0.0&#8221;, false, flashvars, params, attributes);
		</script>
		
<div id="flashContent">
<p><strong>Sorry, you don&#8217;t appear to have the required Flash Player plugin to view this content.</strong><br />
This might be because you are viewing this site on a mobile device that does not support Flash or that your installed player might be out of date. If you would like to get the latest Flash Player for your system then <a href="http://www.adobe.com/go/getflashplayer"> please click here</a>.</p><br />
<p>If you are still having problems then check that you have JavaScript enabled on your browser.</p></div>

<div>
	<p><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/> | <a href="http://www.slideshare.net/jmwhittaker/flex-user-group-skinning-presentation" title="View 'Flex User Group - Skinning Presentation' on SlideShare">View</a> | <a href="http://www.slideshare.net/upload">Upload your own</a></p></div>

	<p>If you have any questions regarding this presentation please <a href="http://www.jameswhittaker.com/contact">contact me</a> and I will be happy to help. It is released under Creative Commons share alike 3.0 so please distribute it around.</p>

	<p>On another note I have only just discovered <a href="http://www.slideshare.net">SlideShare</a> and so far have found lots of useful presentations from conferences like <a href="http://www.slideshare.net/search/slideshow?q=fowa&#38;submit=post&#38;commit=Search">Future of Web Apps</a>, <a href="http://www.slideshare.net/search/slideshow?lang=en&#38;submit=post&#38;q=fowd&#38;commit=search">Future of Web Design</a> and <a href="http://www.slideshare.net/search/slideshow?lang=en&#38;submit=post&#38;q=fitc&#38;commit=search">Flash in The Can</a> that I have been unable to attend.</p>

]]></description>
      <dc:subject>Flex, skinning, UI</dc:subject>
      <dc:date>2008-01-14T20:44:00+00:00</dc:date>
    </item>

    <item>
      <title>Review of 2007</title>
      <link>http://www.jameswhittaker.com/blog/article/review-of-2007/</link>
      <guid>http://www.jameswhittaker.com/blog/article/review-of-2007/#When:17:32:00Z</guid>
      <description><![CDATA[<p>Well 2007 has been an interesting year both professionally and personally so without further distraction here are my highlights of 2007 in no particular order: </p>

	<h3>Adobe Max Europe</h3>

	<p>Having never attended a proper web development conference before things changed during 2007. Thanks to <a href="http://www.adobe.com/uk/">Adobe</a> and <a href="http://www.ashorten.com/">Andrew Shorten</a> I won a ticket to Barcelona and the first <a href="http://adobemax2007.com/europe/">Adobe Max Europe</a> event. I must say that I had the best time, learnt lots of good valuable information and met some really cool people. It was well organised with three very full days of presentations and after-event meet ups. The only thing that let it down was the catering, quite poor and for someone who does not eat fish I was somewhat forced to seek alternative cuisine elsewhere.</p>

	<p>The keynote theatre was a huge impressive widescreen affair with great audio and presentations to match. <a href="http://www.peterelst.com/blog/">Peter Elst</a> and <a href="http://gskinner.com/blog/">Grant Skinner&#8217;s</a> ActionScript 3 presentations stood out as well as some of the sneak peaks sessions from the likes of <a href="http://www.effectiveui.com/index.html">Effective UI</a> and <a href="http://weblogs.macromedia.com/mc/">Adobe Consulting</a>. Due to the great british postal strike, I never received my <a href="http://www.moo.com">Moo cards</a> before Max which as not the best for networking without any cards to give out.</p>

 
<script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.wmode = &#8220;transparent&#8221;;
			params.flashvars = &#8220;setId=72157602846903548&size=_m&max=35&userid=73084467@N00&setname=Adobe%20Max%20Europe%2007&randomize=1&#8221;;
			var attributes = {};
			attributes.id = &#8220;flashContent&#8221;;
			swfobject.embedSWF(&#8220;http://www.slideoo.com/slider.swf&#8221;, &#8220;flashContent&#8221;, &#8220;100%&#8221;, &#8220;170&#8221;, &#8220;9.0.0&#8221;, false, flashvars, params, attributes);
		</script>
		<div id="flashContent">
		<p><strong>Sorry, you don&#8217;t appear to have the required Flash Player plugin to view this content.</strong>
		This might be because you are viewing this site on a mobile device that does not support Flash or that your installed player might be out of date. If you would like to get the latest Flash Player for your system then <a href="http://www.adobe.com/go/getflashplayer"> please click here</a>.</p>
		<p>If you are still having problems then check that you have JavaScript enabled on your browser.</p></div>		
		<img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/Jmx*PTExOTkyMTEzMDIwNjkmcHQ9MTE5OTIxMTMxNjI1NCZwPTU*NDMxJmQ9Jm49.jpg" />

	<h3>Flash on the beach</h3>

	<p><img src="http://www.jameswhittaker.com/uploads/blogimages/flashonthebeach.jpg" class="imgRight" alt="" width="241" height="68" /><br />

So off to the second conference of the year down in sunny <a href="http://www.brighton.co.uk/">Brighton</a>, UK. I love visiting Brighton and combined with some cool Flash presentations what could be better? This time it was a work paid for conference so there were a few of us that headed down including <a href="http://www.withoutmayo.co.uk/">Mark</a>, <a href="http://www.wayouteast.co.uk/">Jon</a> and <a href="http://www.jodieorourke.com/">Jodie</a>.</p>

	<p>While not as polished as Max and the focus seemed to be more on the creating patterns and playing with Flash rather than any RIAs it was still interesting. Ted Patrick&#8217;s presentation on Flex provided some useful tips while <a href="http://hossgifford.com/">Hos Gifford</a> (<a href="http://thirdeyedesign.co.uk/">ThirdEyeDesign</a>), <a href="http://www.complexification.net/">Jared Tarbell</a> and <a href="http://www.joshuadavis.com/">Joshua Davies</a> provided some inspirational relief.</p>

	<h3>Travel to Australia</h3>

	<p>2007 saw our second trip to Australia. We visited Fremantle near Perth then drove down through the wine regions of Margaret River sampling some of the local goodies on offer and seeing the most fantastic countryside there is to see. From there we flew to Melbourne which just blew me away, then we drove the Great Ocean Road past the twelve apostles. As we were in winter the roads were empty but the weather rather inclement, having covered rain, hail, sunshine, galeforce winds in just a few days it was an experience! </p>

	<p>From Melbourne we flew across to Sydney and spent some quality time learning to surf at Manley beach. Surfing has to be one of the best thing you can do in the sea, Rachel loved it despite being hit in the mouth with a surf board. Finally spending a few days in the city of Sydney and climbing the harbor bridge at night. As a second visit to Sydney we were less impressed this time around and if I were to move here it would definitely be to Melbourne. Melbourne seems more relaxed and friendly, but to be honest I would not say no to moving to either, anyone got any jobs over there?</p>

	<p>I have over 1000 pictures in <span class="caps">RAW</span> format that i&#8217;m ashamed to say I&#8217;m still processing, so soon there will be some photos on my <a href="http://www.flickr.com/photos/jmwhittaker">Flickr stream</a>.</p>

	<h3>iPod Touch</h3>

	<p>The iPhone seems nice but without 3G and <span class="caps">GPS</span> it seems very expensive compared to my current phone on the Three network. That said I&#8217;m like a magpie when it comes to nice shiny things from Apple and my 6 month old 80gb iPod was soon placed on ebay to be replaced with a lovely 16gb iTouch.</p>

	<p>I can truly say that this device is fantastic, so much more that just an MP3 or <span class="caps">MPEG</span> 4 player. After jailbreaking it I now have my email, weather and complete (yes minus the Flash player) web browser in my pocket. No need to open the laptop to quickly check your mail or find a route on Google maps, a quick tap on the iTouch is all that is needed. Yes it has some short comings but when compared to everything else this is a joy to use and look at.</p>

	<p>So until the iPhone gets <span class="caps">GPS</span> and 3G my iPod touch is my tool of choice, Steve just one request, can we have bluetooth on the iPod please?</p>

	<h2>Forward into 2008</h2>

	<p><strong>Gadgets</strong> &#8211;  Well we have the new Apple notebook and 3G iPhone to look forward to and I will be hopefully upgrading my Macbook Pro to the new 45nm Penryn powered Macbook pro when they get released in the first quarter of this year. Oh and a Playstation 3 might make an appearance by the time the words &#8216;Gran Turismo&#8217; and PS3 are muttered in teh same sentence.</p>

	<p><strong>Travel</strong> &#8211; Rachel and I have yet to decide what our travel plans will be this year, I would like to visit San Francisco and possibly Canada, we will have to spend some time investigating.</p>

	<p><strong>Career</strong> &#8211; well I&#8217;m always looking for that fantastic opportunity and hopefully 2008 will be the year. </p>

	<p>Happy New Year all !</p>

]]></description>
      <dc:subject>Apple, Gadgets, Personal, Travel</dc:subject>
      <dc:date>2008-01-01T17:32:00+00:00</dc:date>
    </item>

    <item>
      <title>Well here we go with an all new website!</title>
      <link>http://www.jameswhittaker.com/blog/article/well-here-we-go-with-an-all-new-website/</link>
      <guid>http://www.jameswhittaker.com/blog/article/well-here-we-go-with-an-all-new-website/#When:22:44:00Z</guid>
      <description><![CDATA[<p>Same old story just like the <a href="http://www.officepolitics.co.uk/cobblers_children.html">cobblers kids</a> , I have always been floundering around without a proper site located at my domain that I have owned for years. So here we go again, this time I have more focus on what the site should achieve and what content will be posted here.</p>

	<p>It&#8217;s early days and I&#8217;ve got a long road ahead to achieve a good following but hopefully there are a few people out there that are interested! I&#8217;m currently developing some little sidebar widgets starting with my Twitter feed so keep you eyes peeled.  </p>

]]></description>
      <dc:subject></dc:subject>
      <dc:date>2007-12-23T22:44:00+00:00</dc:date>
    </item>

    
    </channel>
</rss>