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

<channel>
	<title>Simon Kenyon Shepard :: justLikeThat.</title>
	<atom:link href="http://www.trisis.co.uk/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.trisis.co.uk/blog</link>
	<description>Trying to ameliorate the web, byte by byte.</description>
	<pubDate>Tue, 13 Mar 2012 22:26:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Favourite web video of 2011</title>
		<link>http://www.trisis.co.uk/blog/?p=1530</link>
		<comments>http://www.trisis.co.uk/blog/?p=1530#comments</comments>
		<pubDate>Tue, 13 Mar 2012 22:24:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1530</guid>
		<description><![CDATA[
Earth &#124; Time Lapse View from Space, Fly Over &#124; NASA, ISS from Michael König on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/32001208?title=0&amp;byline=0&amp;portrait=0" width="555" height="312" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/32001208">Earth | Time Lapse View from Space, Fly Over | NASA, ISS</a> from <a href="http://vimeo.com/michaelkoenig">Michael König</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1530</wfw:commentRss>
		</item>
		<item>
		<title>Good resources on understanding 3d programming</title>
		<link>http://www.trisis.co.uk/blog/?p=1526</link>
		<comments>http://www.trisis.co.uk/blog/?p=1526#comments</comments>
		<pubDate>Tue, 13 Mar 2012 20:16:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1526</guid>
		<description><![CDATA[http://ajaxian.com/archives/tricks-from-our-flash-friends-3d-in-a-2d-context
]]></description>
			<content:encoded><![CDATA[<p><a href="http://ajaxian.com/archives/tricks-from-our-flash-friends-3d-in-a-2d-context">http://ajaxian.com/archives/tricks-from-our-flash-friends-3d-in-a-2d-context</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1526</wfw:commentRss>
		</item>
		<item>
		<title>Complicated systems reduce your flexibility.</title>
		<link>http://www.trisis.co.uk/blog/?p=1438</link>
		<comments>http://www.trisis.co.uk/blog/?p=1438#comments</comments>
		<pubDate>Sun, 12 Feb 2012 18:54:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1438</guid>
		<description><![CDATA[Once upon a time, I used to work in the heart of London, in Covent Garden to be exact, as a freelance web developer.
However, during that period, I lived in Brighton, so every morning, I would wake up at some ungodly hour, pop myself on the train and commute up to London Victoria, where I [...]]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, I used to work in the heart of London, in Covent Garden to be exact, as a freelance web developer.</p>
<p>However, during that period, I lived in Brighton, so every morning, I would wake up at some ungodly hour, pop myself on the train and commute up to London Victoria, where I would hop on the circle line eastbound and jump off at Embankment. Then do the reverse in order to arrive home in Brighton for around 8pm.</p>
<p>One sunny July day, I had finished a day of CSS template-ing for a certain government website and was on my merry way home to Brighton.</p>
<p>I had walked from Covent Garden, down Garwick Street, and onto the Strand. The air was warm and moist,  I was wearing a shirt and had a backpack on with my laptop containing the day&#8217;s code, I could feel myself begin to break a sweat.</p>
<p>I made it down the always bustling Villiers Street to the entrance of embankment tube station, the people traffic was flowing quite smoothly. My head was full of thoughts about borders, margins and fonts. In a mindless move, I pulled out my Oyster card, ready to swipe at the automatic swing door gate.</p>
<div><img src="http://www.trisis.co.uk/blog/wp-content/uploads/2012/02/oyster-card-barrier1.jpg" alt="oyster-card-barrier1" title="oyster-card-barrier1" width="230" height="150" class="aligncenter size-full wp-image-1451" /></div>
<p>While I was pulling out my card, I noticed two people ahead of me was a man (I think) that I can only describe as morbidly obese.</p>
<p>In an unfortunate series of events, he swiped his card, the doors open, he went through, and&#8230;</p>
<p>He got stuck.</p>
<p>In the middle of the automatic doors.</p>
<p>Which as part of their anti-cheating policy tried to close, but couldn&#8217;t.</p>
<p>So the alarm went off.</p>
<p>As the alarm went off, his attempts to free himself got more and more frantic.</p>
<p>Somehow, he wedged himself higher and higher, until his feet were no longer touching the ground and he was flailing with all available limbs in midair while he was stuck inbetween the doors.</p>
<p>In my commuter mindset, long before the alarm had gone off, I had subconsciously seen the potential delay and already moved to the smaller queue to the left and made it through the barriers.</p>
<p>As I looked back, my final vision of this appallingly tragic but also somehow comical situation was : a hot sweaty fat man, with a bright red face, stuck, trying to escape the barriers, being pushed through from one side by a helpful citizen, and with a loud siren piercing the airwaves meaning everyone in the near vicinity had turned to gawp in dismay at the unfolding events like a live episode of you&#8217;ve been framed.</p>
<p>I&#8217;m pretty sure this is not what the system designers had envisaged when they sat round thinking, &#8220;how can we stop people cheating the system.&#8221; but unfortunately some bright person said, &#8220;I know! Technology is the answer!&#8221;.</p>
<p>In Berlin, Germany, we don&#8217;t have barriers for the tram (advanced bus), u-bahn (underground) or s-bahn (overground).</p>
<p>Sometimes a conductor gets on the train to check your ticket and fine you if you don&#8217;t have one. Sometimes not. It&#8217;s a very simple system. It required no large investment in infrastructure and it solves the problem adequately.</p>
<p>Most importantly, I have never seen a fat person get trapped in the barriers in Berlin.</p>
<p>The thing is, people, in general, have a tendency to abuse the tools we have, to make solutions to problems more complex than they neccesarrily need to be. It&#8217;s sad but true. You see, it makes us feel more valuable, it makes our existence seem a bit more worthwhile and our pay checks justified. Who could blame us?</p>
<p>As <a href="http://www.infoq.com/presentations/Simplicity-Architect">Dan North</a> said :</p>
<blockquote><p>We are all complex-a-holics.</p></blockquote>
<p>Ultimately, simplicity rules, maybe it&#8217;s time to ask yourself:</p>
<p>Is what you&#8217;re doing as simple as it could be?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1438</wfw:commentRss>
		</item>
		<item>
		<title>Everything you know about organisations is (probably) wrong.</title>
		<link>http://www.trisis.co.uk/blog/?p=1364</link>
		<comments>http://www.trisis.co.uk/blog/?p=1364#comments</comments>
		<pubDate>Tue, 07 Feb 2012 18:58:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1364</guid>
		<description><![CDATA[Remember the film &#8220;The Matrix?&#8221;
The character Neo is locked in a dead-end job, with no friends to speak of and a generally sucky, reclusive lifestyle schackled to his desk. That&#8217;s until he stumbles across something mysterious on his computer, called &#8220;The Matrix&#8221;.
After tracking down some people who know what &#8220;The Matrix&#8221; is all about, he [...]]]></description>
			<content:encoded><![CDATA[<p>Remember the film &#8220;The Matrix?&#8221;</p>
<p>The character Neo is locked in a dead-end job, with no friends to speak of and a generally sucky, reclusive lifestyle schackled to his desk. That&#8217;s until he stumbles across something mysterious on his computer, called &#8220;The Matrix&#8221;.</p>
<p>After tracking down some people who know what &#8220;The Matrix&#8221; is all about, he eventually ends up with a choice of two pills, one red and one blue.</p>
<p><img src="http://www.trisis.co.uk/blog/wp-content/uploads/2012/02/redpillbluepill-300x210.jpg" alt="redpillbluepill" title="redpillbluepill" width="300" height="210" class="alignright size-medium wp-image-1379" /></p>
<p>The blue pill allows him to continue on with his normal life, none the wiser, having forgotten everything. Same stress, same frustrations, no change.</p>
<p>The red pill however, will allow him to escape the matrix and enter into the &#8216;real&#8217; world outside, to become part of a apocalyptic war between man and machine.</p>
<p>If you think in his shoes, you would have chosen the blue pill. You probably don&#8217;t want to read the rest of this post, or indeed this blog.</p>
<p>Oh and by the way, so you know, once you take the red pill, you can never go back. Ever. Ok?</p>
<p>To start, just for a moment, take a leap of faith, and let&#8217;s play the what if game.</p>
<p>What if :</p>
<ul>
<li>everything that school taught you was wrong.</li>
<li>every job you ever worked in, was based on this incorrect assumption learned from school.</li>
<li>Newspapers, books, television, radio, websites, politicians, businessmen and even super stars, repeated over and over again this incorrect assumption, until it was so ingrained into your psyche that you didn&#8217;t even realise it could be different.</li>
<li>your boss, your friends, your colleagues even your family, all believed this assumption.</li>
<p>It would be pretty hard to believe that it was wrong? Right?</p>
<p>Yet over the course of Human history, these events have occurred repeatedly. We even have a name for them, they are called &#8220;Galileo Events&#8221;. Their name comes from the famous Astronomer Galileo who supposed that rather than the earth being the center of the universe, the earth orbited the sun, a belief at the time so blasphemous that he was sentenced to prison for his whole remaining life.</p>
<p>Something we now take for granted as being correct, was once utterly incorrect, yet, universally accepted, taught and actively reinforced. And it wasn&#8217;t a one off.</p>
<p>So then I should not be surprised, when I find myself on the abyss of my own Galileo moment concluding:</p>
<blockquote><p>Everything you know about organisation structure, is (probably) wrong.</p></blockquote>
<p>Having read W. Edwards Deming&#8217;s - <a href="http://www.amazon.com/Out-Crisis-W-Edwards-Deming/dp/0262541157/ref=sr_1_1?ie=UTF8&#038;qid=1328640793&#038;sr=8-1">Out of the crisis</a>, Dee Hocks <a href="http://www.amazon.com/One-Many-VISA-Chaordic-Organization/dp/1576753328/ref=sr_1_3?s=books&#038;ie=UTF8&#038;qid=1328640827&#038;sr=1-3">books on visa</a>, and Peter Senge&#8217;s work on the <a href="http://www.amazon.com/Fifth-Discipline-Practice-Learning-Organization/dp/0385517254/ref=sr_1_1?s=books&#038;ie=UTF8&#038;qid=1328640886&#038;sr=1-1">fifth Discipline</a>, I finally have reached the same conclusion:</p>
<blockquote><p>We are in a period of massive institutional failure.</p></blockquote>
<p>Of which we can&#8217;t see because the failed system is drilled into us like propaganda from an early age, from when we have implicit trust and no frame of reference, the place where we spend our most formative years. School. Is the first such institution that fails us and try&#8217;s to convince us to believe that learning is centralised, finite and the goal of learning it to get the answer &#8216;right&#8217;. This is the modern day equivalent of saying the world is flat, yet all traditional thinking about organisations (and leadership) is based upon it.</p>
<p>Think about it. Hard.</p>
<p>We live in a society where :</p>
<ul>
<li>Schools can&#8217;t teach children.</li>
<li>Health-care systems can&#8217;t care for your health</li>
<li>Housing systems don&#8217;t house people.</li>
<li>Agriculture irreversibly destroys the land it uses</li>
<li>Food that has no nutritional value</li>
<li>Transport systems that can&#8217;t get you where you need to go</li>
<li>Corporations don&#8217;t co-operate</li>
<li>Police can&#8217;t enforce the law.</li>
<li>Armies can&#8217;t win wars.</li>
<li>Justice systems are no-longer just</li>
<li>Government&#8217;s can&#8217;t govern.</li>
<li>Economics that can&#8217;t economize.</li>
</ul>
<p>And yet, everyones first instinct is to assume the people who work in the organisation are to blame - because there&#8217;s no other option. The institution is sacred and always right&#8230;</p>
<p>Isn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1364</wfw:commentRss>
		</item>
		<item>
		<title>Today&#8217;s mental conundrum:</title>
		<link>http://www.trisis.co.uk/blog/?p=1362</link>
		<comments>http://www.trisis.co.uk/blog/?p=1362#comments</comments>
		<pubDate>Thu, 05 Jan 2012 12:19:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1362</guid>
		<description><![CDATA[What makes people stop looking objectively at the end result?
]]></description>
			<content:encoded><![CDATA[<blockquote><p>What makes people stop looking objectively at the end result?</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1362</wfw:commentRss>
		</item>
		<item>
		<title>Dee Hock Quote on Compensation</title>
		<link>http://www.trisis.co.uk/blog/?p=1351</link>
		<comments>http://www.trisis.co.uk/blog/?p=1351#comments</comments>
		<pubDate>Wed, 07 Dec 2011 12:17:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1351</guid>
		<description><![CDATA[Money motivates neither the best people, nor the best in people. It can move the body and influence the mind, but it cannot touch the heart or move the spirit.
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Money motivates neither the best people, nor the best in people. It can move the body and influence the mind, but it cannot touch the heart or move the spirit.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1351</wfw:commentRss>
		</item>
		<item>
		<title>Writing your own Geohash algorthim, part 2</title>
		<link>http://www.trisis.co.uk/blog/?p=1337</link>
		<comments>http://www.trisis.co.uk/blog/?p=1337#comments</comments>
		<pubDate>Wed, 16 Nov 2011 21:23:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[developement]]></category>

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

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1337</guid>
		<description><![CDATA[Ok, so earlier, I started investigating how to write a geohash algorithm in Javascript. I&#8217;m sure you&#8217;ve been waiting in eager for the results. Well dear readers, now is the time.
Below, is a geohash algorithm, based on the Maidenhead Locator system but with a few tweaks.
Firstly to get more accuracy with less characters, I replaced [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, so earlier, I started investigating how to write a geohash algorithm in Javascript. I&#8217;m sure you&#8217;ve been waiting in eager for the results. Well dear readers, now is the time.</p>
<p>Below, is a geohash algorithm, based on the Maidenhead Locator system but with a few tweaks.</p>
<p>Firstly to get more accuracy with less characters, I replaced the complicated Maidenhead codes for different characters with one set of 64 different characters for each character. They range from the lowercase alphabet to the uppercase, then the base 10 numbers, and the greater than and less than symbols.</p>
<p>With this method, effectively the globe is split into 4096 squares (64&#215;64) and then the longitude and latitude are <a href="http://en.wikipedia.org/wiki/Interleaving">interleaved</a> together, so every odd character is Longitude and every even character is Latitude. The process is then recursive, based on the level of precision you set. So after the first square is picked - 2 characters, the selected square is then split again into 4096 squares and stored as another 2 characters, this goes on so on and so forth.</p>
<p>A 1 degree arc of the earth&#8217;s surface is roughly 111,000 meters long, which means you need 5 decimal places to get around 1 meter worth of accuracy with your location. The following code takes a 5 decimal place longitude and effectively transforms it into a geohash and back again.</p>
<blockquote><p>The result it, we can take the latitude, 47.64932, convert it into a geohash of kwGK and then back again to 47.64932.</p></blockquote>
<p>In part 3, I will looking at creating a formal proof of this algorithm, possibly using induction proofs.</p>
<pre>
var lat,
latMin,
latMax,
base64A,
reduce,
calculateBoundaries,
reverseGeoHash,
geoHash,
reversed;		

latMin = -90;
latMax = 90;
base64A = "<>0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
lat = 47.64932;

reduce = function(boundaries, bucketSize, value, precision, geohash) {

	boundaries = calculateBoundaries(boundaries, bucketSize, geohash);
	var bucket = Math.floor((value - boundaries.min)*(bucketSize/(boundaries.max-boundaries.min)));
	return precision-1 > 0 ? base64A[bucket] + reduce(boundaries, bucketSize, value, precision-1, base64A[bucket]) : base64A[bucket];

};

calculateBoundaries = function(boundaries, bucketSize, geohash) {

	if(geohash.length > 0) {
		var lastGeoHash = base64A.indexOf(geohash[geohash.length-1]);
		var range = boundaries.max-boundaries.min;
		boundaries.max = (lastGeoHash+1)*(range/bucketSize)+boundaries.min;
		boundaries.min = (lastGeoHash*(range/bucketSize))+boundaries.min;

	}

	return boundaries;

};

reverseGeoHash = function(boundaries, bucketSize, geohash) {

	for(var i = 0; i < geoHash.length; i++) {

		boundaries = calculateBoundaries(boundaries, bucketSize, geohash[i]);

	}

	return Math.round((((boundaries.max-boundaries.min)/2)+boundaries.min)*100000)/100000;

};

geoHash = reduce({min:latMin, max:latMax}, base64A.length, lat, 4, 0);
reversed = reverseGeoHash({min:latMin, max:latMax}, base64A.length, geoHash);
console.log(geoHash, reversed, lat);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1337</wfw:commentRss>
		</item>
		<item>
		<title>Conway&#8217;s Law</title>
		<link>http://www.trisis.co.uk/blog/?p=1333</link>
		<comments>http://www.trisis.co.uk/blog/?p=1333#comments</comments>
		<pubDate>Wed, 09 Nov 2011 21:20:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[agile]]></category>

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

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

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1333</guid>
		<description><![CDATA[Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization&#8217;s communication structure.
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization&#8217;s communication structure.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1333</wfw:commentRss>
		</item>
		<item>
		<title>Writing your own Geohash algorthim, part 1</title>
		<link>http://www.trisis.co.uk/blog/?p=1287</link>
		<comments>http://www.trisis.co.uk/blog/?p=1287#comments</comments>
		<pubDate>Wed, 26 Oct 2011 21:06:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[developement]]></category>

		<category><![CDATA[javascript/css]]></category>

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

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

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1287</guid>
		<description><![CDATA[Sometimes you find yourself with a random computing science seeming problem that you just want to roll up your sleeves and get you hands dirty with. I had one of those moments, about 4 months ago.
Now, four months may seeeem like a really long time, but as a classic lean saying say&#8217;s, results are not [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you find yourself with a random computing science seeming problem that you just want to roll up your sleeves and get you hands dirty with. I had one of those moments, about 4 months ago.</p>
<p>Now, four months may seeeem like a really long time, but as a classic lean saying say&#8217;s, results are not the point. It may have taken four months, but in those four months I learned some valuable lessons about computer programming. I thought it would be worth sharing them.</p>
<h3>The problem.</h3>
<p>The first part of the process is to frame the problem. On <a href="http://maps.nokia.com">maps.nokia.com</a> we have some functionality that means whenever you drag the map, the url bar updates with the new latitude/longitude.</p>
<p>Which is fine.</p>
<p>Unless.</p>
<p>You live in China.</p>
<p>In China you are not allowed to display latitude/longitude. Instead you must hide it from the sight of your viewers, incase they see it and realise the world is not the distorted place they&#8217;ve been told it is by their government. Go figure. So, my problem was how to save the location, via the url bar, without using the lat/long.</p>
<p>Googling this topic leads you to three likely looking solutions.</p>
<h3>Geohash</h3>
<p>The <a href="http://en.wikipedia.org/wiki/Geohash">geohash</a> appears to be a relatively new (2008) discovery, invented by Gustavo Niemeyer, you can find the implementation at <a href="http://www.geohash.org">Geohash.org</a>.</p>
<p>I spent sometime replicating this technique in Javascript, essentially, it involves, systematic storing of deltas (or I guess diff&#8217;s for people who know source control). The starting premise is that for example, a latitude exists between -90 and 90 degrees. The first delta identifies whether it is in the first or second half of that range. So if I took the latitude, 52.51607, I would programatically ask, is that between -90 and 0 or 0 and 90, clearly it would be the latter so my first delta would be 1, if it had been -52.51607 then my delta would be 0. Doing this recursively I can then create a pattern of 1&#8217;s and 0&#8217;s that slowly drill down to my desired latitude. Then, once i&#8217;ve done that, I can take that binary string and convert it to integers between 0 and 32  and then using <a href="http://en.wikipedia.org/wiki/Base32">base32</a> represent it as a string.</p>
<p>It means for the coordinate pair 57.64911,10.40744, you end up with a geohash of u4pruydqqvj which is a saving of 6 characters (including points and the comma delimiter). Not bad. But what are the other options?</p>
<h3>Patent No : 7, 302, 343</h3>
<p>Working for Nokia, I have luxury of being able to tap into a vast treasure trove of both Microsoft and Nokia patents without the fear of being sued. Now, I&#8217;m not saying I think software patents are a good thing, but it was a relief when I found <a href="http://www.freepatentsonline.com/7302343.pdf">this patent</a> which is described as compact text encoding of Longitude/Latitude was owned by Microsoft rather than Apple. It seemed to be exactly what I was looking for.</p>
<p>This technique takes the long/lats and converts them into non-negative numbers. So for example 47.64932 converts to 18,583,657 to be honest, don&#8217;t ask me why this works, I followed the formulas in the paper and boom, got the right number, but the theory behind converting to a non-negative number is lost on me. Then with this integer, you can generate a base-n (so in this case they used base32 again) string.</p>
<p>So with the example co-ordinate pair, 47.6493, -122.12926 you end up with a hash of ry7cx4tp95, a saving of nine whole characters! Pretty damn impressive, but there was one final method I wanted to research, mainly because it was named after a place in my homeland.</p>
<h3>The Maidenhead Locator System</h3>
<p><img src="http://www.trisis.co.uk/blog/wp-content/uploads/2011/10/300px-maidenhead_grid_over_europe.png" alt="300px-maidenhead_grid_over_europe" title="300px-maidenhead_grid_over_europe" width="300" height="247" class="alignleft size-full wp-image-1309" /></p>
<p>Developed in 1980 in Maidenhead, England, this system was designed by VHF managers and used by amateur radio enthusiasts. <a href="http://en.wikipedia.org/wiki/Maidenhead_Locator_System">The Maidenhead Locator system</a> was created with the use case of being able to transmit a location within 12km accuracy in a simple 6 character string using morse code.</p>
<div style="clear: both;"></div>
<p>It essentially works on the idea of converting the world map into a grid, based on degrees and assigning them a letter or a number. Each character in the string and precisely positioned and different locations have different boundaries. An example of a Maidenhead Locator system hash is:</p>
<pre>BL11bh16</pre>
<p>Stolen from wikipedia, below is a run down of what each of the characters does.</p>
<ul>
<li>Character pairs encode longitude first, and then latitude.</li>
<li>The first pair (a field) encodes with base 18 and the letters &#8220;A&#8221; to &#8220;R&#8221;.</li>
<li>The second pair (square) encodes with base 10 and the digits &#8220;0&#8243; to &#8220;9&#8243;.</li>
<li>The third pair (subsquare) encodes with base 24 and the letters &#8220;A&#8221; to &#8220;X&#8221;.</li>
<li>The fourth pair (extended square) encodes with base 10 and the digits &#8220;0&#8243; to &#8220;9&#8243;.</li>
</ul>
<p>Interesting, a system invented in the 80&#8217;s that achieves a small, human readable hash of a lat/long with only 8 characters but alas with one large draw back, which is that it&#8217;s not as accurate as I need.</p>
<p>Having invested a large amount of time replicating in Javascript each of these techniques, I realised that what I need was a hybrid system, using the Maidenhead locator concept as a basis. In part 2, I will explore the javascript I need to write a geohash which matches the precision of the Geohash and Microsoft patent solution with the number of characters from the Maidenhead system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1287</wfw:commentRss>
		</item>
		<item>
		<title>Magic potions Vs. Continuous improvement</title>
		<link>http://www.trisis.co.uk/blog/?p=1278</link>
		<comments>http://www.trisis.co.uk/blog/?p=1278#comments</comments>
		<pubDate>Thu, 15 Sep 2011 12:02:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[agile]]></category>

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

		<category><![CDATA[continuos improvement]]></category>

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

		<guid isPermaLink="false">http://www.trisis.co.uk/blog/?p=1278</guid>
		<description><![CDATA[In order to understand something, sometimes it&#8217;s easier to understand it by defining what the opposite is.
Recently, I was trying to explain to someone the fundamental principle behind continuous improvement was. Do you ever run into the scenario where you find yourself in a conversation and you hear: 
&#8220;We need to build an X, it [...]]]></description>
			<content:encoded><![CDATA[<p>In order to understand something, sometimes it&#8217;s easier to understand it by defining what the opposite is.</p>
<p>Recently, I was trying to explain to someone the fundamental principle behind continuous improvement was. Do you ever run into the scenario where you find yourself in a conversation and you hear: </p>
<blockquote><p>&#8220;We need to build an X, it will solve all our problems and make our code bug free.&#8221;</p></blockquote>
<p>Conversations like this, immediately sound off alarm bells in my head, because what&#8217;s essentially being suggested is a magic potion, a concoction to cure all ills, an elixir of eternal life or just plain old powered tiger scrotum.</p>
<p>The overuse of hyperbole and setting truly unrealistic expectations in software development only results in continuous disappointment, and slowly kills a team spirit and stakeholder trust.</p>
<p>Aim for steady incremental continuos improvement with small achievable micro goals, know when to pat yourself and your team on the back when they have achieved them, and make sure going off solo on a magical quest to slay a dragon get&#8217;s stigmatised and not rewarded.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.trisis.co.uk/blog/?feed=rss2&amp;p=1278</wfw:commentRss>
		</item>
	</channel>
</rss>

