<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Chris Ramsay</title><link>https://chrisramsay.co.uk/posts/</link><description>Recent content in Posts on Chris Ramsay</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Wed, 04 Nov 2026 08:00:00 +0000</lastBuildDate><atom:link href="https://chrisramsay.co.uk/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Hello Again</title><link>https://chrisramsay.co.uk/posts/2026/11/hello-again/</link><pubDate>Wed, 04 Nov 2026 08:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2026/11/hello-again/</guid><description>Nine years after the last post, the site is back, rebuilt with Hugo.</description></item><item><title>Moving from Linux to Windows</title><link>https://chrisramsay.co.uk/posts/2020/06/moving-from-linux-to-windows/</link><pubDate>Tue, 02 Jun 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/06/moving-from-linux-to-windows/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I never thought that I would be starting an article containing the statement &amp;ldquo;moving from Linux to Windows&amp;rdquo;, but this is exactly what will be happening with my main imaging scope set up in a few days. For those who don&amp;rsquo;t know anything about me, I have spent decades&amp;hellip; (hmm, yes it is now measurable in decades!) using Linux based operating systems - since the early &lt;a href="https://en.wikipedia.org/wiki/Red_Hat_Linux"&gt;Red Hat&lt;/a&gt; days of the late 1990&amp;rsquo;s, and being comfortable with that environment, it has always been the first port of call for any home project, such as a telescope mounted observation control platform.&lt;/p&gt;</description></item><item><title>Up and Running with GPSD on Raspberry Pi</title><link>https://chrisramsay.co.uk/posts/2020/05/up-and-running-with-gpsd-on-raspberry-pi/</link><pubDate>Sat, 16 May 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/05/up-and-running-with-gpsd-on-raspberry-pi/</guid><description>&lt;h2 id="history"&gt;History&lt;/h2&gt;
&lt;p&gt;Regarding computer hardware I have had to hand in the last two years or so, things have been in flux, you might say. I have not had ready access to a proper non-work Linux desktop environment where I could happily run Docker and Python. This has meant that keeping my Pelican blog up to date has been rather difficult, and hence the content has somewhat languished.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m back to where I want to be now, having procured a new desktop machine quite capable of hosting a Docker environment effortlessly, so thought it was time to look once again at breathing life into this site.&lt;/p&gt;
&lt;p&gt;Here follows a description of the new publishing process!&lt;/p&gt;</description></item><item><title>June 2020 Roundup</title><link>https://chrisramsay.co.uk/posts/2020/05/june-2020-roundup/</link><pubDate>Thu, 14 May 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/05/june-2020-roundup/</guid><description>&lt;p&gt;So here begins the June 2020 roundup. This month is a bit of a random collection of the moon, satellite passes, star trails and an inner Solar system planetary conjunction!&lt;/p&gt;</description></item><item><title>Building a Raspberry Pi Flavoured DSLR Control Unit</title><link>https://chrisramsay.co.uk/posts/2020/05/building-a-raspberry-pi-flavoured-dslr-control-unit/</link><pubDate>Sun, 10 May 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/05/building-a-raspberry-pi-flavoured-dslr-control-unit/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As well as the telescope pier I like to have a DSLR (an astro-modified Canon EOS 450D) on a Skywatcher Star Adventurer mount around in the garden. It makes for a nice little mobile arrangement that can be set up at a moment&amp;rsquo;s notice. Usually the set up consists of the camera, a lens warmer, power for the mount and an intervalometer for controlling the timing of pictures being captured.&lt;/p&gt;
&lt;p&gt;Having really enjoyed setting up a &lt;a href="https://www.raspberrypi.org/products/raspberry-pi-4-model-b/"&gt;Raspberry Pi 4&lt;/a&gt; running &lt;a href="https://edu.kde.org/kstars/"&gt;KStars&lt;/a&gt;, &lt;a href="https://www.indilib.org/about/ekos.html"&gt;EKOS&lt;/a&gt; and &lt;a href="https://indilib.org/"&gt;INDI&lt;/a&gt; for the pier based telescope I thought that putting a &amp;lsquo;one stop&amp;rsquo; solution together, able to do the same as the above plus a few extras, for the DSLR would be a great little side project.&lt;/p&gt;</description></item><item><title>April 2020 Roundup</title><link>https://chrisramsay.co.uk/posts/2020/04/april-2020-roundup/</link><pubDate>Sat, 25 Apr 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/04/april-2020-roundup/</guid><description>&lt;p&gt;It has been a strange couple of months, what with the current Coronavirus epidemic raging around us, but I have managed to capture a few astronomical events from the garden in any case. So here begins the April 2020 roundup.&lt;/p&gt;</description></item><item><title>Equipment Setup Thoughts - Part One</title><link>https://chrisramsay.co.uk/posts/2020/04/equipment-setup-thoughts-part-one/</link><pubDate>Fri, 03 Apr 2020 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2020/04/equipment-setup-thoughts-part-one/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Setting up a new telescope is not an easy task. It takes some planning and thought to get the set up right first time. I have made an attempt to plan out everything that I will need before getting started. Using a handy copy of Visio I had lying about I have put together a handful of block level diagrams to help me out. This process gives me an overview of what is needed to make sure that the system is complete and that everything has been thought of, as far as possible. Following is a run through of my plans and my thoughts regarding what issues they raised.&lt;/p&gt;</description></item><item><title>Astro Pier - Part One</title><link>https://chrisramsay.co.uk/posts/2020/01/astro-pier-part-one/</link><pubDate>Sat, 18 Jan 2020 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2020/01/astro-pier-part-one/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;This series of articles will chronicle the process of building a permanent astronomy telescope pier in my garden. A permanent pier makes the setting up process for an night of astrophotography or visual observing far less laborious. This is because the pier is already aligned with the celestial pole, via the North peg on top of the mount adapter. Power and network adapters are immediately to hand, removing the work of laying cables out from the shed and putting them away later after each observing or astrophotography session.&lt;/p&gt;</description></item><item><title>Pelican Blog Publishing Process Revisited</title><link>https://chrisramsay.co.uk/posts/2020/01/pelican-blog-publishing-process-revisited/</link><pubDate>Sun, 12 Jan 2020 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2020/01/pelican-blog-publishing-process-revisited/</guid><description>&lt;h2 id="history"&gt;History&lt;/h2&gt;
&lt;p&gt;Regarding computer hardware I have had to hand in the last two years or so, things have been in flux, you might say. I have not had ready access to a proper non-work Linux desktop environment where I could happily run Docker and Python. This has meant that keeping my Pelican blog up to date has been rather difficult, and hence the content has somewhat languished.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m back to where I want to be now, having procured a new desktop machine quite capable of hosting a Docker environment effortlessly, so thought it was time to look once again at breathing life into this site.&lt;/p&gt;
&lt;p&gt;Here follows a description of the new publishing process!&lt;/p&gt;</description></item><item><title>Cloud Detection - Part Five</title><link>https://chrisramsay.co.uk/posts/2017/09/cloud-detection-part-five/</link><pubDate>Sat, 16 Sep 2017 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2017/09/cloud-detection-part-five/</guid><description>&lt;h2 id="progress"&gt;Progress&lt;/h2&gt;
&lt;p&gt;This post follows on at quite a distance from &lt;a href="https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-four/"&gt;my last post on the subject&lt;/a&gt;, and until recently I had not realised quite how long this project has been languishing on the bench. Like many of the electronics projects I undertake they need to be able to withstand being outside and exposed to weather conditions, dealing with packaging them to handle harsher environments is always the most difficult part.&lt;/p&gt;
&lt;p&gt;For the same reason as above, I have also changed one of the key measurement components, the humidity sensor.&lt;/p&gt;
&lt;p&gt;I am also dropping the Arduino Uno in favour of the &lt;a href="https://store.arduino.cc/arduino-yun"&gt;Arduino Yún&lt;/a&gt;. I wrote a &lt;a href="https://chrisramsay.co.uk/posts/2016/04/arduino-yun-reliability-problems/"&gt;brief article on the Yún&lt;/a&gt; some time ago.&lt;/p&gt;</description></item><item><title>Mammatus Clouds Spotted</title><link>https://chrisramsay.co.uk/posts/2017/09/mammatus-clouds-spotted/</link><pubDate>Fri, 15 Sep 2017 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2017/09/mammatus-clouds-spotted/</guid><description>&lt;p&gt;I spotted some unusual clouds over the house the other day!&lt;/p&gt;
&lt;p&gt;&lt;img alt="Panorama shot of mammatus over the house" loading="lazy" src="https://chrisramsay.co.uk/posts/2017/09/mammatus-clouds-spotted/37050734616_94c8dc5e03_c.jpg"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Panorama shot of mammatus over the house&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I have always enjoyed identifying clouds and if I can take pictures of any unusual formations. This type, &lt;a href="https://en.wikipedia.org/wiki/Mammatus_cloud"&gt;Mammamtus&lt;/a&gt;, is pretty rare in these parts; I can count on one hand the number of times I have seen Mammatus clouds.&lt;/p&gt;</description></item><item><title>Arduino and Multiple MLX90614 Sensors Take Two</title><link>https://chrisramsay.co.uk/posts/2017/09/arduino-and-multiple-mlx90614-sensors-take-two/</link><pubDate>Sat, 02 Sep 2017 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2017/09/arduino-and-multiple-mlx90614-sensors-take-two/</guid><description>&lt;h2 id="multiple-mlx90614-sensors-take-two"&gt;Multiple MLX90614 Sensors Take Two&lt;/h2&gt;
&lt;p&gt;Over two years ago I wrote &lt;a href="https://chrisramsay.co.uk/posts/2014/09/arduino-and-multiple-mlx90614-sensors/"&gt;this article&lt;/a&gt; about giving an MLX90614 a new slave address, different from the default they are all set with from the factory (&lt;span class="title-ref"&gt;0x5A&lt;/span&gt;), in order to enable having more than one individually addressable device on the bus.&lt;/p&gt;
&lt;p&gt;As before I am still using two of these MLX90614 sensors in my &lt;a href="https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-one/"&gt;cloud detection&lt;/a&gt; project and have changed slave addresses on these devices many times before with very few problems.&lt;/p&gt;
&lt;p&gt;Why am I writing a new post about this? Well I have had quite a few questions on my original article and I decided to hopefully make a few things a little clearer with some updated code examples thrown into the mix.&lt;/p&gt;
&lt;p&gt;What are we going to do in this article? Focus on the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;[Take a quick peek at the MLX90614 again](#Take a quick peek at the MLX90614 again)&lt;/li&gt;
&lt;li&gt;[Look at some updated code for changing slave addresses](#Look at some updated code for changing slave addresses)&lt;/li&gt;
&lt;li&gt;[See the range of supported addresses](#See the range of supported addresses)&lt;/li&gt;
&lt;li&gt;[Look at actually running the code](#Look at actually running the code)&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Fun with the Sun and PyEphem</title><link>https://chrisramsay.co.uk/posts/2017/03/fun-with-the-sun-and-pyephem/</link><pubDate>Sun, 12 Mar 2017 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2017/03/fun-with-the-sun-and-pyephem/</guid><description>&lt;p&gt;In this article I have a play with &lt;a href="http://rhodesmill.org/pyephem/"&gt;PyEphem&lt;/a&gt; and our local star, both as an opportunity to draw some pretty graphs and answer a few basic astronomy related questions, such as: what does the equation of time look like and is there a difference in the time it takes for the sun to set during the year.&lt;/p&gt;</description></item><item><title>Getting Bookmark Data from del.icio.us</title><link>https://chrisramsay.co.uk/posts/2017/02/getting-bookmark-data-from-delicious/</link><pubDate>Sun, 19 Feb 2017 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2017/02/getting-bookmark-data-from-delicious/</guid><description>&lt;h2 id="delicious-link-fetching"&gt;del.icio.us Link Fetching&lt;/h2&gt;
&lt;p&gt;Below is an outline for building a rough &amp;amp; ready script to get &lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt; bookmark data - a script very much driven by necessity.&lt;/p&gt;
&lt;h3 id="rationale"&gt;Rationale&lt;/h3&gt;
&lt;p&gt;Why am I doing this? Well, I&amp;rsquo;ve been bookmarking links using del.icio.us since March 2009 and have, very slowly, built up a steady collection of over 900 bookmarks, most of which are probably still quite useful.&lt;/p&gt;
&lt;p&gt;The ups and downs of social bookmarking service del.icio.us are &lt;a href="https://sixtwothree.org/posts/homesteading-a-decades-worth-of-shared-links"&gt;very well documented here&lt;/a&gt;, so I won&amp;rsquo;t go into all the details, but suffice to say that reading the aforementioned article gave me all the impetus I needed to go ahead and &lt;em&gt;homestead&lt;/em&gt; my list of bookmarks. Simple, I thought.&lt;/p&gt;
&lt;p&gt;Then came the snag&amp;hellip;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We&amp;rsquo;re sorry, but due to heavy load on our database we are no longer able to offer an export function. Our engineers are working on this and we will restore it as soon as possible.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Great&amp;hellip; what now? Time to write a script of course. I&amp;rsquo;ve initially created this article using a &lt;a href="http://jupyter.org/"&gt;Jupyter Notebook&lt;/a&gt; which may, I hope, explain the recipe feel to the writing.&lt;/p&gt;
&lt;h3 id="the-plan"&gt;The Plan&lt;/h3&gt;
&lt;p&gt;Well, initially the plan was just to grab the bookmarks by scraping my del.icio.us pages from beginning to end and turn that data straight into some form of bookmark HTML. Thinking about it more, I decided to opt for a JSON data format; that way I could easily turn the data to any format I like at my leisure.&lt;/p&gt;</description></item><item><title>Show Source Plugin Update</title><link>https://chrisramsay.co.uk/posts/2016/12/show-source-plugin-update/</link><pubDate>Sat, 17 Dec 2016 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2016/12/show-source-plugin-update/</guid><description>&lt;h2 id="latest-news"&gt;Latest News&lt;/h2&gt;
&lt;p&gt;I received some good news this week: my &lt;a href="https://github.com/chrisramsay/pelican-plugins/tree/feature/show_source/show_source"&gt;Show Source&lt;/a&gt; plugin, the one inspired by &lt;a href="http://www.sphinx-doc.org/"&gt;Sphinx&lt;/a&gt;, has had its pull request accepted into the &lt;a href="https://github.com/getpelican/pelican-plugins"&gt;getpelican/pelican-plugins repo&lt;/a&gt;. This means that the plugin becomes a part of the standard &lt;a href="https://github.com/getpelican/pelican"&gt;Pelican&lt;/a&gt; plugin canon.&lt;/p&gt;
&lt;p&gt;My next task will be to make a small addition, and hence pull request, to the developers of the theme I use with this site (&lt;a href="https://github.com/getpelican/pelican-themes/tree/master/pelican-bootstrap3"&gt;pelican-bootstrap3&lt;/a&gt;) to accomodate a couple of small template changes to support &lt;a href="https://github.com/chrisramsay/pelican-plugins/tree/feature/show_source/show_source"&gt;Show Source&lt;/a&gt; automatically.&lt;/p&gt;
&lt;p&gt;The officially accepted version of show source &lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/show_source"&gt;is available now right here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;</description></item><item><title>Creating AWS Data Pipelines with Boto3 and JSON</title><link>https://chrisramsay.co.uk/posts/2016/11/creating-aws-data-pipelines-with-boto3-and-json/</link><pubDate>Wed, 16 Nov 2016 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2016/11/creating-aws-data-pipelines-with-boto3-and-json/</guid><description>&lt;h2 id="rationale"&gt;Rationale&lt;/h2&gt;
&lt;p&gt;I have been doing a little work with &lt;a href="https://aws.amazon.com/documentation/data-pipeline/"&gt;AWS data pipeline&lt;/a&gt; recently for undertaking &lt;a href="https://en.wikipedia.org/wiki/Extract,_transform,_load"&gt;ETL&lt;/a&gt; tasks at work. AWS data pipeline handles data driven workflows called pipelines. The data pipelines take care of scheduling, data depenedencies, data sources and destinations in a nicely managed workflow. My tasks take batch datasets from SQL databases, processing and loading those datasets into S3 buckets, then import into a Redshift reporting database.&lt;/p&gt;
&lt;p&gt;Seeing that production database structures are frequently updated, those changes need to be reflected in the reporting backend service. Now for a couple of years I have struggled on with Amazon&amp;rsquo;s web based data pipeline architect to manage those changes to the pipeline. This has been an onerous task, as the architect does not really lend itself very well to the task of managing a large set of pipelines. Here begins a little tale of delving into the AWS data pipeline API to find another way.&lt;/p&gt;</description></item><item><title>The Show Source Pelican Plugin</title><link>https://chrisramsay.co.uk/posts/2016/11/the-show-source-pelican-plugin/</link><pubDate>Sun, 06 Nov 2016 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2016/11/the-show-source-pelican-plugin/</guid><description>&lt;h2 id="rationale"&gt;Rationale&lt;/h2&gt;
&lt;p&gt;I have always been a fan of the &lt;a href="http://www.sphinx-doc.org/"&gt;Sphinx&lt;/a&gt; Python documentation generator and it has, I think, a nice feature where you can check out the raw source of a generated piece of documentation - a &lt;em&gt;Show Source&lt;/em&gt; link. I decided that developing a &lt;a href="https://github.com/getpelican/pelican-plugins"&gt;Pelican plugin&lt;/a&gt; to imitate that feature would be a great way of getting a little deeper into the Pelican code itself.&lt;/p&gt;
&lt;p&gt;This second post of the series explains the use of the Show Source plugin that I developed from the learning in the &lt;a href="https://chrisramsay.co.uk/posts/2016/11/basic-notes-on-pelican-plugin-architecture/"&gt;previous post&lt;/a&gt;. The following article has been, in some part, reproduced in the &lt;code&gt;ReadMe.rst&lt;/code&gt; file included as part of the plugin.&lt;/p&gt;</description></item><item><title>Basic Notes on Pelican Plugin Architecture</title><link>https://chrisramsay.co.uk/posts/2016/11/basic-notes-on-pelican-plugin-architecture/</link><pubDate>Fri, 04 Nov 2016 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2016/11/basic-notes-on-pelican-plugin-architecture/</guid><description>&lt;h2 id="rationale"&gt;Rationale&lt;/h2&gt;
&lt;p&gt;I have always been a fan of the &lt;a href="http://www.sphinx-doc.org/"&gt;Sphinx&lt;/a&gt; Python documentation generator and it has, I think, a nice feature where you can check out the raw source of a generated piece of documentation - a &lt;em&gt;Show Source&lt;/em&gt; link. I decided that developing a &lt;a href="https://github.com/getpelican/pelican-plugins"&gt;Pelican plugin&lt;/a&gt; to imitate that feature would be a great way of getting a little deeper into the Pelican code itself.&lt;/p&gt;
&lt;p&gt;This first post explores the Pelican plugin architecture and the basics of building a plugin.&lt;/p&gt;</description></item><item><title>Projects Update</title><link>https://chrisramsay.co.uk/posts/2016/05/projects-update/</link><pubDate>Fri, 06 May 2016 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2016/05/projects-update/</guid><description>&lt;p&gt;It has been a while since I made any progress on a project, so I thought that I would put something down here as a way of summarising to myself where things are, what is left to do and so on, as a form of to-do list.&lt;/p&gt;</description></item><item><title>UV Light Box</title><link>https://chrisramsay.co.uk/posts/2016/05/uv-light-box/</link><pubDate>Fri, 06 May 2016 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2016/05/uv-light-box/</guid><description>&lt;p&gt;This is a little project to build a cheap UV exposure box for developing UV sensitive printed circuit boards.&lt;/p&gt;</description></item><item><title>Arduino Yún Reliability Problems</title><link>https://chrisramsay.co.uk/posts/2016/04/arduino-yun-reliability-problems/</link><pubDate>Sun, 17 Apr 2016 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2016/04/arduino-yun-reliability-problems/</guid><description>&lt;h2 id="arduino-yún-reliability-problems"&gt;Arduino Yún Reliability Problems&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been testing out the &lt;a href="https://www.arduino.cc/en/Main/ArduinoBoardYun"&gt;Arduino Yún&lt;/a&gt; recently with a view to making use of one in a project. I&amp;rsquo;ve come across a problem or two and solutions that were probably worth making a note of, so I thought that I&amp;rsquo;d write them here as somewhere to come back to in future.&lt;/p&gt;</description></item><item><title>Pelican Blogging with a Docker Container</title><link>https://chrisramsay.co.uk/posts/2015/12/pelican-blogging-with-a-docker-container/</link><pubDate>Wed, 02 Dec 2015 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2015/12/pelican-blogging-with-a-docker-container/</guid><description>&lt;h2 id="current-virtual-server"&gt;Current Virtual Server&lt;/h2&gt;
&lt;p&gt;It has been about a year since I started using a virtual server on the laptop to locally host my blogging efforts with &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt;. Up to now I have used a combination of &lt;a href="https://www.vagrantup.com/"&gt;Vagrant&lt;/a&gt; (with Virtualbox in the background) and a &lt;a href="https://puppetlabs.com/"&gt;Puppet&lt;/a&gt; built CentOS VM. At work we are increasingly introducing the concept of containerised services in the form of &lt;a href="https://www.docker.com/"&gt;Docker&lt;/a&gt; containers, and I felt that revisiting my blogging setup with a view to making use of a container would be a great way of getting to know the technology a little better.&lt;/p&gt;</description></item><item><title>Race Report: 2015 Gruesome Twosome</title><link>https://chrisramsay.co.uk/posts/2015/11/2015-gruesome-twosome/</link><pubDate>Sun, 29 Nov 2015 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2015/11/2015-gruesome-twosome/</guid><description>&lt;p&gt;This is a race report for the 2015 Gruesome Twosome Half Marathon&lt;/p&gt;
&lt;h2 id="details"&gt;Details&lt;/h2&gt;
&lt;p&gt;Useful information about the race.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Gruesome Twosome, Swallow, Lincolnshire, UK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hilly (mostly) off road half marathon in teams of two.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Date&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;17th October 2015&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mid morning, 11:00 start.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weather Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dry with broken cloud and a nagging North Easterly wind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course/Road Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The course was a mixture of wooded sections, open fields, small country roads and technical sections with logs to clear. The course profile provided very few flat sections; it was mostly either up a hill or down one! Conditions were largely dry; a choice of road shoes rather than trail shoes would not have significantly disadvantaged anyone.&lt;/p&gt;</description></item><item><title>Race Report: 2015 Great North Run</title><link>https://chrisramsay.co.uk/posts/2015/09/2015-great-north-run/</link><pubDate>Sun, 13 Sep 2015 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2015/09/2015-great-north-run/</guid><description>&lt;p&gt;This is a race report for the 2015 Great North Run Half Marathon&lt;/p&gt;
&lt;h2 id="details"&gt;Details&lt;/h2&gt;
&lt;p&gt;Useful information about the race.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Great North Run, Tyneside, UK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All road half marathon. Probably one of the most famous half marathons in the world.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Date&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;13th September 2015&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mid morning, 10:45 start.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weather Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Warming up as the morning went on, broken cloud.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course/Road Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Road was mostly dry; course profile was largely flat with gentle undulations where there were bridges, underpasses and so on. Only a couple of miles before the end presented any kind of real slope.&lt;/p&gt;</description></item><item><title>Some Fun with a Cloned Arduino and W5100 Ethernet Shield</title><link>https://chrisramsay.co.uk/posts/2015/08/some-fun-with-a-cloned-arduino-and-w5100-ethernet-shield/</link><pubDate>Sat, 01 Aug 2015 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2015/08/some-fun-with-a-cloned-arduino-and-w5100-ethernet-shield/</guid><description>&lt;p&gt;This article mainly concerns the many trials of reliably bringing a remotely installed cloned Arduino and Wiznet W5100 Ethernet shield back to life after a power cut. The W5100 board is being explored as an alternative to the cheaper 28J60 board which itself ended up with its own reliability issues as described &lt;a href="https://chrisramsay.co.uk/posts/2015/04/giving-an-arduino-a-heartbeat/"&gt;here in another article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Please note that this particular article references &lt;em&gt;DCcduinos&lt;/em&gt; only. The problems described within do not affect a genuine Arduino in my experience.&lt;/p&gt;</description></item><item><title>Giving an Arduino a Heartbeat</title><link>https://chrisramsay.co.uk/posts/2015/04/giving-an-arduino-a-heartbeat/</link><pubDate>Sun, 05 Apr 2015 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2015/04/giving-an-arduino-a-heartbeat/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;How would one be able to restart a system that has been deployed in a remote area which gives no immediate access for human intervention? The answer is to give the system an ability to reset itself in case of a system crash.&lt;/p&gt;
&lt;p&gt;This is where a &lt;a href="http://en.wikipedia.org/wiki/Watchdog_timer"&gt;watchdog timer&lt;/a&gt; (WDT) comes into use. It is a hardware based timer capable of automatically resetting a system should the main program fail to periodically send out a heartbeat. Now, the Arduino does indeed have a WDT on board, as do probably all microcontrollers, but a small amount of reading will inform you that once it has started running a sketch, there is no software function that has the same effect as pressing the reset button.&lt;/p&gt;</description></item><item><title>Race Report: 2015 Caythorpe Dash</title><link>https://chrisramsay.co.uk/posts/2015/02/2015-caythorpe-dash/</link><pubDate>Tue, 10 Feb 2015 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2015/02/2015-caythorpe-dash/</guid><description>&lt;p&gt;This is a race report for the 2015 Caythorpe Dash.&lt;/p&gt;
&lt;h2 id="details"&gt;Details&lt;/h2&gt;
&lt;p&gt;Useful information about the race.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Caythorpe Dash, Caythorpe, Lincolnshire, UK.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mostly off-road/trail/track half marathon. 4 person (2 man, 2 woman) teams with aggregated times or solo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Date&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1st February 2015&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mid morning, 11:00 start.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weather Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Dry, cold air temperature (only just above freezing) with a fresh northerly breeze bringing in quite a wind chill. Broken cloud.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Course/Road Conditions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Road was mostly dry; trail and track were occasionally muddy with puddles. Course profile was largely flat for the first 16 km after an initial drop, followed by a hillier last 5 km or so.&lt;/p&gt;</description></item><item><title>Getting Data from a Garmin FR610</title><link>https://chrisramsay.co.uk/posts/2015/02/getting-data-from-a-garmin-fr610/</link><pubDate>Thu, 05 Feb 2015 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2015/02/getting-data-from-a-garmin-fr610/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Since getting a Garmin Forerunner 610 I have been largely satisfied with the various aspects of getting the data from the said watch on to the Internet. It is a multi stage process, each with risks and issues very much dependent on non functional qualities, such as network and USB resilience, usability and so on. To give an example, I get the data from my watch using a &lt;a href="http://www.dcrainmaker.com/2012/02/much-better-usb-ant-stick-for-your.html"&gt;USB ANT+ stick&lt;/a&gt;, Mac computer, Garmin&amp;rsquo;s Express software, &lt;a href="http://connect.garmin.com/"&gt;Garmin Connect online&lt;/a&gt; service and finally, &lt;a href="http://www.strava.com"&gt;Strava&lt;/a&gt; via Strava&amp;rsquo;s linked account capability. That&amp;rsquo;s a lot of steps, and a lot of potential failures lying in wait. I am not going to get into my rather low estimation of both Garmin&amp;rsquo;s Connect service and Express software; needless to say, I think they are both rather substandard at the moment.&lt;/p&gt;</description></item><item><title>Soil Temperature Monitoring - Part Four</title><link>https://chrisramsay.co.uk/posts/2014/11/soil-temperature-monitoring-part-four/</link><pubDate>Fri, 28 Nov 2014 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2014/11/soil-temperature-monitoring-part-four/</guid><description>&lt;h2 id="final-assembly"&gt;Final Assembly&lt;/h2&gt;
&lt;p&gt;Some would say that at this stage I was almost there with the soil sensor project. All there was left to do was get the thing into the ground. Being that I am a flawed perfectionist, I had some other ideas . I was not going to simply chuck it in the ground without some more prevarication.&lt;/p&gt;
&lt;p&gt;Anyway, onwards&amp;hellip;&lt;/p&gt;</description></item><item><title>Soil Temperature Monitoring - Part Three</title><link>https://chrisramsay.co.uk/posts/2014/11/soil-temperature-monitoring-part-three/</link><pubDate>Mon, 10 Nov 2014 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2014/11/soil-temperature-monitoring-part-three/</guid><description>&lt;h2 id="reviving-the-project"&gt;Reviving the Project&lt;/h2&gt;
&lt;p&gt;A very brief part three of the, somewhat delayed, soil temperature monitoring project. This project has been left a little on the side gathering dust whilst I spent some time concentrating on the &lt;a href="https://chrisramsay.co.uk/tag/cloud-detection/"&gt;cloud detection project&lt;/a&gt;, but I am now determined to get this system up and running and its sensors in the ground before the winter weather sets in. Being in the ground soon will also mean that I get a good run before the cold weather hits.&lt;/p&gt;
&lt;p&gt;At this point I have progressed with getting the electronics from breadboard to circuit board, well, &lt;a href="http://en.wikipedia.org/wiki/Veroboard"&gt;Veroboard&lt;/a&gt; anyway. Also, the mission has crept slightly: after some more research, I have decided that the project is to become more of a surface/ground temperature station with the addition of minimum grass and concrete temperature measurements.&lt;/p&gt;</description></item><item><title>Moving from Map My Run to Strava</title><link>https://chrisramsay.co.uk/posts/2014/10/moving-from-mapmyrun-to-strava/</link><pubDate>Sat, 11 Oct 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/10/moving-from-mapmyrun-to-strava/</guid><description>&lt;h2 id="moving-from-map-my-run-to-strava"&gt;Moving from Map My Run to Strava&lt;/h2&gt;
&lt;p&gt;I have been running a little while now and am always in the habit of taking my phone with me to get some monitoring in on my progress with the aid of GPS and so on. I have been using a really nice app called &lt;a href="http://www.mapmyrun.com/"&gt;mapmyrun&lt;/a&gt;. It has given me months of good service and what with the moderate amount of running I have done, I have committed a fair few hours worth of data online.&lt;/p&gt;
&lt;p&gt;Meanwhile I have decided that it would be great to get out running with a group of people rather than on my own all the time, so I have joined up with a very friendly local &lt;a href="http://www.caistorrunningclub.com/"&gt;running group in Caistor, Lincolnshire&lt;/a&gt;. Quite a number of them use a different app called &lt;a href="http://www.strava.com/"&gt;Strava&lt;/a&gt;, and I thought that I would give it a go based on some positive recommendations from members of the group.&lt;/p&gt;
&lt;p&gt;You might wonder what this article is doing in the &lt;a href="https://chrisramsay.co.uk/category/software/"&gt;software section&lt;/a&gt; of this site&amp;hellip; well, read on.&lt;/p&gt;</description></item><item><title>Useful reStructuredText</title><link>https://chrisramsay.co.uk/posts/2014/10/useful-restructuredtext/</link><pubDate>Wed, 08 Oct 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/10/useful-restructuredtext/</guid><description>&lt;h2 id="purpose"&gt;Purpose&lt;/h2&gt;
&lt;p&gt;This is a brief memory aid for me with some small, and perhaps useful, tips when writing articles using reStructuredText_&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. I am aiming to keep on top of this document and maintain it as a living thing; when I find something new and useful, it will be appended.&lt;/p&gt;</description></item><item><title>My Pelican Publishing Process</title><link>https://chrisramsay.co.uk/posts/2014/10/my-pelican-publishing-process/</link><pubDate>Sat, 04 Oct 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/10/my-pelican-publishing-process/</guid><description>&lt;h2 id="the-publishing-process"&gt;The Publishing Process&lt;/h2&gt;
&lt;p&gt;This brief article focuses on only one part of using &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt; as a static site generation tool - the day to day usage once the set up is established. There are loads of really good articles on how to get started with Pelican and I am not about to add to that growing pile; there is just no need.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t use the default &lt;a href="http://www.gnu.org/software/make/"&gt;make tool&lt;/a&gt; that comes with Pelican, because having a &lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt; programming background made me feel much more comfortable with utilising the ever excellent &lt;a href="http://www.fabfile.org/"&gt;Fabric&lt;/a&gt; tool.&lt;/p&gt;</description></item><item><title>Cloud Detection - Part Four</title><link>https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-four/</link><pubDate>Mon, 29 Sep 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-four/</guid><description>&lt;h2 id="further-thoughts"&gt;Further Thoughts&lt;/h2&gt;
&lt;p&gt;This post follows on quite quickly (for me at least!) from my last one regarding my &lt;a href="https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-three/"&gt;latest tests and reflections on environmental issues&lt;/a&gt; with some thoughts about how to measure ground temperatures in a reliable way. I am also going to take a look at the difficulties I might face in trying to automatically interpret cloud cover the whole year through. Finally I am going to share some thoughts on how I might approach packaging the system for deployment in the open air, and what to do about supplying power and communications.&lt;/p&gt;</description></item><item><title>Titlecase: A Great Find</title><link>https://chrisramsay.co.uk/posts/2014/09/titlecase-a-great-find/</link><pubDate>Thu, 18 Sep 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/titlecase-a-great-find/</guid><description>&lt;h2 id="title-case"&gt;Title Case&lt;/h2&gt;
&lt;p&gt;As a rather inexperienced writer, it is the little things I struggle with, as well as the big things you might add. I find that one of the most annoying is getting title case correct. There are a lot of style guides about which may or may not help; I find some of them cryptic at times, and rather than being strict rules, they seem to be more matters of style. Until recently I had been taking style advice from &lt;a href="http://grammar.yourdictionary.com/capitalization/rules-for-capitalization-in-titles.html"&gt;yourdictionary.com&amp;rsquo;s&lt;/a&gt; site, but I always found having to undertake this task manually a bit of a bore.&lt;/p&gt;
&lt;p&gt;However, as with most programmers (or even ex-programmers like myself), I find that as soon as I am faced with a repetetive task I look to find a way of automating it; and thus it happened with this. Five minutes later and I had turned up &lt;a href="http://patpannuto.com"&gt;Pat Pannuto&amp;rsquo;s&lt;/a&gt; Python based &lt;a href="https://github.com/ppannuto/python-titlecase"&gt;titlecase package&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Cloud Detection - Part Three</title><link>https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-three/</link><pubDate>Wed, 17 Sep 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/cloud-detection-part-three/</guid><description>&lt;h2 id="latests-tests"&gt;Latests Tests&lt;/h2&gt;
&lt;p&gt;Since the &lt;a href="https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-two/"&gt;last part in this series&lt;/a&gt; I have continued to conduct experiments comparing and contrasting the two variants of MLX90614, the wide field of view BAA and the considerably more focused BCF. Whilst undertaking these &amp;lsquo;in the field&amp;rsquo; tests I have also come up against a few, what you might call, environmental problems which need addressing before I can move from the prototype phase to the implementation phase.&lt;/p&gt;</description></item><item><title>Energised, finally!</title><link>https://chrisramsay.co.uk/posts/2014/09/energised-finally/</link><pubDate>Wed, 10 Sep 2014 18:23:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/energised-finally/</guid><description>&lt;p&gt;I finally have some energy back and am getting on with some projects again. It is about time really. I have spent most of the summer evenings not doing a great deal; just feeling like I needed the time to recover from the rigours of a very busy working day. I am normally one of these people who is not comfortable with just sitting down and meditating on things. I think on the whole it has probably been a positive step to sit back and de-stress in front of a book or two.&lt;/p&gt;</description></item><item><title>Arduino and Multiple MLX90614 Sensors</title><link>https://chrisramsay.co.uk/posts/2014/09/arduino-and-multiple-mlx90614-sensors/</link><pubDate>Mon, 08 Sep 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/arduino-and-multiple-mlx90614-sensors/</guid><description>&lt;h2 id="multiple-mlx90614-sensors"&gt;Multiple MLX90614 Sensors&lt;/h2&gt;
&lt;p&gt;Nearly all articles you might look for regarding trying out an MLX90614 with an Arduino contain examples of using one sensor at a time. This makes sense as probably 99% of people are going to prototype a system with only one sensor in it. Quite a few articles make the incorrect assumption that having more than one sensor in a circuit is not even possible because the device slave addresses are hard coded. They do all come out of the factory with a default slave address of &lt;span class="title-ref"&gt;0x5A&lt;/span&gt;, but this can be changed with a small amount of effort.&lt;/p&gt;
&lt;p&gt;Now I plan to use two of these MLX90614 sensors in my &lt;a href="https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-one/"&gt;cloud detection&lt;/a&gt; project so there was no two ways about it - I need 2 sensors, hence two slave addresses. Below I am going to take a look at the code to change the slave address on one of these devices, and then a way of actually implementing the change.&lt;/p&gt;</description></item><item><title>Latest on this Blog</title><link>https://chrisramsay.co.uk/posts/2014/09/latest-on-this-blog/</link><pubDate>Sat, 06 Sep 2014 10:35:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/09/latest-on-this-blog/</guid><description>&lt;p&gt;I&amp;rsquo;ve been making a slow but steady stream of improvements to the blog this year which began with a migration from an ancient installation of Wordpress to the static &lt;a href="http://blog.getpelican.com/"&gt;Pelican&lt;/a&gt; HTML site generator. Many other blogs explain how this is achieved so I won&amp;rsquo;t bore you with it here.&lt;/p&gt;
&lt;p&gt;Post migration I decided to pretty much ditch all my previous posts because many of them were related to programming and were rather out of date. Oh, and in my experience, re-reading stuff you wrote years ago is never good for the soul.&lt;/p&gt;</description></item><item><title>DS18B20 Device Discovery</title><link>https://chrisramsay.co.uk/posts/2014/08/ds18b20-device-discovery/</link><pubDate>Tue, 19 Aug 2014 10:57:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/08/ds18b20-device-discovery/</guid><description>&lt;p&gt;A little bit of work stemming from from the soil temperature monitoring project; this is an aside on DS18B20 temperature sensing device address discovery with the Arduino. Being that I am going to have a handful of sensors in the ground and therefore not easily accessible for identification I need to find a way of easily finding out all the device addresses in one fell swoop.&lt;/p&gt;</description></item><item><title>Pylint and the Module hashlib has no md5 member Error</title><link>https://chrisramsay.co.uk/posts/2014/04/pylint-and-the-module-hashlib-has-no-md5-member-error/</link><pubDate>Sat, 26 Apr 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/04/pylint-and-the-module-hashlib-has-no-md5-member-error/</guid><description>&lt;h2 id="that-pesky-error-in-pylints-results"&gt;That Pesky Error in PyLint&amp;rsquo;s Results&lt;/h2&gt;
&lt;p&gt;How to avoid &lt;a href="http://www.logilab.org/857"&gt;PyLint&amp;rsquo;s&lt;/a&gt; &lt;span class="title-ref"&gt;Module &amp;lsquo;hashlib&amp;rsquo; has no &amp;lsquo;md5&amp;rsquo; member&lt;/span&gt; error when using &lt;a href="http://docs.python.org/library/hashlib.html"&gt;hashlib&amp;rsquo;s md5()&lt;/a&gt; function in your code, and the consequences of doing so.&lt;/p&gt;
&lt;p&gt;I do not use &lt;span class="title-ref"&gt;md5&lt;/span&gt; much at all these days, as it is &lt;a href="http://en.wikipedia.org/wiki/MD5#Security"&gt;known to be fairly unsafe&lt;/a&gt;; having said that, &lt;span class="title-ref"&gt;md5&lt;/span&gt; does still have its uses when it comes to comparing file likeness in non-critical applications. It just so happens that PyLint does not seem to like invoking hashlib with specific constructors and will therefore mark down code ratings as a result. See the example below:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#f92672"&gt;import&lt;/span&gt; hashlib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; HASH &lt;span style="color:#f92672"&gt;=&lt;/span&gt; hashlib&lt;span style="color:#f92672"&gt;.&lt;/span&gt;md5()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; HASH&lt;span style="color:#f92672"&gt;.&lt;/span&gt;update(&lt;span style="color:#e6db74"&gt;&amp;#39;Test my hash&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; HASH&lt;span style="color:#f92672"&gt;.&lt;/span&gt;hexdigest()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;f94b71b31c1d09d352db8b59d4f98892&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Soil Temperature Monitoring - Part Two</title><link>https://chrisramsay.co.uk/posts/2014/04/soil-temperature-monitoring-part-two/</link><pubDate>Fri, 11 Apr 2014 12:31:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/04/soil-temperature-monitoring-part-two/</guid><description>&lt;p&gt;Part two on the soil temperature monitoring project. Detailing some thoughts on how to get the sensors in to the ground in a way that will keep them protected from the underground environment. Following that, some subequent details on the construction of the sensor housings.&lt;/p&gt;</description></item><item><title>Soil Temperature Monitoring - Part One</title><link>https://chrisramsay.co.uk/posts/2014/04/soil-temperature-monitoring-part-one/</link><pubDate>Thu, 10 Apr 2014 00:00:00 +0100</pubDate><guid>https://chrisramsay.co.uk/posts/2014/04/soil-temperature-monitoring-part-one/</guid><description>&lt;h2 id="the-whys-and-wherefores-of-soil-temperature"&gt;The Whys and Wherefores of Soil Temperature&lt;/h2&gt;
&lt;p&gt;This project has its roots in a chance sighting of some, what I thought were, interesting looking API parameters on the &lt;a href="http://wow.metoffice.gov.uk/"&gt;Met Office weather data submission service&lt;/a&gt;. I&amp;rsquo;ve been running a small weather station for about a year with its data output being harvested by a RaspberryPi and packed off to the Met Office observation service.&lt;/p&gt;
&lt;p&gt;Many months ago a friend and I were idly browsing to see what other interesting data people were collecting and sending there when we spotted, to our surprise, soil temperature measurements using sensors buried at 10, 30 and 100 centimetres. These depths are certainly not arbitrary; they may represent three of the many soil horizons: A, B and C (See the &lt;a href="http://en.wikipedia.org/wiki/Soil_horizon"&gt;Wikipedia page regarding soil horizons&lt;/a&gt;). This sparked off a thoughts on the possibilities of home made sensing, gathering and aggregating soil temperature readings to a service on the internet.&lt;/p&gt;</description></item><item><title>Cloud Detection - Part Two</title><link>https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-two/</link><pubDate>Mon, 24 Mar 2014 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-two/</guid><description>&lt;h2 id="onwards"&gt;Onwards&lt;/h2&gt;
&lt;p&gt;This is the next installment on the cloud detection project. This time I am starting to test out hooking up an MLX90614 or two to an Arduino and try out pointing it to the sky in the aim of get some interesting results.&lt;/p&gt;
&lt;p&gt;Just as a friendly warning: calculations done here are rough and ready - don&amp;rsquo;t write to me to say that the cat died because of some experiment based on anything shown here. It&amp;rsquo;s all at your own risk, however, just remember the great Mr Churchill&amp;rsquo;s wise words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The greatest lesson in life is to know that even fools are right sometimes&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With that in mind, onwards with the experiments&amp;hellip;&lt;/p&gt;</description></item><item><title>Cloud Detection - Part One</title><link>https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-one/</link><pubDate>Tue, 04 Mar 2014 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2014/03/cloud-detection-part-one/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;This project has its roots in a discussion I had a while back with a friend who is a keen amateur astronomer. He had been complaining to me about how he thought that there was a distinct lack of cloud free nights in our corner of Northern Lincolnshire. In fact, he suggested, the weather was so poor that it was hardly worth having a telescope at all.&lt;/p&gt;
&lt;p&gt;Okay, so maybe that last sentence was a little exaggeration, but his argument certainly got me thinking - how many clear nights are there in the year? Being a bit of a skeptic, I am sure that the night sky is clear on many more nights than my friend suggests.&lt;/p&gt;</description></item><item><title>Adding MySQL Support to the QFTest Jython Client</title><link>https://chrisramsay.co.uk/posts/2014/02/adding-mysql-support-to-the-qftest-jython-client/</link><pubDate>Mon, 17 Feb 2014 00:00:00 +0000</pubDate><guid>https://chrisramsay.co.uk/posts/2014/02/adding-mysql-support-to-the-qftest-jython-client/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;So, you want to be able to get QFTest to talk to your MySQL database server during test execution; just a small matter of getting the Jython client to play ball - easy when you know how.&lt;/p&gt;
&lt;p&gt;This shows how to add MySQL support to the QFTest Jython client. It requires the installation of MySQL Connector/J on to the host system and a small amount of hacking of the QFTest code.&lt;/p&gt;</description></item></channel></rss>