<?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>strangerpixel &#187; Tech</title>
	<atom:link href="http://www.strangerpixel.com/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.strangerpixel.com</link>
	<description>I make websites.</description>
	<lastBuildDate>Sat, 10 Mar 2012 18:43:36 +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>Building the Tour of the North microsite</title>
		<link>http://www.strangerpixel.com/2011/09/building-the-tour-of-the-north-microsite/</link>
		<comments>http://www.strangerpixel.com/2011/09/building-the-tour-of-the-north-microsite/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 12:15:35 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Bike]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[cycling]]></category>
		<category><![CDATA[Flickr API]]></category>
		<category><![CDATA[Google Maps API]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=763</guid>
		<description><![CDATA[In April this year I went on a mountain-bike trip with a few mates. It was an epic, tough ride that involved digging very deep into limited early-season fitness reserves. On returning to London I decided that the journey should &#8230; <a href="http://www.strangerpixel.com/2011/09/building-the-tour-of-the-north-microsite/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In April this year I went on a mountain-bike trip with a few mates. It was an epic, tough ride that involved digging very deep into limited early-season fitness reserves. On returning to London I decided that the journey should be appropriately documented and data-mined &#8211; for my grandchildren, at the very least.</p>
<div id="attachment_764" class="wp-caption alignnone" style="width: 560px"><img class="size-medium wp-image-764" title="totn-grab" src="http://www.strangerpixel.com/blog/wp-content/uploads/2011/09/totn-grab-550x376.jpg" alt="" width="550" height="376" /><p class="wp-caption-text">The Tour of the North website.</p></div>
<p><strong>Prep</strong></p>
<p>The planned route was a 5-day zig-zag from Lancaster to Scarborough, taking in the finest riding available.</p>
<p>Before heading north I encouraged all but the least tech member of our 4-man team to get on Twitter and get their heads around hashtags and geo-located tweets. Three of us, thankfully, had iPhones, which made this pretty easy.</p>
<p><strong>Navigation</strong></p>
<p>Tom was in charge of navigation: in addition to route maps, he brought with him the <a href="http://gps.motionx.com/iphone/overview/">GPS Motion-X app</a> for iPhone, which records detailed route data including distance, time, speed, and 3-dimensional coordinates (with elevation).</p>
<p>After each day&#8217;s leg was completed, Tom emailed the KML route data to all of us to ensure everything was backed up.</p>
<p><strong>Website</strong></p>
<p>The Tour of the North microsite has two components:</p>
<ul>
<li>a page built out from my existing blog at <a href="http://www.legsfeelingnopressure.com/the-tour-of-the-north/">http://www.legsfeelingnopressure.com/the-tour-of-the-north/</a></li>
<li>a dedicated map page with geolocated photos and tweets at <a href="http://www.legsfeelingnopressure.com/totn-map/index.html">http://www.legsfeelingnopressure.com/totn-map</a></li>
</ul>
<p>The blog page features some neat CSS3 transitions, scrolling elevation charts and a lightbox to display the Flickr images. The trickiest element by far was processing the KML data to display accurately on the maps, and then using the Flickr and Twitter APIs to add photos and tweets to the dedicated map page.</p>
<div id="attachment_771" class="wp-caption alignnone" style="width: 560px"><img class="size-medium wp-image-771" title="totn-map-grab" src="http://www.strangerpixel.com/blog/wp-content/uploads/2011/09/totn-map-grab-550x398.jpg" alt="" width="550" height="398" /><p class="wp-caption-text">Mapping the ride: a Google Map with plotted KML routes, Flickr photos and tweets.</p></div>
<p><strong>Mapping</strong></p>
<p>Creating the maps involved various stages:</p>
<ul>
<li>Cleaning up the Motion-X KML data &#8211; Motion-X adds quite a lot of extraneous cruft to its exported KML route files, including Motion-X logos and route data that is loaded into Google Maps info windows by default.</li>
<li>Repairing KML files where necessary &#8211; we suffered a technical malfunction on day 2, which resulted in a gap in the coordinates (it loos like we teleported). I had to populate the KML with dummy coordinates.</li>
<li>Hosting KML files on Amazon S3 &#8211; so they load super-fast.</li>
<li>Programming the Google Maps API to <a href="http://code.google.com/apis/maps/documentation/javascript/overlays.html#KMLLayers">plot the KML overlays</a> onto the maps.</li>
</ul>
<p><strong>Twitter &amp; Flickr APIs</strong></p>
<p>I downloaded each tweeter&#8217;s JSON for the 5 days of riding and combined them into a single .json file to reduce file size and speed up the rendering of the markers onto the map.</p>
<pre class="brush: php; gutter: false; title: ; wrap-lines: true; notranslate">
// get a combined stream of tweets, downloaded from Twitter immediately after the trip
	$.getJSON('js/combined.json', function(data) {
		for (index in data) addTweetMarker(data[index]);
	});
</pre>
<p>Because the main map needs to access more than 20 tagged photos from Flickr, I had to use the Flickr API with a key (check the source code). Also, of course, any photos uploaded to Flickr from a standard camera without geodata had to be manually added to Flickr&#8217;s (not very detailed) maps &#8211; harder than it sounds when you&#8217;re talking about a hillside in the Dales.</p>
<p><strong>Elevation charts</strong></p>
<p>I stumbled across a really awesome online tool called <a href="http://www.gpsvisualizer.com/">GPS Visualiser</a> which converts .gps and .kml files into all kinds of things, including profile graphics.</p>
<p><strong>Future developments</strong></p>
<ul>
<li>Swap out the Daytum iframes for some javascript graphs using <a href="http://code.google.com/p/flot/">Flot</a> or <a href="http://omnipotent.net/jquery.sparkline/">Sparklines</a>.</li>
<li>Fix the map so that the Flickr info windows display the photo author and link to the original on Flickr.</li>
<li>Go on another, similar trip and set all this up <em>in advance</em> with live tweets and route-plotting.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2011/09/building-the-tour-of-the-north-microsite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple content workflow for WordPress</title>
		<link>http://www.strangerpixel.com/2011/09/simple-content-workflow-for-wordpress/</link>
		<comments>http://www.strangerpixel.com/2011/09/simple-content-workflow-for-wordpress/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 09:09:15 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=756</guid>
		<description><![CDATA[Create a simple and convenient workflow process for multiple WordPress bloggers using two plugins. Posting content on WordPress is almost too easy. You paste text into a box and click publish, and your post is instantly pushed to your thousands &#8230; <a href="http://www.strangerpixel.com/2011/09/simple-content-workflow-for-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Create a simple and convenient workflow process for multiple WordPress bloggers using two plugins.</p>
<p>Posting content on WordPress is almost too easy. You paste text into a box and click publish, and your post is instantly pushed to your thousands of Twitter followers. Then you check the published post and find a grammatical war-zone&#8230;</p>
<p>Being an unashamed stickler for textual accuracy, I&#8217;ve put in place a system to catch occasional lapses by my team of WordPress content editors at LCF. Here&#8217;s how it works.</p>
<p><strong>Step 1: Status notifications</strong></p>
<p>Download and install the <a href="http://wordpress.org/extend/plugins/wp-status-notifier/">WP Status Notifier plugin</a>. This plugin is in charge of sending emails to and from contributors and a specified approver when the status of a piece of content changes. The settings screen (Settings &gt; Status Notifications) should look like this (fill in your admin email address of course):</p>
<div id="attachment_757" class="wp-caption alignnone" style="width: 560px"><img class="size-medium wp-image-757" title="status-notifier" src="http://www.strangerpixel.com/blog/wp-content/uploads/2011/09/status-notifier-550x259.jpg" alt="" width="550" height="259" /><p class="wp-caption-text">WP Status Notifier settings panel.</p></div>
<p><strong>Step 2: Roles and Capabilities</strong></p>
<p>First of all, read up on the <a href="http://codex.wordpress.org/Roles_and_Capabilities">Roles and Capabilities documentation</a> in the WordPress Codex. Next, install the <a href="http://wordpress.org/extend/plugins/capsman/">Capability Manager plugin</a>. You now have to configure the plugin to ensure that all those users whose posts you want to moderate are prevented from doing so automatically. <em>Go to Users &gt; Capabilities.</em></p>
<p>Most of my contributors are in fact WordPress &#8216;editors&#8217; &#8211; and by default they can publish posts and pages. Therefore we need to uncheck these capabilities from the editor capabilities table.</p>
<div id="attachment_759" class="wp-caption alignnone" style="width: 560px"><img class="size-medium wp-image-759" title="roles-caps" src="http://www.strangerpixel.com/blog/wp-content/uploads/2011/09/roles-caps-550x372.jpg" alt="" width="550" height="372" /><p class="wp-caption-text">Managing roles and capabilities in WordPress.</p></div>
<p>I would recommend installing the Roles and Capabilities plugin in any case &#8211; it&#8217;s often useful to strip out options and menus where they&#8217;re not needed, or to give certain capabilities to a user you don&#8217;t necessarily want to make an admin.</p>
<p><strong>Step 3: Moderate and go</strong></p>
<p>Provided you&#8217;ve configured your users&#8217; capabilities correctly, you should now receive an email whenever a post is ready for approval. This will happen the first time a user clicks &#8216;Save&#8217; (be wary here about jumping in to approve instantly &#8211; the user might still be editing the content). Once you&#8217;ve had a chance to check the content and click Publish, the author will receive a confirmation email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2011/09/simple-content-workflow-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Increase PHP memory limit on Slicehost</title>
		<link>http://www.strangerpixel.com/2011/03/increase-php-memory-limit-on-slicehost/</link>
		<comments>http://www.strangerpixel.com/2011/03/increase-php-memory-limit-on-slicehost/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 12:41:00 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=751</guid>
		<description><![CDATA[The simultaneously daunting and great thing about Slicehost is the control it gives developers over their server setup. I&#8217;m very much a novice at server admin, but today I learned something new. I needed to increase the memory limit for &#8230; <a href="http://www.strangerpixel.com/2011/03/increase-php-memory-limit-on-slicehost/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The simultaneously daunting and great thing about Slicehost is the control it gives developers over their server setup. I&#8217;m very much a novice at server admin, but today I learned something new.</p>
<p>I needed to increase the memory limit for PHP because my WordPress Next Gen gallery plugin was throwing failure errors when attempting to batch-resize thumbnails. Why 33MB of memory is required to resize a 100KB image is anyone&#8217;s guess &#8211; but there was no way around it.</p>
<p>To change files situated above the /www level in your server tree, or to change folder permissions, you need to access your server via ssh, then switch to the root user. It&#8217;s really easy, but it&#8217;s incredible how long it&#8217;s taken me to learn this. Thanks to <a href="http://samoliver.com/">Sam Oliver</a> for helping the penny drop.</p>
<p>For info the server I&#8217;m using is Apache on Ubuntu.</p>
<p><strong>Gaining root access</strong></p>
<p>Typically, when using Terminal, you will not be able to do:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">$ ssh root@your-domain.com</pre>
<p>You have to start by going in as another user with non-root privileges, e.g. </p>
<pre class="brush: bash; gutter: false; title: ; notranslate">$ ssh joe@your-domain.com</pre>
<p>I guess it depends what users you have created on the server in the first place &#8211; I don&#8217;t know, I didn&#8217;t set mine up.</p>
<p>Once you&#8217;ve logged in as joe with joe&#8217;s password, you can then type:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate"># su</pre>
<p>then [ENTER], then your root password. You should then see something like:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">root@your-domain:/home/dir#</pre>
<p><strong>Modifying php.ini</strong></p>
<p>If you have sftp access to your server, then you can find out where php lives on your server. Or, again, you can use Terminal. First of all, type:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate"># cd</pre>
<p>to return to the topmost root level. Now type:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate"># cd /etc/php5/apache2</pre>
<pre class="brush: bash; gutter: false; title: ; notranslate"># ls</pre>
<p>This list command should bring up a list of files in the apache2 folder: <code>conf.d</code> and <code>php.ini</code>. Now type:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate"># sudo pico php.ini</pre>
<p>The php.ini file will now be displayed inside Terminal. You can key down and edit the line:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)</pre>
<p>Increase it to 48M. Finally, you need to restart Apache by typing:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate"># /etc/init.d/apache2 restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2011/03/increase-php-memory-limit-on-slicehost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a geoRSS feed from WordPress</title>
		<link>http://www.strangerpixel.com/2011/03/creating-a-georss-feed-from-wordpress/</link>
		<comments>http://www.strangerpixel.com/2011/03/creating-a-georss-feed-from-wordpress/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 15:54:32 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[geoRSS]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=737</guid>
		<description><![CDATA[A back-to-basics tutorial for generating a geoRSS feed from WordPress, correctly formatted for use in Google Maps KML layers. There are a profusion of (often very full-featured and cool) WordPress plugins out there providing geolocation or geotagging functionality. However, none &#8230; <a href="http://www.strangerpixel.com/2011/03/creating-a-georss-feed-from-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A back-to-basics tutorial for generating a geoRSS feed from WordPress, correctly formatted for use in Google Maps KML layers.</p>
<p>There are a profusion of (often very full-featured and cool) WordPress plugins out there providing <a href="http://wordpress.org/extend/plugins/search.php?q=geolocation&amp;sort=">geolocation</a> or <a href="http://wordpress.org/extend/plugins/search.php?q=geotagging&amp;sort=">geotagging</a> functionality. However, none of them really fit my purposes for any or all of the following reasons:</p>
<ul>
<li>they use geolocation data from the blogger who is writing the post, as opposed to manually-entered coordinates.</li>
<li>they are focussed on providing mapping within WordPress, as opposed to generating a feed for use externally.</li>
<li>they added unnecessary calls to Google or Yahoo scripts in <code>wp_head().</code></li>
<li>they used out-of-date versions of the Google Maps API.</li>
</ul>
<p><a href="http://gpress.my/">gPress</a> is currently the most promising-looking complete package for mapping in WordPress, and it apparently offers geoRSS functionality, although I haven&#8217;t checked it out yet. However, I simply wanted to provide a geoRSS feed without any additional baggage, besides wanting to build the nuts and bolts myself.</p>
<p><strong>Generating a new feed</strong></p>
<p>In <code>functions.php</code>, add the following:</p>
<pre class="brush: php; title: ; notranslate">
add_action('init', 'my_maps_init');

function my_maps_init() {
    add_feed('georss','my_georss_feed');
}

function my_georss_feed() {
    load_template( TEMPLATEPATH . '/feed-georss.php' );
}
</pre>
<p>Now you can create your new <code>feed-georss.php</code> template. I based my code on the output from <a href="http://api.flickr.com/services/feeds/geo/?g=322338@N20&amp;lang=en-us&amp;format=feed-georss">Flickr&#8217;s geoRSS feed</a>, as used in <a href="http://code.google.com/apis/maps/documentation/javascript/examples/layer-georss.html">this example</a>. It contains latitude and longitude coordinates from two new custom fields set up in the post itself. Note the special RSS template tags e.g. <code>the_title_rss()</code> that strip out tags and convert characters to present the raw data via RSS.</p>
<p><script src="https://gist.github.com/852944.js?file=feed-georss.php"></script></p>
<p>Assuming you have some posts ready with geo-coordinates in custom fields, you can test the feed output at:</p>
<pre class="brush: xml; gutter: false; title: ; notranslate">http://www.yourblog.com/?feed=georss</pre>
<p>If you are only adding coordinates to posts in certain categories you can also use e.g.:</p>
<pre class="brush: xml; gutter: false; title: ; notranslate">http://www.yourblog.com/category/maps/?feed=georss</pre>
<p><strong>Google Maps</strong></p>
<p>Assuming your feed is working correctly, you can now get your geotagged posts to show up on a Google map using a KML Layer. You&#8217;ll need to <a href="http://code.google.com/apis/maps/documentation/javascript/overlays.html#KMLLayers">read up on the documentation</a> first, but for reference here&#8217;s the relevant snippet of my code:</p>
<pre class="brush: jscript; title: ; notranslate">
var kmlLayerOptions = {
	map: map,
	preserveViewport: true,
	suppressInfoWindows: true
}

var georssLayer = new google.maps.KmlLayer('http://blogs.fashion.arts.ac.uk/snapshot/category/international/?feed=georss', kmlLayerOptions);

google.maps.event.addListener(georssLayer, 'click', function(kmlEvent) {
	showKmlWindow(kmlEvent, georssLayer);
});

function showKmlWindow(e, layer) {
	infoWindow.close();
	infoWindow.setPosition(e.latLng);
	infoWindow.open(map);
	infoWindow.setContent('&lt;h3&gt;' + e.featureData.name + '&lt;/h3&gt;' + e.featureData.description);
}
</pre>
<p>Note that, in order to manipulate the infoWindow content when each marker is clicked, you have to suppress the infoWindows that open automatically. You then catch the <code>kmlEvent</code> generated on click, and then do what you will with the <code>KmlFeatureData</code> object.</p>
<ul>
<li><a href="http://www.fashion.arts.ac.uk/lcf-in-the-world.php">View London College of Fashion activity map</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2011/03/creating-a-georss-feed-from-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to create a tablet startup screen for iPad in Sencha Touch</title>
		<link>http://www.strangerpixel.com/2011/01/how-to-create-a-tablet-startup-screen-for-ipad-in-sencha-touch/</link>
		<comments>http://www.strangerpixel.com/2011/01/how-to-create-a-tablet-startup-screen-for-ipad-in-sencha-touch/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 11:01:47 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Sencha Touch]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=657</guid>
		<description><![CDATA[When creating a web app using Sencha Touch, the icing on the cake is a nice sexy startup screen that displays as soon as your app loads after pressing the home screen button. To show a tablet startup screen for &#8230; <a href="http://www.strangerpixel.com/2011/01/how-to-create-a-tablet-startup-screen-for-ipad-in-sencha-touch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When creating a web app using Sencha Touch, the icing on the cake is a nice sexy startup screen that displays as soon as your app loads after pressing the home screen button.</p>
<pre class="brush: jscript; title: ; notranslate">
Ext.setup({
    tabletStartupScreen: 'tablet_startup.png',
    phoneStartupScreen: 'phone_startup.png',
    icon: 'icon.png',
    glossOnIcon: true,
    onReady: function() {
		Showtime.MasterPanel = new Showtime.MasterPanel();
    }
});
</pre>
<p>To show a tablet startup screen for the first few seconds after clicking the button on your home screen, you need to do 2 things:</p>
<ol>
<li>Create a portrait-orientation .png with dimensions 768px x 1004px. <a href="http://dev.sencha.com/deploy/touch/docs/source/Ext1.html#method-Ext-setup">It only works in portrait</a> &#8211; so far.</li>
<li>Put it in your web root folder (putting it in any other folder doesn&#8217;t seem to work).</li>
</ol>
<p>You can use absolute URLs, but for some reason I had problems trying to use relative URLs like &#8216;../img/touch/tablet_startup.png&#8217;. You can also name the file whatever you like, and it still works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2011/01/how-to-create-a-tablet-startup-screen-for-ipad-in-sencha-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LCF: back to black</title>
		<link>http://www.strangerpixel.com/2010/12/lcf-back-to-black/</link>
		<comments>http://www.strangerpixel.com/2010/12/lcf-back-to-black/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 10:02:27 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=611</guid>
		<description><![CDATA[Last night I took the radical step of transforming the London College of Fashion&#8217;s web colour scheme from pink to black. I&#8217;m awaiting either a storm of protest, or a standing ovation &#8211; or probably a bit of both. This &#8230; <a href="http://www.strangerpixel.com/2010/12/lcf-back-to-black/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last night I took the radical step of transforming the London College of Fashion&#8217;s web colour scheme from pink to black. I&#8217;m awaiting either a storm of protest, or a standing ovation &#8211; or probably a bit of both. This is what happened.</p>
<p><strong>Pink</strong></p>
<p>LCF&#8217;s online colour was pink since before I arrived in 2006. It had its place in the 6-way <a href="http://www.arts.ac.uk/index.htm">University of the Arts London</a> colour spectrum &#8211; alongside blue, red, gold, green, orange, and the base colour, a slate blue-grey.</p>
<div id="attachment_612" class="wp-caption alignnone" style="width: 638px"><img class="size-large wp-image-612" title="Screen shot 2010-12-01 at 08.48.51" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/12/Screen-shot-2010-12-01-at-08.48.51-628x577.png" alt="" width="628" height="577" /><p class="wp-caption-text">Pink version</p></div>
<p>Truth be told, I never personally disliked the pink &#8211; it worked better than some other College colours in providing contrast against the base colour. However, it seemed that many people here didn&#8217;t like the pink. They felt it was dated (since we had long ago abandoned pink in our offline publications), and no longer represented the LCF brand. Occasional grumbles found focus at an afternoon meeting in early November &#8211; so I did a quick on-the-spot mock-up in Firebug, and hey presto, people loved it.</p>
<p>More detailed samples followed. We experimented &#8211; in fact we&#8217;re still experimenting &#8211; with which tints to use as highlight and rollover colours. But the &#8216;key stakeholders&#8217; were on board with party streamers and paper hats, so <a href="http://www.fashion.arts.ac.uk/">we went for it</a>.</p>
<p><strong>Black</strong></p>
<div id="attachment_616" class="wp-caption alignnone" style="width: 638px"><img class="size-large wp-image-616" title="Screen shot 2010-12-01 at 08.48.57" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/12/Screen-shot-2010-12-01-at-08.48.57-628x577.png" alt="" width="628" height="577" /><p class="wp-caption-text">Black version</p></div>
<p>So far the response on Twitter is 3:2 against the switch. Clearly we need more data &#8211; please <a href="http://www.twitter.com/LCFLondon">@LCFLondon</a> your thoughts.</p>
<p><strong>Update @ 22 Dec 2010</strong></p>
<p>So&#8230; as you can see the LCF website is no longer black. Despite a lot of support within the College, the black scheme was thought by certain members of the central University communications team to be too out of keeping with the existing brand identity. Our response was that, if we couldn&#8217;t develop our design any further, we were better off reverting to the original.</p>
<p>Hopefully at some point in the future we will be able to assert our own College brand identity independently of the University&#8217;s federal structure. However, this will require a culture shift throughout the organisation and probably a reappraisal of the entire website architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2010/12/lcf-back-to-black/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extending the WordPress Campaign Monitor Addon plugin</title>
		<link>http://www.strangerpixel.com/2010/10/extending-the-wordpress-campaign-monitor-addon-plugin/</link>
		<comments>http://www.strangerpixel.com/2010/10/extending-the-wordpress-campaign-monitor-addon-plugin/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 16:59:07 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Campaign Monitor]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=519</guid>
		<description><![CDATA[A starting point for customising the WordPress Campaign Monitor Addon plugin, for using WordPress forms to maintain detailed contact lists in Campaign Monitor. By extending the Contact Form 7 plugin with the Campaign Monitor Addon, and with a little help &#8230; <a href="http://www.strangerpixel.com/2010/10/extending-the-wordpress-campaign-monitor-addon-plugin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A starting point for customising the WordPress <a href="http://www.campaignmonitor.com/downloads/wordpress-contact-form-7-plugin/">Campaign Monitor Addon plugin</a>, for using WordPress forms to maintain detailed contact lists in Campaign Monitor.</p>
<p>By extending the <a href="http://wordpress.org/extend/plugins/contact-form-7/">Contact Form 7 plugin</a> with the Campaign Monitor Addon, and with a little help from my colleague <a href="http://twitter.com/djkofi">Mouhannad Al-Sayegh</a>, I was able to unlock a pretty powerful combination that enables all kinds of list management functions using the <a href="http://www.campaignmonitor.com/api/">Campaign Monitor API</a>.</p>
<p><strong>Campaign Monitor</strong></p>
<p>To start you&#8217;ll need an account with Campaign Monitor, and a demo list for testing purposes.</p>
<p><strong>Contact Form 7</strong></p>
<p>This plugin is super-flexible and easy to use if you know a little HTML and the rudiments of building forms. If you haven&#8217;t already you&#8217;ll need to install the plugin and create a demo form.</p>
<p><strong>Campaign Monitor Addon</strong></p>
<p>When installed and activated, this plugin appends a module to your form. No need for me to go into detail here &#8211; read <a href="http://www.bettigole.us/published-work/wordpress-contributions/campaign-monitor-addon-for-contact-form-7/">Joshua Bettigole&#8217;s instructions</a> and download his excellent manual on the steps required.</p>
<p><strong>Connecting to Campaign Monitor</strong></p>
<p>By default the Campaign Monitor Addon provides two fields for subscriber data:</p>
<ul>
<li>Subscriber Email</li>
<li>Subscriber Name</li>
</ul>
<p>It takes these fields and feeds them to the <em>subscriberAdd</em> method:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">$result = $cm-&amp;gt;subscriberAdd($email, $name);</pre>
<p><strong>Custom fields</strong></p>
<p>So far so good &#8211; but I wanted to process additional fields from the form. Campaign Monitor allows you to <a href="http://help.campaignmonitor.com/topic.aspx?t=33">add custom fields to lists</a> (e.g. business name, country, gender, website URL, etc.) so I wanted to harvest this data directly from my contact form.</p>
<p>First of all I needed to modify cf7-campaignmonitor.php. I added new form fields to the existing list:</p>
<pre class="brush: php; title: ; notranslate">
&lt;div class=&quot;mail-field&quot;&gt;
        &lt;label for=&quot;wpcf7-campaignmonitor-email&quot;&gt;&lt;/label&gt;
&lt;input id=&quot;wpcf7-campaignmonitor-email&quot; class=&quot;wide&quot; name=&quot;wpcf7-campaignmonitor[email]&quot; size=&quot;70&quot; type=&quot;text&quot; value=&quot;&amp;lt;?php echo esc_attr( $cf7_cm['email'] ); ?&amp;gt;&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;mail-field&quot;&gt;
        &lt;label for=&quot;wpcf7-campaignmonitor-name&quot;&gt;&lt;/label&gt;
&lt;input id=&quot;wpcf7-campaignmonitor-name&quot; class=&quot;wide&quot; name=&quot;wpcf7-campaignmonitor[name]&quot; size=&quot;70&quot; type=&quot;text&quot; value=&quot;&amp;lt;?php echo esc_attr( $cf7_cm['name'] ); ?&amp;gt;&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;mail-field&quot;&gt;
        &lt;label for=&quot;wpcf7-campaignmonitor-accept&quot;&gt;&lt;/label&gt;
&lt;input id=&quot;wpcf7-campaignmonitor-accept&quot; class=&quot;wide&quot; name=&quot;wpcf7-campaignmonitor[accept]&quot; size=&quot;70&quot; type=&quot;text&quot; value=&quot;&amp;lt;?php echo esc_attr( $cf7_cm['accept'] ); ?&amp;gt;&quot; /&gt;&lt;/div&gt;
&lt;!-- Additional form fields --&gt;
&lt;div class=&quot;mail-field&quot;&gt;
        &lt;label for=&quot;wpcf7-campaignmonitor-business&quot;&gt;&lt;/label&gt;
&lt;input id=&quot;wpcf7-campaignmonitor-business&quot; class=&quot;wide&quot; name=&quot;wpcf7-campaignmonitor[business]&quot; size=&quot;70&quot; type=&quot;text&quot; value=&quot;&amp;lt;?php echo esc_attr( $cf7_cm['business'] ); ?&amp;gt;&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;mail-field&quot;&gt;
        &lt;label for=&quot;wpcf7-campaignmonitor-website&quot;&gt;&lt;/label&gt;
&lt;input id=&quot;wpcf7-campaignmonitor-website&quot; class=&quot;wide&quot; name=&quot;wpcf7-campaignmonitor[website]&quot; size=&quot;70&quot; type=&quot;text&quot; value=&quot;&amp;lt;?php echo esc_attr( $cf7_cm['website'] ); ?&amp;gt;&quot; /&gt;&lt;/div&gt;
</pre>
<p>These can obviously be re-ordered to suit. Next you need to modify the main wpcf7_cm_subscribe() function below:</p>
<pre class="brush: php; title: ; notranslate">$email = preg_replace_callback( $regex, $callback, $cf7_cm['email'] );
$name = preg_replace_callback( $regex, $callback, $cf7_cm['name'] );
// initialise new field variables
$business = preg_replace_callback( $regex, $callback, $cf7_cm['business'] );
$website = preg_replace_callback( $regex, $callback, $cf7_cm['website'] );
// create array for additional fields
$extraFields = array('Business Name' =&amp;gt; $business, 'Business Website' =&amp;gt; $website);
</pre>
<p>Note that &#8216;Business Name&#8217; and &#8216;Business Website&#8217; should match the custom field names you have created in Campaign Monitor.</p>
<p>Finally, we need to modify the method call. In campaignmonitor.php are listed a number of PHP wrapper functions for Campaign Monitor API methods. It&#8217;s possible to use different method calls in place of <em>subscriberAdd</em> &#8211; for example we needed to use <em>subscriberAddWithCustomFields</em>. Our previously defined $extraFields variable follows the standard $email and $name:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">$result = $cm-&amp;gt;subscriberAddWithCustomFields($email, $name, $extraFields);</pre>
<p>Campaign Monitor will check the email address against a given list. If it already exists, any new data will replace what is already in the record. Note that you need to re-supply any existing data, or it will be wiped. You may need to run a few tests to make sure your form submissions are putting the additional data in the right places.</p>
<p><strong>Checkboxes etc.</strong></p>
<p>The above example demonstrates form submission using custom fields with single values. But what happens when you want to process a set of checkboxes into a &#8216;Multi-option&#8217; custom field in Campaign Monitor?</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
$checkboxes = preg_replace_callback( $regex, $callback, $cf7_cm['checkboxes'] );
</pre>
<p>The above line extracts the cleaned-up data from the form submission, but stores it as a string e.g. &#8216;category 1, category 2, category 3&#8242; etc. What I wanted was to put each comma-separated value into its own option inside of a multi-option custom field &#8211; so an additional step was required:</p>
<pre class="brush: php; title: ; notranslate">
$checkboxes = preg_replace_callback( $regex, $callback, $cf7_cm['checkboxes'] );
// explode the string into an array
$checkboxArray = explode(&quot;, &quot;, $checkboxes);
// create array for additional fields
$extraFields = array('Business Name' =&amp;gt; $business, 'Business Website' =&amp;gt; $website, 'Categories' =&amp;gt; $checkboxArray);
</pre>
<p>This is really just scratching the surface of what could be developed using these tools &#8211; but hopefully it helps people trying to move beyond the standard tutorials and installation instructions already out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2010/10/extending-the-wordpress-campaign-monitor-addon-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to fix cd: Too many arguments</title>
		<link>http://www.strangerpixel.com/2010/08/how-to-fix-cd-too-many-arguments/</link>
		<comments>http://www.strangerpixel.com/2010/08/how-to-fix-cd-too-many-arguments/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 13:00:38 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=412</guid>
		<description><![CDATA[Probably a really easy one &#8211; but, being a command-line newbie, I had to guess this after several fruitless Google searches. When using Terminal to navigate your folder system, you will occasionally run into a folder with a space in &#8230; <a href="http://www.strangerpixel.com/2010/08/how-to-fix-cd-too-many-arguments/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Probably a really easy one &#8211; but, being a command-line newbie, I had to guess this after several fruitless Google searches.</p>
<p>When using Terminal to navigate your folder system, you will occasionally run into a folder with a space in its name, like /Application Support. Trying to access a folder, e.g.:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>Alastair-Mucklows-Computer:~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #7a0874; font-weight: bold;">&#93;</span> alastair<span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">cd</span> Application Support</pre></div></div>

<p>will trigger the error:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span>: Too many arguments.</pre></div></div>

<p>The solution is to wrap the folder name in quotes, like so:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>Alastair-Mucklows-Computer:~<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #7a0874; font-weight: bold;">&#93;</span> alastair<span style="color: #000000; font-weight: bold;">%</span> <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #ff0000;">&quot;Application Support&quot;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2010/08/how-to-fix-cd-too-many-arguments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GQ redesign</title>
		<link>http://www.strangerpixel.com/2010/02/gq-redesign/</link>
		<comments>http://www.strangerpixel.com/2010/02/gq-redesign/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 14:13:27 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[GQ]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[webdesign]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=342</guid>
		<description><![CDATA[There are a lot of things to like about the new GQ web design. great black, white and gold colour scheme (with yellow highlights) a well-ordered grid elegant, uncluttered navigation chunky footer plenty of whitespace and breathing room around the &#8230; <a href="http://www.strangerpixel.com/2010/02/gq-redesign/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>There are a lot of things to like about the new GQ web design.</p>
<ul>
<li>great black, white and gold colour scheme (with yellow highlights)</li>
<li>a well-ordered grid</li>
<li>elegant, uncluttered navigation</li>
<li>chunky footer</li>
<li>plenty of whitespace and breathing room around the text</li>
</ul>
<div id="attachment_343" class="wp-caption alignnone" style="width: 480px"><a href="http://www.strangerpixel.com/blog/wp-content/uploads/2010/02/gq-main.jpg"><img class="size-medium wp-image-343" title="gq-main" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/02/gq-main-470x345.jpg" alt="GQ.com gets a makeover." width="470" height="345" /></a><p class="wp-caption-text">GQ.com gets a makeover.</p></div>
<div id="attachment_344" class="wp-caption alignnone" style="width: 480px"><a href="http://www.strangerpixel.com/blog/wp-content/uploads/2010/02/gq-gallery.jpg"><img class="size-medium wp-image-344" title="gq-gallery" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/02/gq-gallery-470x345.jpg" alt="Girls gallery page." width="470" height="345" /></a><p class="wp-caption-text">Girls gallery page.</p></div>
<p>One thing &#8211; and leaving aside the xbox ad currently turning the home page background into a sea of green bubbles:</p>
<p>I&#8217;d be interested to know the rationale behind <em>not</em> using a similar <a href="http://jquery.com/">jQuery</a> <a href="http://flowplayer.org/tools/scrollable.html">carousel</a> on the <a href="http://www.gq-magazine.co.uk/girls/gq-girls/cheryl-cole/girl">individual feature pages</a> as implemented on the <a href="http://www.gq-magazine.co.uk/style">section pages</a>. A fresh page-load for every image just feels so clunky these days, and there are surely AJAX solutions to allow a more fluid browsing experience whilst maintaining reasonable loading times.</p>
<p>So what&#8217;s the reason? Extra pages for serving extra ads? Image bookmarking? Concern about presenting high-quality images without a performance hit, especially on slower connections?</p>
<p>Finally &#8211; the typographical double act of Georgia and Arial is undoubtedly a classic combo (used by the <a href="http://www.guardian.co.uk/">Guardian</a> and <a href="http://www.arts.ac.uk/">many</a>, many others). But my guess is that with the <a href="http://arstechnica.com/web/news/2009/07/font-face-typekit-and-font-licensing-the-state-of-web-type.ars">gradual evolution of web typography</a>, embracing the <a href="http://craigmod.com/journal/font-face/">potential</a> of the @font-face CSS rule and of <a href="http://wiki.github.com/sorccu/cufon/">Cufón</a>, sites that use this staple set of <a href="http://safalra.com/web-design/typography/web-safe-fonts-myth/">traditional web-safe fonts</a> will begin to look dated over the next few years.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2010/02/gq-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wanted &#8211; Gumtree&#8217;s map view</title>
		<link>http://www.strangerpixel.com/2010/01/flatmate-wanted-gumtrees-map-view/</link>
		<comments>http://www.strangerpixel.com/2010/01/flatmate-wanted-gumtrees-map-view/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 14:11:26 +0000</pubDate>
		<dc:creator>Alastair</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[flat]]></category>
		<category><![CDATA[globrix]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[gumtree]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.strangerpixel.com/?p=330</guid>
		<description><![CDATA[Having flat-hunted previously, lately I&#8217;ve been flatmate-hunting: searching for a replacement tenant for my room in Highgate, north London. As a rule, during the 5 years I&#8217;ve lived in the city, I&#8217;ve found finding new flatmates fairly easy; but, since I&#8217;ve &#8230; <a href="http://www.strangerpixel.com/2010/01/flatmate-wanted-gumtrees-map-view/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having <a href="http://www.strangerpixel.com/2007/08/flat-hunting-with-flash/">flat-hunted previously</a>, lately I&#8217;ve been flatmate-hunting: searching for a replacement tenant for my room in Highgate, north London. As a rule, during the 5 years I&#8217;ve lived in the city, I&#8217;ve found finding new flatmates fairly easy; but, since I&#8217;ve ended up moving out in the quiet month of January, I&#8217;ve been encouraged to get the most out of a few key websites.</p>
<p><strong>Gumtree</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Gumtree">Gumtree</a>, &#8216;the UK&#8217;s biggest website for local community classifieds&#8217;, has changed a fair bit since I first started using it. I really admired the major redesign that happened (I guess) at some point in 2008: the familiar colour scheme and branding were incorporated into a much smoother experience, preserving the community feel whilst making everything a whole lot easier for the individual &#8211; whether posting, buying or selling. As I write it looks like the &#8216;classic&#8217; Gumtree is again being superseded by <a href="http://blog.gumtree.com/redesign/">a sexier incarnation</a>.</p>
<div id="attachment_331" class="wp-caption alignnone" style="width: 480px"><a href="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/gumtree.jpg"><img class="size-medium wp-image-331" title="gumtree" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/gumtree-470x365.jpg" alt="gumtree" width="470" height="365" /></a><p class="wp-caption-text">The clean and effective Gumtree UI.</p></div>
<p>Is Gumtree the last word in classifieds? Sure: you post, the customers/tenants come running. But this time my response rate has been quite low &#8211; 2 physical viewings from 300+ hits on the website. Aside from the fact that this is January and the coldest winter for 30 years, and my room doesn&#8217;t have a radiator, what could it be?</p>
<p><strong>Map view</strong></p>
<p>I blame the gradual demise of the <strong>map view</strong> for property searches. Formerly on Gumtree, you could view a Google map displaying as many properties as your search terms allowed, with a little red tree marking each house, flat or garage. You could type in &#8216;London&#8217; and get literally everything on offer. Admittedly, it used to make Safari go wonky, but it was more useable than not.</p>
<p>[Gumtree should correct me if I'm wrong here, but this is my hunch.] In the redesign, with the advent of monetised customer interactions (like paying £4 to have your ad &#8216;bumped&#8217; up the listings), the universal map view was replaced by a map that only showed 30 properties per page (by default the top ones in whichever list), leaving the user to click to the next set. Clearly, this privileged the newer posts and incentivised posters to pay that £4 in order to get more hits.</p>
<div id="attachment_336" class="wp-caption alignnone" style="width: 480px"><a href="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/gumtree-map.jpg"><img class="size-medium wp-image-336" title="gumtree-map" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/gumtree-map-470x407.jpg" alt="The new Gumtree map view." width="470" height="407" /></a><p class="wp-caption-text">The new Gumtree map view - now with green blobs.</p></div>
<p>I would like to see Gumtree reinstate the global, un-paged map &#8211; because I think it allows greater flexibility of search. Let&#8217;s say I wanted to view all properties, however recently posted, in a small area near Hampstead Heath. Instead of being able to zoom the map in and see every property, I would now need to page through 10 or more pages of results before a green blob popped up where I wanted it to. Not only that, but every time I load a new result set, the map zooms right out to accommodate all blobs &#8211; from Walthamstow to White City.</p>
<p>Sure, I could make my search terms more precise, but the beauty of the global catch-all map is that you don&#8217;t have to refine anything and thus risk missing somewhere that falls just outside of your terms &#8211; you just browse.</p>
<p><strong>Globrix</strong></p>
<p>If <a href="http://www.globrix.com/">Globrix</a> did flatshare, they would be my first choice. Theirs is the best property search interface bar none:</p>
<ul>
<li>awesomely granular search filters</li>
<li>global map search (properties pop up as you drag the map)</li>
<li>draggable price slider</li>
</ul>
<p>Not to mention an abundance of stats and graphs on individual property pages, which display everything from median house prices in the area to typical crime rates.</p>
<div id="attachment_334" class="wp-caption alignnone" style="width: 480px"><a href="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/globrix.jpg"><img class="size-medium wp-image-334" title="globrix" src="http://www.strangerpixel.com/blog/wp-content/uploads/2010/01/globrix-470x365.jpg" alt="globrix" width="470" height="365" /></a><p class="wp-caption-text">Globrix&#39;s property map interface - with sliders!</p></div>
<p>The only problem with Globrix is the trade&#8217;s apparent lack of confidence in it. Being a search aggregator, it inevitably takes longer to update than estate agents&#8217; own websites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.strangerpixel.com/2010/01/flatmate-wanted-gumtrees-map-view/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

