<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Blog of Shaun McCran - Architecting robust, elegant technical and business solutions - Google</title>
			<link>http://www.mccran.co.uk/index.cfm</link>
			<description>I write about Architecture and Design, Architectural patterns, Architectural Principles and Architectural policies. This includes TOGAF, Zachman, Business Architecture, SOA and Process and tools such as the IBM Rational software and Adobe products. I also write about my previous life as a mobile and web developer.</description>
			<language>en-gb</language>
			<pubDate>Tue, 09 Jun 2026 06:56:16 -0000</pubDate>
			<lastBuildDate>Mon, 03 Jun 2013 05:46:00 -0000</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>shaun@mccran.co.uk</managingEditor>
			<webMaster>shaun@mccran.co.uk</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>shaun@mccran.co.uk</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Where is Google music stored on the Android OS?</title>
				<link>http://www.mccran.co.uk/index.cfm/2013/6/3/Where-is-Google-music-stored-on-the-Android-OS</link>
				<description>
				
				After synchronising several albums into the Google Music service recently I thought I&apos;d copy them from my mobile onto my work laptop, as I can&apos;t install Google Music manager on it, with Corporate security policies and all that.
&lt;p&gt;
Having a dig around on the mobile I couldn&apos;t find the music files anywhere. How was I to copy my music? Turns out that Google Music stores the music files in a sector of the memory card that you cannot access unless you have root access.
&lt;p&gt;
&lt;code&gt;
/mnt/sdcard/Android/data/com.google.android.music/cache/music
&lt;/code&gt;
&lt;p&gt;
So you cannot move them around easily. Also watch out for the fact that Google Music applies its own indexing system so all your files are renamed to match a cloud based index database. They have numeric names now instead of the original ones. To work out what each song is you&apos;ll have to listen to them each in turn.
				
				</description>
				
				
				<category>Google</category>
				
				<category>Android</category>
				
				<category>Mobile</category>
				
				<pubDate>Mon, 03 Jun 2013 05:46:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2013/6/3/Where-is-Google-music-stored-on-the-Android-OS</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>How Business and Government are trying to manage your Google experience</title>
				<link>http://www.mccran.co.uk/index.cfm/2012/7/20/How-Business-and-Government-are-trying-to-manage-your-Google-experience</link>
				<description>
				
				Governments and businesses are continually trying to interfere with how users find their web content. Not by the same means as developers and marketers, IE good SEO principles and an actual strategy, but by trying to change fundamental elements of the search system.
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>General Interest</category>
				
				<category>SEO Methodologies</category>
				
				<pubDate>Fri, 20 Jul 2012 05:28:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2012/7/20/How-Business-and-Government-are-trying-to-manage-your-Google-experience</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Simple JQuery Google Analytics tracking object</title>
				<link>http://www.mccran.co.uk/index.cfm/2012/1/11/Simple-JQuery-Google-Analytics-tracking-object</link>
				<description>
				
				Each time I build a new project I find myself adding in several common objects from a variety of languages. One of those objects is a JavaScript based Google Analytics tracking object.
				 [More]
				</description>
				
				
				<category>JQuery</category>
				
				<category>Google</category>
				
				<category>Javascript</category>
				
				<pubDate>Wed, 11 Jan 2012 09:07:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2012/1/11/Simple-JQuery-Google-Analytics-tracking-object</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Google is tweaking my search results</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/10/2/Google-is-tweaking-my-search-results</link>
				<description>
				
				...And I don&apos;t really like it.

Maybe Google thinks that it is serving up more relevant results as it is filtering down the results based on things I&apos;ve said or done, and things either Twitter or Facebook contacts have said.
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>SEO Methodologies</category>
				
				<pubDate>Sun, 02 Oct 2011 09:54:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/10/2/Google-is-tweaking-my-search-results</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>What&apos;s with all the kittens? -Discovering the Easter Eggs in www.wdyl.com</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/8/11/Whats-with-all-the-kittens-Discovering-the-Easter-Eggs-in-wwwwdylcom</link>
				<description>
				
				Google recently released &apos;What do you love&apos; .com. It is a site that pulls together a whole raft of services and themes their content based on your search criteria. It performs a book search, video search and a whole load more, you can give it a try here: &lt;a href=&quot;www.wdyl.com&quot; target=&quot;_blank&quot;&gt;www.wdyl.com&lt;/a&gt;

