<?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>Pete&#039;s ponderings &#187; Web site</title>
	<atom:link href="https://peterdean.co.uk/wpblog/?cat=6&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://peterdean.co.uk/wpblog</link>
	<description>Walking the Wye Valley</description>
	<lastBuildDate>Thu, 23 Jun 2016 08:27:31 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.30</generator>
	<item>
		<title>New elevation data on this site</title>
		<link>https://peterdean.co.uk/wpblog/?p=190</link>
		<comments>https://peterdean.co.uk/wpblog/?p=190#comments</comments>
		<pubDate>Thu, 03 Oct 2013 10:25:51 +0000</pubDate>
		<dc:creator><![CDATA[Pete]]></dc:creator>
				<category><![CDATA[GPS and Maps]]></category>
		<category><![CDATA[Walking]]></category>
		<category><![CDATA[Web site]]></category>
		<category><![CDATA[elevation]]></category>
		<category><![CDATA[SRTM]]></category>

		<guid isPermaLink="false">http://peterdean.co.uk/wpblog/?p=190</guid>
		<description><![CDATA[I had been pretty disheartened by the poor accuracy of the elevation data from my Magellan eXplorist 710. I guarantee there is no walk I&#8217;ve done that I couldn&#8217;t make a better estimate at the total ascent that this GPSr can. &#8230; <a href="https://peterdean.co.uk/wpblog/?p=190">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">I had been pretty disheartened by the poor accuracy of the elevation data from my Magellan eXplorist 710. I guarantee there is no walk I&#8217;ve done that I couldn&#8217;t make a better estimate at the total ascent that this GPSr can. The device can take elevation readings from GPS, built in barometric altimeter or from it&#8217;s topographic maps. All methods are rubbish. I believe my old Garmin 60CSx used to massage the GPS and altimeter data to come up with something much closer to reality. I&#8217;d also tried other web sites, but their results were grossly exaggerated too, so I decided to build my own process. I had been using the <a title="geonames" href="http://geonames.org" target="_blank">geonames </a>web service to return SRTM elevation data, but after some research found an excellent article entitled <a title="osola" href="http://www.osola.org.uk/elevations/" target="_blank">SRTM &amp; Ordnance Survey Elevation Data in PHP</a>. The process involves having the elevation data in files on the web server. The data is laid out in a very structured way within the files so a pointer can direct a call to the precise data elements required very quickly and requiring very little server resource. This is much quicker than loading the data into a database for instance.</p>
<p style="text-align: justify;">There were two problems with geonames. Firstly it was relatively slow (it&#8217;s a web service) and secondly, there are limits to how many requests you are allowed to make. This isn&#8217;t a problem for this site, but it was for <a title="mapRoute" href="http://map-route.co.uk" target="_blank">mapRoute</a>.</p>
<p style="text-align: justify;">SRTM data has data for pretty much the surface of the planet taken at 90 metre intervals. This should be enough for my purposes. There is some OS data that&#8217;s also freely available that details the UKs elevation at 50m intervals, but it requires the location to be sent in British Grid Reference format, which I haven&#8217;t got round to looking at yet and from brief research I know it won&#8217;t be easy. (Update: I have since implemented British Grid Ref. conversion in mapRoute, but to the OS elevation data).</p>
<p style="text-align: justify;">The issue with map related elevation data often arises when you are walking at an angle to a very steep incline, say along a cliff top. The GPS measurement only needs to be a few feet out and it will report you as being at the bottom of the cliff, then the top etc. In fact, if you have elevation data for every 90m only you could still see this problem even with an accurate GPS track log. I walk a lot in the hills, so this is a significant issue for me.</p>
<p style="text-align: justify;">Historically I have reduced my track log points to just 100 before uploading to this site as I didn&#8217;t want too much data slowing down the process. Imagine the situation when you&#8217;re walking along a concave cliff top or ridge. In reducing the track points a straight line between two separated points now has you down at the bottom of a cliff given the above example.</p>
<p style="text-align: justify;">Another issue occurred when two points were at a similar elevation, but somewhere between them the elevation changed considerably. Imagine walking over the top of a hill, but the only elevations recorded were at the base of the hill on either side. This scenario would report no ascent being made. The code provided by osola allows for creating intermediate points every 3&#8243; (seconds) of a degree, which equates to approximately 90m. This too makes the resulting elevation profile too jumpy for my purposes, so I added an option to alternatively display at 6&#8243; intervals. There&#8217;s no precise science to this. It&#8217;s not always the same interval that works best for a route, hence leaving the option to the user.</p>
<p style="text-align: justify;">Integrating the data into a graph meant I needed to return the distance of each point from the start of the route as each section is not of equal length. I would then plot a scatter graph and join the points, so it looks like a line graph. This is where the process fell down when I originally looked at it using GPSr elevation data. Then the graph looked great, but was not accurate. For instance, the peak of a hill may not appear to be the same distance into the route on the graph and on the map. The only point locations you could guarantee were the first and the last. Returning the distance for each point gets around this issue. Alternatively you could return points at fixed intervals only.</p>
<p style="text-align: justify;">Along the way I Ajax-ified the returning of the data and returned the data as JSON. This led on to adding Ajax to much of the site (particularly the walk page). Then I noticed how all my pages were built on HTML tables. This is considered bad practice these days, so I then went about replacing them with DIVs and CSS. Finally, I unified my buttons and made may waypoints display on all relevant routes, not just the one they had been created against.</p>
<p style="text-align: justify;">All of the above was a great learning process, which meant I could then plug in very similar code to mapRoute. The returning of data was so quick that I was even able to return the cursor location elevation as the user moves it across the map. Note: This is turned off for basic users. I only downloaded the data for the UK (344MB), but apart from disk space and download effort there&#8217;s no reason why you couldn&#8217;t get data for any location.</p>
]]></content:encoded>
			<wfw:commentRss>https://peterdean.co.uk/wpblog/?feed=rss2&#038;p=190</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mapRoute – Creating a web application</title>
		<link>https://peterdean.co.uk/wpblog/?p=171</link>
		<comments>https://peterdean.co.uk/wpblog/?p=171#comments</comments>
		<pubDate>Thu, 05 Sep 2013 19:56:49 +0000</pubDate>
		<dc:creator><![CDATA[Pete]]></dc:creator>
				<category><![CDATA[Geocaching]]></category>
		<category><![CDATA[GPS and Maps]]></category>
		<category><![CDATA[Walking]]></category>
		<category><![CDATA[Web site]]></category>

		<guid isPermaLink="false">http://sidandbob.co.uk/peterdean.co.uk/wpblog/?p=171</guid>
		<description><![CDATA[Starting out One morning I woke up with an idea. Wouldn’t it be great to have a web application that allowed me and other walkers/hikers to plan routes. mapRoute was born. There are a few similar apps, but they are &#8230; <a href="https://peterdean.co.uk/wpblog/?p=171">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div>
<h1>Starting out</h1>
<p style="text-align: justify;">One morning I woke up with an idea. Wouldn’t it be great to have a web application that allowed me and other walkers/hikers to plan routes. <a title="mapRoute" href="http://map-route.co.uk" target="_blank">mapRoute</a> was born. There are a few similar apps, but they are all pretty limited. I wanted better mapping (UK Ordnance Survey 1:25K), ability to create and edit routes easily, then store them on the server and download them at will so I can load them onto my GPS receiver. As the project progressed my requirements grew and grew, but this was the starting point. The project is about to go live, so I thought I would share the experience over the next few posts.</p>
<p style="text-align: justify;">At the start I had to do some reading and quickly discovered that my minimum requirements would be an understanding of the following:</p>
<h3>HTML</h3>
<p style="text-align: justify;">A few years ago this was all most web sites had. It’s just a markup language that allows you to create a simply formatted document on the web. I’d used this for years and there’s really not much to it. You can’t create a web app with HTML, but you do need it as a starting point. HTML5 is now available, which provides much more functionality than past versions.</p>
<h3>JavaScript</h3>
<p style="text-align: justify;">This scripting language runs in your browser and brings a web app to life. JavaScript can interface to databases APIs, variable data and the Document Object Model (DOM), which is really the HTML. I knew a tiny bit of JavaScript, but I would have to learn much more. This was to be my steepest learning curve. Fortunately I saw my brother-in-law the weekend I started and he gave me a recent JavaScript book thick enough to club a bunch of 70′s DJs to death.</p>
<h3>CSS</h3>
<p style="text-align: justify;">Cascading Style Sheets allow you to format web pages while separating formatting from content. You can do much more than you’d think with it, so it was important that I got to grips with CSS quickly.</p>
<h3>AJAX</h3>
<p style="text-align: justify;">Ajax is cool. It allows you to communicate with a data source (database, API, web site) without reloading the page. Remember how you used to fill out a form, press submit and the page would re-load. This was the only way to pass data. Now think of when you type something into the Google search engine. After each character the page shows matches with what you’ve typed so far. Ever wondered how it does this? It’s Ajax. Each time a key is pressed Ajax sends the string back to the server, which returns a set of results… all without a submit key or a page re-load. The search button is now superfluous on that page. Another example relevant to my project is Bing maps. As you move the map more tiles automatically load. It’s not magic, it’s Ajax.</p>
<p style="text-align: justify;">PHP</p>
<p style="text-align: justify;">(<em>PHP</em>: Hypertext Preprocessor) is a pretty straightforward server-side language. All of my Ajax calls PHP code. The PHP code makes database calls, gets elevation data or makes calls to APIs. I needed to write some proxy code to allow calls to be make to external domains. As session variables are server-side I also use PHP to deal with these. When I started <em>this</em> site I originally used Perl as my server-side language. Personally I find PHP is much easier and have converted all Perl to PHP on this site now too.</p>
<h3>mySQL</h3>
<p style="text-align: justify;">This is an open source database manager that is supported by many web hosts, including mine. As I am a SQL Server DBA, this should be a piece of cake for me. At last, an easy bit.</p>
<h3>JSON</h3>
<p style="text-align: justify;">I am very familiar with XML due to my job, but all GPS users should know some xml, as gpx files are really XML data. It&#8217;s a method of representing data in text form, so it&#8217;s ideal for passing between applications. JSON is a lightweight and simple substitute for XML. It tends to be more popular for API and web services. It is pretty straight forward to pick up.</p>
<h3>APIs and other stuff</h3>
<p style="text-align: justify;">Bing Maps 7.0 was chosen because of it’s ability to provide 1:25K OS maps, something that the Ordnance Survey themselves couldn’t do. Geocaching Live API was used to provide calls directly into the geocaching database, currently holding over 2M active geocaches worldwide (150K in UK alone).</p>
<p style="text-align: justify;">There would also be various libraries to provide graphs, date entry and even a little jQuery to enhance the user experience, but I decided to keep this to a minimum.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://peterdean.co.uk/wpblog/?feed=rss2&#038;p=171</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving ISP (AOL to Sky)</title>
		<link>https://peterdean.co.uk/wpblog/?p=55</link>
		<comments>https://peterdean.co.uk/wpblog/?p=55#comments</comments>
		<pubDate>Thu, 05 Jan 2012 12:36:58 +0000</pubDate>
		<dc:creator><![CDATA[Pete]]></dc:creator>
				<category><![CDATA[Web site]]></category>

		<guid isPermaLink="false">http://peterdean.co.uk/wpblog/?p=55</guid>
		<description><![CDATA[I live in a remote location with a basic telephone exchange which is nearly three miles from my house. My first ISP (Euronet) sadly went bust in 2006 and there were no LLUs in my exchange, so I had a &#8230; <a href="https://peterdean.co.uk/wpblog/?p=55">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I live in a remote location with a basic telephone exchange which is nearly three miles from my house. My first ISP (Euronet) sadly went bust in 2006 and there were no LLUs in my exchange, so I had a very limited choice when it came to getting a replacement, which wasn&#8217;t helped by needing unlimited downloads. The only choice I had was between Tiscali and AOL. Now everybody knows how bad AOL are, but Tiscali make them look like saints, so Hobson made the choice for me. At £8/month things weren&#8217;t too bad, though time has helped heal the wounds of having to speak to their <em>help </em>desk. They were a totally clueless bunch. I recall that they told me I could never have had a connection without installing the AOL software. They clearly have no idea of what they are talking about. About two years ago they tried to double their fee. I fought it off conceeding a small rise, but last year the monthly charge rose to £20. This is because they have no LLU in my exchange, so in other words, I have to pay double to get the worst service they provide because they haven&#8217;t invested in my exchange. Sounds nearly as fair as having to pay for the support calls when they have screwed up my connection again. Anyway, apathy and an increase in download speed to 2Mb/s meant I left things the way they were, but when speeds slowed to 1Mb/s I decided I could take no more and looked for a better deal. It certainly wasn&#8217;t the first time either.</p>
<p>Talk Talk were now listed as having an LLU here so I decided to give them a go though I quickly backed out of that when it became clear just how useless they were. A pushy helpdesk person with little or no knowledge tried to force me to take limited downloads against my wishes. Her explanation of why I couldn&#8217;t have the unlimited downloads promised until the point of payment were infantile. An indicator of what would come later was enough to end any ideas of using this ISP.</p>
<p>I then discovered that Sky had just put their equipment in my exchange too. I decided that their unlimited broadband and phone usage package was worth a try and signed up on line. I signed up in mid December, so due to the holidays my go-live date was 3rd Jan 2012. The modem/router (Sagem wireless N) arrived a few days before. It&#8217;s a bit annoying that I must use it (otherwise infringing Ts&amp;Cs), but it doesn&#8217;t look terrible, unlike the AOL junk. My Netgear may find it&#8217;s way onto eBay.</p>
<p>On the agreed go-live date I returned to my desk from lunch to find my broadband disconnected and the phone line working. I nervously plugged in the Sky modem/router and away we went without the slightest hitch. The first 10 days are a tuning period, but the initial 2.1Mb/s where as good as I could hope for. Over the next couple of days the upload speed has increased to about 0.7Mb/s, so I&#8217;m pretty happy at the moment. Downloads are (apparently) truley unlimited and unlike AOL I can also download during peak times (evenings). I&#8217;ve downloaded several GB already and it&#8217;s all good. The router appears to compare adequately with my DGN 2000. This includes the wireless N signal.</p>
<p>Costs are :<br />
Line rental £12.25 &#8211; a slight saving of BT line rental<br />
Unlimited phone calls £5 &#8211; practically all calls apart from those to mobile phones<br />
Unlimited Broadband £10 &#8211; uncludes £2.50 suppliment as I don&#8217;t have Sky TV<br />
Withhold number and caller display are free</p>
<p><span style="color: #ff0000;">Total price is £27.25/month</span> though it will only be £20 for the first six months. This is considerably cheaper that AOL (£33.50 including line renal) and additionally includes free calls at any time and a much faster Internet connection.</p>
<p>The final joke is that AOL emailed me 8 hours after the switch (and wrote a few days later) to say that they were aware I was leaving and it wasn&#8217;t too late to change my mind. Just the level of service I&#8217;ve come to expect from them. Good riddance to bad rubbish I say.</p>
]]></content:encoded>
			<wfw:commentRss>https://peterdean.co.uk/wpblog/?feed=rss2&#038;p=55</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress</title>
		<link>https://peterdean.co.uk/wpblog/?p=23</link>
		<comments>https://peterdean.co.uk/wpblog/?p=23#comments</comments>
		<pubDate>Thu, 23 Sep 2010 22:15:30 +0000</pubDate>
		<dc:creator><![CDATA[Pete]]></dc:creator>
				<category><![CDATA[Web site]]></category>

		<guid isPermaLink="false">http://peterdean.co.uk/wpblog/?p=23</guid>
		<description><![CDATA[Today I installed WordPress &#8211; the guts behind this page. I guess I have already developed&#160; my own WordPress for most of my other pages, as they are rendered from a database. If I could get my OS maps and &#8230; <a href="https://peterdean.co.uk/wpblog/?p=23">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;" mce_style="text-align: justify;">Today I installed WordPress &#8211; the guts behind this page. I guess I have already developed&nbsp; my own WordPress for most of my other pages, as they are rendered from a database. If I could get my OS maps and some CGI stuff to work in the app I would consider using it to manage the entire site, but there&#8217;s nothing quite as flexible as your own hand written code. Seems very nice all the same.</p>
<p>This post was made from an email sent to my WordPress email account. Nice!</p>
]]></content:encoded>
			<wfw:commentRss>https://peterdean.co.uk/wpblog/?feed=rss2&#038;p=23</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web host renewal at eHostPros</title>
		<link>https://peterdean.co.uk/wpblog/?p=6</link>
		<comments>https://peterdean.co.uk/wpblog/?p=6#comments</comments>
		<pubDate>Thu, 23 Sep 2010 15:07:35 +0000</pubDate>
		<dc:creator><![CDATA[Pete]]></dc:creator>
				<category><![CDATA[Web site]]></category>

		<guid isPermaLink="false">http://peterdean.co.uk/wpblog/?p=6</guid>
		<description><![CDATA[My web hosting contract was up for renewal, so with a paltry 200MB of disk space I started to look around at other options. In the past eHostPros has been the only host that could provide the long list of &#8230; <a href="https://peterdean.co.uk/wpblog/?p=6">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">My web hosting contract was up for renewal, so with a paltry 200MB of disk space I started to look around at other options. In the past eHostPros has been the only host that could provide the long list of services I needed for the price I could justify for a hobby site, but things have changed out there and I quickly found a few hosts that could offer something comparable for a similar price, along with the all important <em>unlimited disk space</em>. Just as it started to look good for a change a little research showed thing weren&#8217;t as rosy with these hosts as I had initially been lead to believe.</p>
<p style="text-align: justify;">After a rocky start with eHostPros back in 2006 I have had a pretty smooth time of it. In fact I hadn&#8217;t raised a support ticket since 2007. Maybe the grass isn&#8217;t always greener on the other side. I&#8217;ve always been told that if you don&#8217;t ask you don&#8217;t get, so I fired a quick support ticket requesting the 5GB disk space that new starters get, but also requesting to keep my ability to host multiple domains, which new users don&#8217;t get. There was an immediate reply that it had already been implemented. I wonder if I would have had the same response if my contract wasn&#8217;t up for renewal.</p>
<p style="text-align: justify;">I&#8217;ve raised a few support tickets in the last few days. Most have been dealt with professionally and quickly. I was rather disappointed that they couldn&#8217;t get the Advanced Guestbook working, despite offering it from cPanel. It&#8217;s not a biggie though, and I knocked up a very simple one using PHP in a couple of hours.</p>
]]></content:encoded>
			<wfw:commentRss>https://peterdean.co.uk/wpblog/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
