<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>isambard</title>
	<atom:link href="http://isambard.com.au/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://isambard.com.au/blog</link>
	<description>musings on information design and architecture</description>
	<lastBuildDate>Sun, 13 May 2012 23:38:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Quote of the week (14 May)</title>
		<link>http://isambard.com.au/blog/2012/05/14/quote-of-the-week-14-may/</link>
		<comments>http://isambard.com.au/blog/2012/05/14/quote-of-the-week-14-may/#comments</comments>
		<pubDate>Sun, 13 May 2012 23:38:13 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=936</guid>
		<description><![CDATA[From Richard Feynman, quoted in brain pickings: If it disagrees with experiment, it is wrong. The article is worth a visit as it includes some great excerpts from one awesome career.]]></description>
			<content:encoded><![CDATA[<p>From Richard Feynman, quoted in <a href="http://www.brainpickings.org/index.php/2012/05/11/richard-feynman-key-to-science/">brain pickings</a>:</p>
<blockquote><p>If it disagrees with experiment, it is wrong.</p></blockquote>
<p>The article is worth a visit as it includes some great excerpts from one awesome career.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F05%2F14%2Fquote-of-the-week-14-may%2F&amp;title=Quote%20of%20the%20week%20%2814%20May%29" id="wpa2a_2"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/05/14/quote-of-the-week-14-may/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Javascript with Sharepoint 2007</title>
		<link>http://isambard.com.au/blog/2012/05/07/using-javascript-with-sharepoint-2007/</link>
		<comments>http://isambard.com.au/blog/2012/05/07/using-javascript-with-sharepoint-2007/#comments</comments>
		<pubDate>Mon, 07 May 2012 05:11:59 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=911</guid>
		<description><![CDATA[It&#8217;s relatively simple to include Javascript in your Sharepoint pages. With some judicious editing you can add your code inline or via separate code files. Embedding Javascript To include Javascript in your page: use a Content Editor Webpart (CEWP) edit via the Source Editor button (not Rich Text Editor), and add your code within standard [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s relatively simple to include Javascript in your Sharepoint pages.  With some judicious editing you can add your code inline or via separate code files.</p>
<h2>Embedding Javascript</h2>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/05/code2.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/05/code2-300x212.png" alt="" title="code" width="300" height="212" class="alignright size-medium wp-image-926" /></a>To include Javascript in your page:</p>
<ol>
<li>use a Content Editor Webpart (CEWP)</li>
<li>edit via the <strong>Source Editor</strong> button (not Rich Text Editor), and</li>
<li>add your code within standard <code>&lt;script>&lt;/script></code> tags</li>
</ol>
<p>Within the script block just add your normal code, comments, etc.  The only issue you&#8217;ll have is being able to indent the text and make it look pretty.  Tab doesn&#8217;t help; you&#8217;ll need to use spaces (the horror!).</p>
<blockquote><p>
<a href="http://isambard.com.au/blog/wp-content/uploads/2012/05/editSource.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/05/editSource-300x106.png" alt="" title="editSource" width="300" height="106" class="alignright size-medium wp-image-912" /></a><strong>Don&#8217;t use the Rich Text Editor</strong><br />
Important!  Always use the <strong>Source Editor</strong> function to manipulate your code, or any other content within the same CEWP.  If you use the <strong>Rich Text Editor</strong> at any point it will delete all your script.
</p></blockquote>
<h2>Linking to Javascript source files</h2>
<p>Sometimes your javascript code may be a little too long to embed.  Or, like me, you&#8217;ve been burnt once too often by clicking the Rich Text Editor button by mistake.    At such times you might prefer to link to separate javascript files rather than embedding all directly.</p>
<p>To link to a separate file:</p>
<ol>
<li>save the Javascript content as a separate .JS file and upload to somewhere on your site.  I tend use a /scripts subfolder within the default documents library.
<li>add/edit your CEWP to reference the script file:
</ol>
<pre>
&lt;script type="text/javascript" src="<b>full path to script file</b>">&lt;/script>
</pre>
<p>For example, here&#8217;s a CEWP that includes a separate Javascript file and then references a function (presumably) defined within it.</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/05/codeFile.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/05/codeFile-300x152.png" alt="" title="codeFile" width="300" height="152" class="alignnone size-medium wp-image-922" /></a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F05%2F07%2Fusing-javascript-with-sharepoint-2007%2F&amp;title=Using%20Javascript%20with%20Sharepoint%202007" id="wpa2a_4"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/05/07/using-javascript-with-sharepoint-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hacked</title>
		<link>http://isambard.com.au/blog/2012/04/12/hacked/</link>
		<comments>http://isambard.com.au/blog/2012/04/12/hacked/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 04:30:08 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=829</guid>
		<description><![CDATA[Just discovered this website had been hacked. First clue was when the site got banned by a corporate web filter as &#8220;adult material&#8221;. Unless someone had posted a particularly vitriolic comment that was unlikely. I won&#8217;t provide any more oxygen to the hackers over what exactly happened, but here&#8217;s the steps taken to get back [...]]]></description>
			<content:encoded><![CDATA[<p>Just discovered this website had been hacked.  First clue was when the site got banned by a corporate web filter as &#8220;adult material&#8221;.  Unless someone had posted a particularly vitriolic comment that was unlikely.</p>
<p>I won&#8217;t provide any more oxygen to the hackers over what exactly happened, but here&#8217;s the steps taken to get back online.  </p>
<h2>(1) Run to Google</h2>
<p>As always, find a friend who&#8217;s been through it before.  In particular these two pages proved useful.</p>
<ul>
<li><a href="http://codex.wordpress.org/FAQ_My_site_was_hacked" target="_blank">http://codex.wordpress.org/FAQ_My_site_was_hacked</a></li>
<li><a href="http://ocaoimh.ie/2008/06/08/did-your-wordpress-site-get-hacked/" target="_blank">http://ocaoimh.ie/2008/06/08/did-your-wordpress-site-get-hacked/</a></li>
</ul>
<p>First steps taken after reading them (and they explain more about each step):</p>
<ul>
<li>change passwords (for both wordpress and mySQL)</li>
<li>setup secret keys and salts</li>
<li>check .htaccess</li>
<li>delete all unused themes</li>
</ul>
<h2>(2) Install the exploit scanner</h2>
<p>There is a plugin available that can help check for suspicious code:</p>
<p><a href="http://ocaoimh.ie/exploit-scanner/" target="_blank">http://ocaoimh.ie/exploit-scanner/</a></p>
<p>Follow the provided instructions to install.  </p>
<p>When I ran the scanner it located dodgy code in a plethora of files.  Comparing those files to a (sadly) old backup I discovered they were not part of the original wordpress installation.  They also, suspiciously, all had an identical and recent install date/time.</p>
<p>Therefore next step was to delete them all.  And that did most of the work.  I got my site back.  Almost&#8230;.</p>
<h2>(3) Fix the theme</h2>
<p>After deleting all the extra files, the site was almost back.  It now did not show the &#8220;you&#8217;ve been hacked page&#8221;.  But instead it showed the contents of my theme&#8217;s CSS file.  Obviously some corruption in there somewhere.  </p>
<p>First step was to temporarily install a basic theme and switched to that.  All worked well and my site was back up and running.  Just ugly(er).  To improve I then deleted the corrupted theme and re-installed from a backup.  And everything was back to normal.</p>
<h2>Conclusion</h2>
<p>Thankfully my intrusion proved quite simple to remove. Whether I removed every element we&#8217;ll find out in the next days as we see how long the site stays up.  However lessons learnt are quite simple:</p>
<ol>
<li>get a recent/regular backup (of content and data).  Having another folder listing what files should be there proved invaluable in quickly deleting what was added.</li>
<li>keep up to date with releases.  </li>
<li>if you&#8217;re site suddenly gets blocked by a web filter, don&#8217;t blame a rude commenter!</li>
</ol>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F04%2F12%2Fhacked%2F&amp;title=Hacked" id="wpa2a_6"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/04/12/hacked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the week (9 April)</title>
		<link>http://isambard.com.au/blog/2012/04/09/quote-of-the-week-9-april/</link>
		<comments>http://isambard.com.au/blog/2012/04/09/quote-of-the-week-9-april/#comments</comments>
		<pubDate>Sun, 08 Apr 2012 23:27:01 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[ePub]]></category>
		<category><![CDATA[InDesign]]></category>
		<category><![CDATA[technical writing]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=825</guid>
		<description><![CDATA[From Clay Shirky, via gigaom: Publishing is no longer a job or an industry — it’s a button. A tad brutal, but interestingly accurate when I think about the work I&#8217;m now doing with InDesign, iBook Author, Calibre, etc. Although it does mean we&#8217;ll miss great characters such as this chap:]]></description>
			<content:encoded><![CDATA[<p>From Clay Shirky, via <a href="http://gigaom.com/2012/04/09/publishing-is-no-longer-a-job-or-an-industry-its-a-button/">gigaom</a>:</p>
<blockquote><p>
Publishing is no longer a job or an industry — it’s a button.
</p></blockquote>
<p>A tad brutal, but interestingly accurate when I think about the work I&#8217;m now doing with InDesign, iBook Author, Calibre, etc.</p>
<p>Although it does mean we&#8217;ll miss great characters such as this chap:</p>
<p><object width="526" height="374"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2012/Blank/ChipKidd_2012-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/ChipKidd_2012-embed.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1410&#038;lang=&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=chip_kidd_designing_books_is_no_laughing_matter_ok_it_i;year=2012;theme=master_storytellers;theme=art_unusual;theme=presentation_innovation;event=TED2012;tag=creativity;tag=design;tag=humor;tag=literature;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2012/Blank/ChipKidd_2012-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/ChipKidd_2012-embed.jpg&#038;vw=512&#038;vh=288&#038;ap=0&#038;ti=1410&#038;lang=&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=chip_kidd_designing_books_is_no_laughing_matter_ok_it_i;year=2012;theme=master_storytellers;theme=art_unusual;theme=presentation_innovation;event=TED2012;tag=creativity;tag=design;tag=humor;tag=literature;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></embed></object></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F04%2F09%2Fquote-of-the-week-9-april%2F&amp;title=Quote%20of%20the%20week%20%289%20April%29" id="wpa2a_8"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/04/09/quote-of-the-week-9-april/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the Week (20 Feb)</title>
		<link>http://isambard.com.au/blog/2012/02/20/quote-of-the-week-20-feb/</link>
		<comments>http://isambard.com.au/blog/2012/02/20/quote-of-the-week-20-feb/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 01:43:19 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=785</guid>
		<description><![CDATA[Haven&#8217;t found anything suitably inspiring for a while. But this one from Copyranter made me smile. Being an expert in social media is like being an expert at taking the bread out of the refridgerator.]]></description>
			<content:encoded><![CDATA[<p>Haven&#8217;t found anything suitably inspiring for a while.  But this one from <a href="http://copyranter.blogspot.com.au/2012/02/must-read-for-all-social-media-experts.html">Copyranter</a> made me smile.</p>
<blockquote><p>Being an expert in social media is like being an expert at taking the bread out of the refridgerator.</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F02%2F20%2Fquote-of-the-week-20-feb%2F&amp;title=Quote%20of%20the%20Week%20%2820%20Feb%29" id="wpa2a_10"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/02/20/quote-of-the-week-20-feb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing a rollout status map using Google Maps</title>
		<link>http://isambard.com.au/blog/2012/02/17/implementing-a-rollout-status-map-using-google-maps/</link>
		<comments>http://isambard.com.au/blog/2012/02/17/implementing-a-rollout-status-map-using-google-maps/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 01:20:07 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[map]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=783</guid>
		<description><![CDATA[If needing to present data that pertains to specific geographic locations, the logical approach is a map. Having just worked with Google Maps, and discovered how easy it is to implement, this article summarises all the key information needed to quickly make a map of your own. After the fun of working out how to [...]]]></description>
			<content:encoded><![CDATA[<p>If needing to present data that pertains to specific geographic locations, the logical approach is a map.  Having just worked with Google Maps, and discovered how easy it is to implement, this article summarises all the key information needed to quickly make a map of your own. </p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/02/end.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/02/end.png" alt="" title="end" width="452" height="383" class="alignnone size-full wp-image-817" /></a><br />
<span id="more-783"></span></p>
<blockquote><p>After the fun of working out how to build these maps by hand, a colleague pointed out that there are online services available that can do all the hard work for you.  One we tried, and recommend, was <a href="http://batchgeo.com/">http://batchgeo.com/</a>.  Worth a look, even if you&#8217;re a masochist and want to go manually.</p></blockquote>
<h2>Getting started</h2>
<p>All the information you need to work with Google Maps is published here:<br />
<a href="http://code.google.com/apis/maps/documentation/javascript/basics.html">http://code.google.com/apis/maps/documentation/javascript/basics.html</a></p>
<p>But all you really need to know for working it into your website is:</p>
<ul>
<li> the API is in Javascript</li>
<li>it works very well with JQuery, and</li>
<li>it&#8217;s free (commercial or otherwise) unless you&#8217;re hitting their server big time.</li>
</ul>
<p>Tempting?  Read on.</p>
<h2>Step 1 &#8211; Drawing a map on your site</h2>
<p>The basic code to include a Google Map on your site is very straightforward.  Start with this template:</p>
<pre>
&lt;html>
&lt;head>>
  &lt;script type="text/javascript"
          src="http://maps.googleapis.com/maps/api/js?sensor=false">
  </&lt;script type="text/javascript">

	function initialize() {
    		var myOptions = {
      		zoom: 5,
      		center: new google.maps.LatLng(-25.363882,131.044922),
      		mapTypeId: google.maps.MapTypeId.ROADMAP
    	}

	var map = new google.maps.Map(document.getElementById("map_canvas"),
                                      myOptions);

	}
  &lt;/script>
&lt;/head>

&lt;body onload="initialize()">
  &lt;div id="map_canvas">&lt;/div>
&lt;/body>
&lt;/html>
</pre>
<p>This will publish a Google Map, centred on Uluru, Australia, and zoomed to show the whole country.  Play with the values in the options set to establish the default map you prefer.</p>
<h2>Working with latitude and longitude</h2>
<p>The centre of your map needs to be a position given in latitude and longitude.  If you don&#8217;t happen to know the figures then there is a way to get them out of Google Maps.</p>
<ol>
<li>Go to the location you want the coordinates for</li>
<li>Right-click on the location and select <strong>What&#8217;s Here</strong> from the menu</li>
</ol>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/02/findCoordinates.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/02/findCoordinates-300x158.png" alt="" title="How to copy latitude and longitude from Google Maps" width="300" height="158" class="alignright size-medium wp-image-788" /></a><br />
The coordinates you require will then appear when you hover over the location on the map.  More usefully, they also are pasted into the search box, from where you can copy&#038;paste them into your code.</p>
<h2>Improvement 1: Adding points of interest</h2>
<p>Each point you want to position on your new map is known as a marker.  </p>
<p><a href="http://code.google.com/apis/maps/documentation/javascript/overlays.html#Markers">http://code.google.com/apis/maps/documentation/javascript/overlays.html#Markers</a></p>
<p>It&#8217;s just one line of code to add one.  Let&#8217;s put one at Mount Isa, near the centre of our new map.</p>
<pre>
var marker = new google.maps.Marker({
	position: new google.maps.LatLng(-20.722481,139.494781),
	map: map,
	title: "Mt Isa"
	});
</pre>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/02/marker1.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/02/marker1-150x150.png" alt="" title="marker1" width="150" height="150" class="alignright size-thumbnail wp-image-791" /></a><br />
The value for <code>map</code> must match the map object you previously created. The marker will then appear at the position you give, with the title appearing on hover.</p>
<p>A fourth option, <code>icon</code> allows you to specify a different icon for your marker to the Google default hot air balloon.  Any image file is satisfactory, but for a decent range of alternatives check out <a href="http://mapicons.nicolasmollet.com/">http://mapicons.nicolasmollet.com/</a>. </p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/02/markerIcon.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/02/markerIcon-150x150.png" alt="" title="markerIcon" width="150" height="150" class="alignright size-thumbnail wp-image-792" /></a><br />
To use, just upload the icon somewhere you can link to it, and add the URL to your marker:</p>
<pre>
var marker = new google.maps.Marker({
	position: new google.maps.LatLng(-20.722481,139.494781),
	map: map,
	title: "Mt Isa",
        <strong>icon: "needsAttention.png"</strong>
	});
</pre>
<h2>Adding a popup window</h2>
<p>The title gives you room for brief information on the location, visible only on mouseover.  For something a little more descriptive you can add a popup window to display when the user clicks on the point.  The window remains in view until the user chooses to close it:</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/02/infoWindow.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/02/infoWindow.png" alt="" title="infoWindow" width="359" height="233" class="alignnone size-full wp-image-800" /></a></p>
<p></a>In Google Maps speak, these are known as <a href="http://code.google.com/apis/maps/documentation/javascript/overlays.html#InfoWindows">InfoWindows</a>.  The key point when working with them is that you first need to create your window&#8217;s content (any valid HTML will do), and then you create the link so that the window appears when the user clicks on your marker.</p>
<pre>
	var info = "&lt;p>Here's some extra information&#038;lt/br />over two lines.&lt;/p>";
	google.maps.event.addListener(marker,'click', function() {
		infowindow = new google.maps.InfoWindow({content: info});
		infowindow.open(map, marker);
		});
</pre>
<p>Tips:</p>
<ul>
<li>The <code>marker</code> in the final line must match the variable name for the marker you&#8217;re connecting to.</li>
<li>You can use any styling/layout tricks you want to make the popup look prettier.</li>
<li>Google will try and size it for you automagically, unless you force specific sizing.</li>
</ul>
<h2>Scaling for multiple points</h2>
<p>The code so far is great for just a few points, but soon becomes painful with any reasonable number. Moreso if the information you want to present needs to change (e.g. a status message for each location is updated regularly).</p>
<p>So for the final version we&#8217;ll start leveraging JQuery and JSON to generate our markers from a separate list.  For now we&#8217;ll keep that list in the same file, but it&#8217;s relatively simple to integrate via a different file or format.</p>
<p>First the data.  Obviously this can be any values that you want to present, just ensure each record has the same structure.</p>
<pre>
var branches =
[
	{
	"title":	"Uluru",
	"position":	[-25.363882,131.044922],
	"deploymentDate": "23 April 2012",
	"trainingDate": "13 March 2012",
	"status": "Not Started"
	},
	{
	"title":	"Alice Springs",
	"position":	[-23.700651,133.880038],
	"deploymentDate": "23 April 2012",
	"trainingDate": "13 March 2012",
	"status": "On Schedule"
	},
	{
	"title":	"Avalon Beach",
	"position":	[-33.636248,151.329197],
	"deploymentDate": "23 April 2012",
	"trainingDate": "13 March 2012",
	"status": "Needs Attention"
	},
	{
	"title":	"Kent St",
	"position":	[-33.866229,151.204190],
	"deploymentDate": "23 April 2012",
	"trainingDate": "13 March 2012",
	"status": "Not Started"
	}
]
</pre>
<p>Now the JQuery to loop through our data and add the markers:</p>
<pre>
$(branches).each(function() {
	var branch = this;
	var title = branch.title + ": " + branch.status;

//create the marker
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(branch.position[0], branch.position[1]),
		map: map,
		title: title,
		});

//create the infoWindow
	var info = "&lt;h2>" + branch.title + "&lt;/h2>";
	info += "&lt;p>training date: " + branch.trainingDate;
	info += "&lt;br />deployment date: " + branch.deploymentDate + "&lt;/p>";
	info += "&lt;p>status: &lt;b>" + branch.status + "&lt;/b>&lt;/p>";

//link marker to infoWindow
	google.maps.event.addListener(marker,'click', function() {
		infowindow = new google.maps.InfoWindow({content: info});
		infowindow.open(map, marker);
		});
});
</pre>
<p>Add this and the data into your initialise method.  And remember to include the JQuery script reference in your <code>head</code>.</p>
<h2>side note &#8211; How to publish this map in Sharepoint?</h2>
<p>Adding this content to Sharepoint is complex because of the need to include the separate Javascript libraries.  As a result the simplest approach is to use an iframe. Build your map as a standalone webpage, then embed it via an iframe defined within a Content Editor Webpart.</p>
<h2>Conclusion</h2>
<p>As you can see it&#8217;s reasonably simple to embed a smart map on your site that identifies and describes points of interest to your users.</p>
<p>If you want to try for yourself, here are some sample files to get you going:</p>
<ul>
<li><a href='http://isambard.com.au/blog/wp-content/uploads/2012/02/simple.zip'>simple/manual</a> (1 marker, 1 window) &#8211; good template if only a small number of locations</li>
<li><a href='http://isambard.com.au/blog/wp-content/uploads/2012/02/multipoint.zip'>multipoint</a> (uses jQuery/JSON approach as described) &#8211; best if wanting to map too many points to manage manually.</li>
</ul>
<blockquote><p>
If using the multipoint template, one &#8220;exercise for the reader&#8221; is to make it so that if a user has one infoWindow open, selecting a different point automatically closes the currently open window before opening the new one.  Currently this code allows the user to open multiple windows simultaneously.
</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F02%2F17%2Fimplementing-a-rollout-status-map-using-google-maps%2F&amp;title=Implementing%20a%20rollout%20status%20map%20using%20Google%20Maps" id="wpa2a_12"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/02/17/implementing-a-rollout-status-map-using-google-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UI Rule #92 &#8211; Don&#8217;t sacrifice the useful to fit your design</title>
		<link>http://isambard.com.au/blog/2012/01/30/ui-rule-92-dont-sacrifice-the-useful-information-to-fit-your-design/</link>
		<comments>http://isambard.com.au/blog/2012/01/30/ui-rule-92-dont-sacrifice-the-useful-information-to-fit-your-design/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 04:15:58 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=774</guid>
		<description><![CDATA[Everybody needs a lego moleskine. Comparison shopping at the UK Book Depository proved troublesome because they decided to cut the product title short, removing the information that actually differentiated the products being chosen: Hard to tell which one to choose when everything you want to know about the choices is unavailable. Should I get the [...]]]></description>
			<content:encoded><![CDATA[<p>Everybody needs a lego moleskine.  Comparison shopping at the <a href="http://www.bookdepository.co.uk/search?searchTerm=lego+moleskine&#038;search=search">UK Book Depository</a> proved troublesome because they decided to cut the product title short, removing the information that actually differentiated the products being chosen:</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/01/bookDepository.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/01/bookDepository.png" alt="" title="bookDepository" width="766" height="659" class="alignleft size-full wp-image-775" /></a></p>
<p>Hard to tell which one to choose when everything you want to know about the choices is unavailable. Should I get the &#8220;Lego Y..&#8221; or, mmmmm, the other &#8220;Lego Y..&#8221;?</p>
<p>Compare to Amazon, who manage to fit the full name in without issue:</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2012/01/amazon.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2012/01/amazon.png" alt="" title="amazon" width="785" height="401" class="alignleft size-full wp-image-776" /></a></p>
<p>If you&#8217;re going to allow a certain number of characters for a value, assume all of those characters may be important at some point.  And make sure somewhere on your interface you let them all get their moment in the sun.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F01%2F30%2Fui-rule-92-dont-sacrifice-the-useful-information-to-fit-your-design%2F&amp;title=UI%20Rule%20%2392%20%E2%80%93%20Don%E2%80%99t%20sacrifice%20the%20useful%20to%20fit%20your%20design" id="wpa2a_14"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/01/30/ui-rule-92-dont-sacrifice-the-useful-information-to-fit-your-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Want your iPad calendar to start the week on Monday?  Move to Namibia</title>
		<link>http://isambard.com.au/blog/2012/01/25/want-your-ipad-calendar-to-start-the-week-on-monday-move-to-namibia/</link>
		<comments>http://isambard.com.au/blog/2012/01/25/want-your-ipad-calendar-to-start-the-week-on-monday-move-to-namibia/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 01:49:58 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=769</guid>
		<description><![CDATA[Frustratingly, my iPad calendar appeared to unilaterally decide that the first day of the week was Sunday. And there was no obvious setting to change it, like there is for Calendar on the Mac. Turns out this &#8220;feature&#8221; is decided by Apple based on your region. They believe Australian weeks start on Sunday so that&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Frustratingly, my iPad calendar appeared to unilaterally decide that the first day of the week was Sunday.  And there was no obvious setting to change it, like there is for Calendar on the Mac.</p>
<p>Turns out this &#8220;feature&#8221; is decided by Apple based on your region.  They believe Australian weeks start on Sunday so that&#8217;s the way it is.  To change the day, change your region.</p>
<p>For Australians wanting their calendar to start on a Monday:</p>
<ol>
<li>Launch settings</li>
<li>Select General > International</li>
<li>change region format to Namibia</li>
</ol>
<p>This bizarre choice seems to have the best option for calendar setting, as well as changes it makes to keyboards (what currency symbol you see), date and time formats, even which google you default to when you search.  Namibia appears to leave all the other settings &#8220;just like Australia&#8221;, and still default to google.com.au for searching in Safari.</p>
<p>Thanks to the clever chaps on the <a href="http://forums.whirlpool.net.au/archive/1793827">Whirlpool forums</a>, particularly dokh22, for uncovering this.  Now how long before Apple gives us a calendar setting to do it properly?</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2012%2F01%2F25%2Fwant-your-ipad-calendar-to-start-the-week-on-monday-move-to-namibia%2F&amp;title=Want%20your%20iPad%20calendar%20to%20start%20the%20week%20on%20Monday%3F%20%20Move%20to%20Namibia" id="wpa2a_16"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2012/01/25/want-your-ipad-calendar-to-start-the-week-on-monday-move-to-namibia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple image (frame-by-frame) animation in IOS and Xcode</title>
		<link>http://isambard.com.au/blog/2011/11/05/simple-image-animation-in-ios-and-xcode/</link>
		<comments>http://isambard.com.au/blog/2011/11/05/simple-image-animation-in-ios-and-xcode/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 02:19:32 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Techniques]]></category>
		<category><![CDATA[IOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Xcode]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=720</guid>
		<description><![CDATA[Adding frame-by-frame animations to your iOS application is simple once you find out that a UIImageView can be initialised with an array of images, not just one image. This post was inspired by a colleague who had not uncovered that fact, and so had spent time arduously linking separate views with timers. This post shows [...]]]></description>
			<content:encoded><![CDATA[<p>Adding frame-by-frame animations to your iOS application is simple once you find out that a UIImageView can be initialised with an array of images, not just one image. </p>
<p>This post was inspired by a colleague who had not uncovered that fact, and so had spent time arduously linking separate views with timers.  This post shows how to use a single view and 3 lines of animation code to do all the work.</p>
<h2>What to do?</h2>
<p>What we&#8217;ll do as a test is animate the blinking eyes on a tennis-playing ninja splash screen.  To trigger the animation will add a &#8220;blink&#8221; button on the same screen.</p>
<p>Don&#8217;t ask how we ended up with that as the example (thanks to the friend).  But you can download the entire project, or just the images if wanting to join in.<br />
<span id="more-720"></span></p>
<ul>
<li><a href='http://isambard.com.au/blog/wp-content/uploads/2011/11/ninjaProject.zip'>download the project</a></li>
<li><a href='http://isambard.com.au/blog/wp-content/uploads/2011/11/ninjaImages.zip'>download the images</a></li>
</ul>
<p>The steps:</p>
<ol>
<li>prepare the images</li>
<li>create the project</li>
<li>create/update a XIB with the image and button</li>
<li>add the animation code and link to the same image and button</li>
</ol>
<blockquote><p>
All the neat animation stuff is described in the 4th step, so feel free to scroll straight to it.  The previous three steps cover all that&#8217;s needed to get your project ready to animate.  I&#8217;ve included it because I hate reading articles  that assume you&#8217;ve covered all the basics already.  Or worse just dismiss it with one line (first step, invent time travel).
</p></blockquote>
<p>Note this process was captured in xCode4/IOS5.  None of the code in here has changed much in recent releases but you may have to adjust some of the steps if running an earlier setup (one thing that has changed in this version is the options when creating a project).</p>
<h2>(1) prepare the images</h2>
<p>Your imagery is limited only by your artistic talents, or abilities to search Google Images or Flickr (remember to honour their copyright, boys and girls).  </p>
<p>Only suggestion is to limit the animation element to the smallest possible; keeps sizes small.  For example, for the blinking ninja, instead of 3 different ninjas with different eye positions (open, half closed, closed), I created one ninja with no eyes, and then three images of just the different eyes.  What we&#8217;ll do in the project is then add the main ninja as one image view, and put the eyes over the top in a separate image.</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/ninja-AllImages.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/ninja-AllImages.png" alt="" title="ninja-AllImages" width="362" height="339" class="aligncenter size-full wp-image-747" /></a></p>
<p>Whatever approach you take, ensure all the images that will be animated are the same size.  This will ensure when animated they appear over each other.</p>
<h2>create the project</h2>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/10/project-01-create.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/10/project-01-create-300x200.png" alt="" title="project-01-create" width="300" height="200" class="alignright size-medium wp-image-729" /></a><br />
Crack open Xcode and choose <strong>File > New Project</strong>.  I&#8217;m in the latest and greatest (4.2) so your options may vary, but for this version:</p>
<ul>
<li>choose <strong>Single View Application</strong></li>
<li>choose not to use storyboard (so we get a XIB to mess with)</li>
</ul>
<p>Once created we have a simple project containing the key source files:</p>
<ul>
<li>appDelegate.h</li>
<li>appDelegate.m</li>
<li>ViewController.h</li>
<li>ViewController.m</li>
<li>ViewController.xib</li>
</ul>
<blockquote><p>The good news is we&#8217;re only going to be editing the three ViewController files.  Which means you can pretty much follow all of these steps to add an animation to an existing view within your current application;  just join in from the next step.</p></blockquote>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/10/project-02-addFiles.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/10/project-02-addFiles-269x300.png" alt="" title="project-02-addFiles" width="269" height="300" class="alignright size-medium wp-image-736" /></a>Now add your animation images to the project.  Either right-click in the folder view and select <strong>Add Files To..</strong>, or choose <strong>File > Add Files To..</strong> from the menu.</p>
<h2>(2) create/update XIB with the image and button</h2>
<p>Our XIB has already been created in the project.  What to do now is setup the images and buttons we meed, including the outlets needed so we can communicate with them from our code.</p>
<p>Firstly the images.  Remember we need to add two:  1 as the background (which we don&#8217;t need to interact with) and one for the animated eyes (which we will need to talk to).</p>
<p>To hook things up let&#8217;s create the outlets first, and then link in the XIB. Open ViewController.h and add our definition (new text in bold):</p>
<pre>
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    <strong>IBOutlet UIImageView *eyesImage;</strong>
    <strong>IBOutlet UIButton *blinkButton;</strong>
}

<strong>@property (nonatomic, retain) IBOutlet UIImageView *eyesImage;</strong>
<strong>@property (nonatomic, retain) IBOutlet UIButton *blinkButton;</strong>

@end;
</pre>
<p>Then switch over to ViewController.m (tip: 3 fingers down gesture if using a trackpad) and synthesize them:</p>
<pre>
@import "ViewController.h"

@implementation ViewController

<strong>@synthesize eyesImage;</strong>
<strong>@synthesize blinkButton;</strong>
</pre>
<p>Remember if we create them, we should also destroy them:</p>
<pre>
- (void)viewDidUnload
{
    [superviewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    <strong>self.eyesImage = nil;</strong>
    <strong>self.blinkButton = nil;</strong>
}
</pre>
<p>That gives us our outlets so we can link to, and manipulate these items on our XIB.  Note we don&#8217;t currently need to manipulate the button but the outlet is there just in case (for example if needing to disable the button at some point).</p>
<p>The only other item to add in the code before we edit the XIB is the method to be called when we click the button.</p>
<p>Back into viewController.h and add the definition:</p>
<pre>
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    IBOutlet UIImageView *eyesImage;
    IBOutlet UIButton *blinkButton;
}

@property (nonatomic, retain) IBOutlet UIImageView *eyesImage;
@property (nonatomic, retain) IBOutlet UIButton *blinkButton;

<strong>- (IBAction) blink;</strong>

@end;
</pre>
<p>And then back to ViewController.m, and insert the method somewhere in the list:</p>
<pre><strong>
- (IBAction) blink {
  //blink
}
</strong></pre>
<p>Save the files and we&#8217;re ready to connect them to elements in the XIB.</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/imageView.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/imageView-300x113.png" alt="" title="imageView" width="300" height="113" class="alignright size-medium wp-image-746" /></a><br />
Firstly open the XIB and drag an imageView onto the work area.<br />
Set the size and content to be our background/static image for the animation.    Don&#8217;t worry with any outlets as we never need to talk to this image.</p>
<p>Now add a 2nd image view to the work area.  Set its position and size to match where the animation is to be presented.  If it helps you with positioning, set the default image to the first of your animation frames.</p>
<p>Once the animated image view is in place, hook up the outlet.  We need to link this to our eyesImage outlet so we can manipulate it.  Just select the Outlets panel for the view, click in the circle for Referencing Outlet and then drag to File&#8217;s Owner on the left side of the work area.  if all has worked you&#8217;ll then get a dropdown list in which you can select eyesImage.  Once selected your outlet will be added.</p>
<p>That&#8217;s all you need to do for the animation.  Now for the button.</p>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/button.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/button-300x109.png" alt="" title="button" width="300" height="109" class="alignright size-medium wp-image-763" /></a>Drag a Round Rect Button onto the work area and position somewhere appropriate.  Then add a suitable label (&#8220;blink&#8221; comes to mind).  View the Outlets panel for the button and drag from the Referencing Outlet to File&#8217;s Owner (as we did for the image) and select the blinkButton outlet.  And then, to link to our blink method, drag from the TouchUpInside outlet to the same File&#8217;s Owner.  If all has worked you&#8217;ll then be able to select <code>blink</code> and connect it up.</p>
<p>So that&#8217;s all the XIB sorted.  We&#8217;ve got a background/static image.  We&#8217;ve got a smaller image with an eyesImage outlet for the animation.  And we&#8217;ve got a button that when clicked will trigger our <code>blink()</code> method.  Only one step to go.</p>
<table width="100%">
<tr>
<td valign=top><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/imageOutlets2.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/imageOutlets2-198x300.png" alt="" title="imageOutlets" width="198" height="300" class="alignnone size-medium wp-image-760" /></a></td>
<td valign=top><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/buttonOutlets.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/buttonOutlets-187x300.png" alt="" title="buttonOutlets" width="187" height="300" class="alignnone size-medium wp-image-760" /></a></td>
</tr>
</table>
<p>Save your XIB and then run your project.  You won&#8217;t see anything moving but at least your background image should be in view.</p>
<h2>add the animation code and link to the image and button</h2>
<p>Now for the fun part.</p>
<p>To animate an image we load up the image view with an array of images, set some parameters for how fast and how long the animation runs, and then start it off.  For efficiency we&#8217;ll put all the animation setup into <code>viewDidLoad</code> (so done once when the view first appears), and then just trigger the animation each time we click the button.</p>
<p>So back into viewController.m, let&#8217;s first setup the animation:</p>
<pre>
- (void)viewDidLoad
{
    [superviewDidLoad];
    
        <strong>
       //setup animation
    NSArray *eyeFrames = [NSArrayarray];
    eyeFrames = [[NSArrayalloc] initWithObjects:
                 [UIImageimageNamed:@"eyes1-open.png"],
                 [UIImageimageNamed:@"eyes2-half.png"],
                 [UIImageimageNamed:@"eyes3-closed.png"],
                 nil];
    eyesImage.animationImages = eyeFrames;
    eyesImage.animationDuration = 0.25;
    eyesImage.animationRepeatCount = 1;
    [eyeFrames release];   
    </strong>

}
</pre>
<p>We&#8217;ve added an array of three images to our eyesImage outlet. The animation will take a quarter of a second and will only run once.  Once implemented you&#8217;ll return to these settings (often!) to get the appearance just right.</p>
<p>Once setup, triggering it is just one line of code:</p>
<pre>
- (void) blink {
    <strong>[eyesImage startAnimating];</strong>
}
</pre>
<p>Save and run your project. Then everytime you click the button, magic happens.</p>
<h2>Conclusion</h2>
<p><a href="http://isambard.com.au/blog/wp-content/uploads/2011/11/finished.png"><img src="http://isambard.com.au/blog/wp-content/uploads/2011/11/finished-159x300.png" alt="" title="finished" width="159" height="300" class="alignright size-medium wp-image-761" /></a> While it took a while to get there, animating our image took only 7 lines of code.  Armed with that code you are limited by only your graphical capabilities.  Just build your images, repeat the 7 lines, and then spend an age tweaking the duration to get it looking right.  </p>
<p>After a while you may find this approach a bit too limited as it scrolls through the image frames at a regular pace.  If wanting a bit more control over the animation  pace, then you&#8217;ll need to step up and start using proper animation blocks.  Next time.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2011%2F11%2F05%2Fsimple-image-animation-in-ios-and-xcode%2F&amp;title=Simple%20image%20%28frame-by-frame%29%20animation%20in%20IOS%20and%20Xcode" id="wpa2a_18"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2011/11/05/simple-image-animation-in-ios-and-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote of the Week (31 October)</title>
		<link>http://isambard.com.au/blog/2011/10/31/quote-of-the-week-31-october/</link>
		<comments>http://isambard.com.au/blog/2011/10/31/quote-of-the-week-31-october/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 05:17:19 +0000</pubDate>
		<dc:creator>steven</dc:creator>
				<category><![CDATA[Quote of the Week]]></category>
		<category><![CDATA[Project Mgt]]></category>

		<guid isPermaLink="false">http://isambard.com.au/blog/?p=740</guid>
		<description><![CDATA[Quoted in a Zach Holman presentation on GitHub, but originally from Merlin Mann: Making something a BIG RED TOP TOP BIG HIGHEST #1 PRIORITY changes nothing but text styling. if it were really important, it&#8217;d already be done. Period.]]></description>
			<content:encoded><![CDATA[<p>Quoted in a <a href="http://zachholman.com/talk/how-github-uses-github-to-build-github">Zach Holman presentation on GitHub</a>, but originally from <a href="http://www.43folders.com/2009/04/28/priorities">Merlin Mann</a>:</p>
<blockquote><p>Making something a <strong><span style="color: #ff0000;">BIG RED TOP TOP BIG HIGHEST #1 PRIORITY</span></strong> changes nothing but text styling.</p>
<p>if it were really important, it&#8217;d already be done. Period.</p></blockquote>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fisambard.com.au%2Fblog%2F2011%2F10%2F31%2Fquote-of-the-week-31-october%2F&amp;title=Quote%20of%20the%20Week%20%2831%20October%29" id="wpa2a_20"><img src="http://isambard.com.au/blog/wp-content/plugins/add-to-any/share_save_120_16.png" width="120" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://isambard.com.au/blog/2011/10/31/quote-of-the-week-31-october/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