In typical Google fashion they have not left the site in a merely &apos;working&apos; state, they have added a whole load of Easter Eggs (hidden features). This article explores some of them and how they work.
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>Javascript</category>
				
				<pubDate>Thu, 11 Aug 2011 15:43:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/8/11/Whats-with-all-the-kittens-Discovering-the-Easter-Eggs-in-wwwwdylcom</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Creating in-cell drop down lists in Google Spreadsheets</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/6/15/Creating-incell-drop-down-lists-in-Google-Spreadsheets</link>
				<description>
				
				I use Google Docs a lot, especially the Google Docs Spreadsheet format. Recently I wanted to give users the option of selecting one value from several pre-defined values rather than an open field. I thought that the best way to do this would be through a drop down list attached to the cell, but how to do this?
&lt;p&gt;
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>General Interest</category>
				
				<pubDate>Wed, 15 Jun 2011 08:27:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/6/15/Creating-incell-drop-down-lists-in-Google-Spreadsheets</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Dynamically adding markers to Google maps</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/1/15/Dynamically-adding-markers-to-Google-maps</link>
				<description>
				
				&lt;p&gt;
Following on from a previous article I wrote about (&lt;a href=&quot;http://www.mccran.co.uk/index.cfm/2011/1/11/Google-maps-panning-example&quot;&gt;Google maps panning&lt;/a&gt; the next step in my Google mapping project is to be able to add markers to a Google map dynamically.
&lt;p&gt;
This article deals with how to translate a location into a latitude and longitude using Google, and how to send and add markers from a database into a Google maps via a remote service, using AJAX and JSON.
&lt;p&gt;
There is a full example of the finished application here: &lt;a href=&quot;http://www.mccran.co.uk/examples/maps/recording.cfm&quot; target=&quot;_blank&quot;&gt;Demo of dynamically adding markers to Google maps&lt;/a&gt;
&lt;p&gt;
				 [More]
				</description>
				
				
				<category>JQuery</category>
				
				<category>Google</category>
				
				<category>Development</category>
				
				<category>Coldfusion</category>
				
				<category>AJAX</category>
				
				<pubDate>Sat, 15 Jan 2011 19:24:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/1/15/Dynamically-adding-markers-to-Google-maps</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Google maps panning example</title>
				<link>http://www.mccran.co.uk/index.cfm/2011/1/11/Google-maps-panning-example</link>
				<description>
				
				I&apos;ve been tinkering with the Google Maps Api recently, in an effort to replicate a flash project I&apos;ve seen. It was a Google maps interface that used Adobe livecycle (&lt;a href=&quot;http://www.adobe.com/products/livecycle/&quot; target=&quot;_blank&quot;&gt;http://www.adobe.com/products/livecycle/&lt;/a&gt;) feeds to poll IP addresss and display them within the map interface.
&lt;p&gt;
I liked the look of it, but wanted to create it in JQuery as it required a lot of custom server side code, and several expensive server software installations. Also I&apos;m migrating away from the flash / flex arena into a more purist JQuery / AJAX development mindset.
&lt;p&gt;
There is a full example of &lt;a href=&quot;http://www.mccran.co.uk/examples/maps/&quot; target=&quot;_blank&quot;&gt;Google Maps panning here&lt;/a&gt;
&lt;p&gt;
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>Javascript</category>
				
				<pubDate>Tue, 11 Jan 2011 23:46:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2011/1/11/Google-maps-panning-example</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Integrating Google search into your site using ColdFusion and XML</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/3/12/Integrating-Google-search-into-your-site-using-ColdFusion-and-XML</link>
				<description>
				
				Rather than writing a custom search, and indexing service for your sites you can use Google to do the leg work for you.
&lt;p&gt;
This article examines how you can create and integrate a Google site search into your site. We will query Google and return an XML packet, which we will translate and display within our sites framework.
&lt;p&gt;
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>Development</category>
				
				<category>Coldfusion</category>
				
				<pubDate>Fri, 12 Mar 2010 15:13:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/3/12/Integrating-Google-search-into-your-site-using-ColdFusion-and-XML</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Tracking single page sites with Google analytics code</title>
				<link>http://www.mccran.co.uk/index.cfm/2010/3/7/Tracking-single-page-sites-with-Google-analytics-code</link>
				<description>
				
				If you have a framework that controls the URL in some way then you may have an issue when it comes to Google Analytics tracking. In this blog entry I will examine how to alter your GA tracking so that you can specify custom URL values to track. I will then apply this to a FuseBox framework.

Traditionally Google Analytics code tracks each page impression by capturing the URL and all values of the Query string, storing it in a cookie and sending it back to the Google search engine through a JavaScript call. When all your site / applications pages are &quot;index.cfm&quot; it may prove difficult to generate useful Analytics information.

In this example I am using a FuseBox framework. If you are unfamiliar with this, the premise is that all the templates use &quot;index.cfm&quot; and then pass through two parameters. The first is the component to use as a controller (we will use public.cfc) and the second value is the function name to call within that controller. So our URL may look like this:

&lt;code&gt;
www.mysite.com/index.cfm?go=public.login
&lt;/code&gt;
				 [More]
				</description>
				
				
				<category>Google</category>
				
				<category>Best practices</category>
				
				<category>Javascript</category>
				
				<pubDate>Sun, 07 Mar 2010 18:45:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2010/3/7/Tracking-single-page-sites-with-Google-analytics-code</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Firefox not displaying Google maps generated images</title>
				<link>http://www.mccran.co.uk/index.cfm/2009/6/30/Firefox-not-displaying-Google-maps-generated-images</link>
				<description>
				
				My latest Google maps lookup template was not working in Firefox 3.n. It was working fine in IE 8 (and 8) so I thought maybe IE was compensating for some shaky JavaScript code, and &apos;working out&apos; what I was trying to do and fixing it for me.

After spending half an hour painstaking going through my Google JavaScript and removing everything out of my FuseBox framework, just in case anything was mysteriously interfering, I was at a dead end.

A quick flick around online and it seems that there is a setting in FireFox that blocks this sort of functionality.

&lt;ol&gt;
&lt;li&gt;Type &apos;about:config&apos; (without quotes) in the browser&apos;s address bar. &lt;/li&gt;
&lt;li&gt;Type &apos;image&apos; (without quotes) in the &apos;Filter&apos; field. &lt;/li&gt;
&lt;li&gt;Verify that &apos;dom.disable_image_src_set&apos; is set to FALSE.&lt;/li&gt; 
&lt;li&gt;Verify that &apos;permissions.default.image&apos; is set to 0 (the default setting). &lt;/li&gt;
&lt;/ol&gt;

&lt;img src=&quot;http://www.mccran.co.uk/images/images//dragons.gif&quot; alt=&quot;FireFox settings about:config&quot;&gt;

For some reason in my FireFox installation the &apos;permissions.default.image&apos; was set to 1, which blocks the function return from Google.

Google has a tech note on it here:

&lt;a href=http://maps.google.com/support/bin/answer.py?answer=18529&amp;topic=10789 target=&quot;new&quot;&gt; http://maps.google.com/support/bin/answer.py?answer=18529&amp;topic=10789&lt;/a&gt;

It is really frustrating when &apos;controls&apos; are set outside of the development environment. Now to put all my code back!
				
				</description>
				
				
				<category>Google</category>
				
				<category>Browsers</category>
				
				<category>Javascript</category>
				
				<category>Web technologies</category>
				
				<pubDate>Tue, 30 Jun 2009 15:50:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2009/6/30/Firefox-not-displaying-Google-maps-generated-images</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Geo coding Latitude and Longitude address in coldfusion using CFhttp</title>
				<link>http://www.mccran.co.uk/index.cfm/2009/6/29/Geo-coding-Latitude-and-Longitude-addresss-in-coldfusion-using-CFhttp</link>
				<description>
				
				One piece of recently functionality to a site I&apos;m writing is the ability to look up places on a Google powered map.

There are a variety of ways to insert a Google map into your site, but the first real hurdle is the lookup code. 

Google does not use an address to position its map, it uses the Latitude and Longitude co-ordinates to place the map area around the desired location.

Google has pretty extensive documentation around this here:

&lt;a href=http://code.google.com/apis/maps/documentation/geocoding/index.html target=&quot;new&quot;&gt;http://code.google.com/apis/maps/documentation/geocoding/index.html&lt;/a&gt;

Rather than translate the locations on the fly on a per-hit basis I thought I would perform the lookup when the record is submitted to the database, that way I can cut down the number of google hits, and just reference the local data. Google also prefers this method, as it is less process intensive on their end of things.

First you need an API key: 

&lt;a href=&quot; http://code.google.com/apis/maps/signup.html&quot; target=&quot;new&quot;&gt; http://code.google.com/apis/maps/signup.html&lt;/a&gt;

This application already has methods for setting the data in a table, so I am simply going to call another packaged method to calculate the latitude and longitude, and store them in the table with the other data.

&lt;code&gt;
	&lt;cffunction name=&quot;fetchGeo&quot; displayname=&quot;fetch Geo&quot; hint=&quot;Gets the Geo lat long for an address: docs at http://code.google.com/apis/maps/documentation/geocoding/index.html&quot; access=&quot;public&quot; output=&quot;false&quot; returntype=&quot;struct&quot;&gt;
		&lt;cfargument name=&quot;address&quot; displayName=&quot;Address to Geo&quot; type=&quot;string&quot; hint=&quot;String of the address to Geo code&quot; required=&quot;true&quot; /&gt;
		&lt;cfset var geoDetails = structNew()&gt;

		&lt;cfset var apiKey = &quot;Your API key here&quot;&gt;

		&lt;!--- initial string ---&gt;
		&lt;cfset var requestString = &quot;http://maps.google.com/maps/geo?&quot;&gt;

		&lt;!--- q= address to geo code ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;q=28+Morley+Street,Swindon,SN1+1SG&quot; &amp; &quot;&amp;&quot;&gt;

		&lt;!--- key = API key ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;key=&quot; &amp; apiKey &amp; &quot;&amp;&quot;&gt;

		&lt;!--- sensor = does the requestor have a location sensor? ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;sensor=false&quot; &amp; &quot;&amp;&quot;&gt;

		&lt;!--- output = output format ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;output=csv&quot; &amp; &quot;&amp;&quot;&gt;

		&lt;!--- oe = output encoding format ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;oe=utf8&quot; &amp; &quot;&amp;&quot;&gt;

		&lt;!--- gl= Country code pointer ---&gt;
		&lt;cfset requestString = requestString &amp; &quot;gl=uk&quot;&gt;

		&lt;cfhttp url=&quot;#requestString#&quot; method=&quot;get&quot; result=&quot;response&quot;&gt;&lt;/cfhttp&gt;

		&lt;!--- returns 4 elements statuscode/accuracy/lat/long
			  Higher accuracy is better  ---&gt;
		&lt;cfset geoDetails.status = listGetAt(response.filecontent,&apos;1&apos;,&apos;,&apos;)&gt;
		&lt;cfset geoDetails.accuracy = listGetAt(response.filecontent,&apos;2&apos;,&apos;,&apos;)&gt;
		&lt;cfset geoDetails.lat = listGetAt(response.filecontent,&apos;3&apos;,&apos;,&apos;)&gt;
		&lt;cfset geoDetails.long = listGetAt(response.filecontent,&apos;4&apos;,&apos;,&apos;)&gt;

		&lt;cfreturn geoDetails /&gt;
	&lt;/cffunction&gt;

&lt;/code&gt;

As you can see from above, I am simply creating a text string URL, and using cfhttp to GET the result from http://maps.google.com/maps/geo?

The screenshot below show the returned responses, and the http status code.

&lt;img src=&quot;http://www.mccran.co.uk/images/images//googleResponse1.jpg&quot;&gt;

The result is parsed into a struct and returned to the parent function to be stored. Far less overhead than doing this for every map call.

Please note that this is far more heavily commented for Blog purposes. Now to actually call the service using the lat and long variables stored, but thats another article.
				
				</description>
				
				
				<category>Google</category>
				
				<category>Development</category>
				
				<category>Coldfusion</category>
				
				<category>Web technologies</category>
				
				<pubDate>Mon, 29 Jun 2009 17:32:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2009/6/29/Geo-coding-Latitude-and-Longitude-addresss-in-coldfusion-using-CFhttp</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Gmail default groups do not sync - Family,Friends,Co-Workers</title>
				<link>http://www.mccran.co.uk/index.cfm/2009/6/25/Gmail-default-groups-do-not-sync--FamilyFriendsCoWorkers</link>
				<description>
				
				One &apos;feature&apos; that I&apos;ve recently found through getting hands on with the Android operating system is synchronising contacts.

After re arranging all my contacts in Gmail I couldn&apos;t figure out why some of them were not syncing. I hadn&apos;t noticed that Gmail creates three default Groups for you. &apos;Family&apos;, &apos;Friends&apos; and &apos;Coworkers&apos; are all default groups created and managed by Gmail. You cannot delete or rename them, and they will not Sync! In fact they do not even appear in the Android groups listing!

I cannot find any options to change this, so my only recommendation is to create a similarly named group, and move everyone into that. I&apos;ve created &apos;Friends.&apos;, and that seems to have done the trick.

If anyone knows how to get around this, please share!
				
				</description>
				
				
				<category>Google</category>
				
				<category>Android</category>
				
				<category>Gadgets</category>
				
				<pubDate>Thu, 25 Jun 2009 11:53:00 -0000</pubDate>
				<guid>http://www.mccran.co.uk/index.cfm/2009/6/25/Gmail-default-groups-do-not-sync--FamilyFriendsCoWorkers</guid>
				
				
			</item>
			
		 	
			</channel></rss>