Picture of a lake in Canada

Let's Encrypt - Securing internal websites

January 30, 2021 Like many software developers I have a few websites running on my LAN. Most of them are either running on plain HTTP, or have self signed certificates. Free certifciates signed by publically trusted CAs have been around for a while now, however the most commonly used method of getting them (in my experience anyway) has been via HTTP powered verification. This can make installing and renewing certificates on sites that are not internet facing difficult or too risky. Read more...

Real time electricity monitoring

June 27, 2020 Electricity Monitoring I thought it would be a fun project to monitor my electricity usage and get an idea of the changes in our usage patterns over time. Unfortunately our meter is not a smart meter, its a Landis & Gyr E350. I did find a guide on building your own optical probe for meter reading but didn’t want to interact with the meter and I especially wanted to avoid triggering the tamper alarm! Read more...

Kasa Smart Light & Unifi IoT Network

March 18, 2020 Smart light Like many nerds I am using Ubiquiti’s Unifi networking gear. As such I have a VLAN and wireless network setup specifically for my IoT devices. Recently I purchased a TP-Link Smart Light (KL130) and wanted to get it setup on my IoT network. Unfortunately it failed to connect as the process got stuck after providing the IoT WiFi connection details. I was able to get it working without a problem to my non IoT network which lead me to the conclusion that there was a restriction on the IoT network that was preventing the setup to complete. Read more...

Shiloh Speaker Presentations

November 16, 2019 Recently Shiloh Church started to use Office 365. O365 provides access to the Office suite of applications as well as enabling centralised document storage and identity management. Thanks to Microsoft’s Non-profit scheme we also have a bunch of Azure credits to use on projects. These credits have come in very useful for the project I am going to describe below. Audio Visual Team Shiloh Church is my home church and I volunteer on the Audio Visual Team along with a bunch of other people. Read more...

Learning Rust

May 9, 2019 In my earlier blog post about building an inky wHat dashboard I mentioned using Rust to parse the calendar feed from my Google Calendar. To get a list of events upcoming events I had previously been using a Go library which parsed the ISC file from Google Calendar however there didn’t seem to be a way to make it output repeating event occurrences. This meant that my weekly reminder to put the bins out was not being displayed on the dashboard. Read more...

Inky wHat - Dashboard

February 20, 2019 I am quite a Raspberry Pi and Pimoroni fan and was given an inky wHat for Christmas. The inky wHat (and pHat) are E-ink / ePaper displays similar to the Kindle screens which are easy to read in bright sunlight, they also use very little energy and so are a great candidate for a mini-dashboard powered by a Pi. Its important to note that the inky wHat will only display 3 colours, red, white or black so this isn’t an appropriate choice if you want a full RGB dashboard. Read more...

Hugo, GitLab, Azure and Cloudflare

February 3, 2019 My new blog is powered by a few different technologies and in this post I will run through some of the steps required to get it setup. It wasn’t as straight forward as I had hoped so I will document some of the problems I encountered and how I overcame them. First of all the blog is powered by the following stack: Hugo - a static website generator GitLab - git source control & Continuous Deployment (CD) platform Azure Blob Storage - static website hosting Cloudflare - DNS / TLS / Web optimisation service Hugo Hugo was pretty easy to get started with thanks to the tutorial. Read more...

Switch to Hugo

February 2, 2019 So its been quite a while since I last blogged, and in fact a while since I have even had the domain name registered. (I totally didn’t think it was taken by someone else and end up registering some other domains…). Anyway members of my team at C5 have been encourage to build our own blogs and start producing some content so I am going to try and blog more frequently. Read more...

MongoDB LINQ Queries executing on the client side.

February 3, 2014 , posted under programming ASP.NET C# LINQ MongoDB infometrics For my Final Year Project at University I have been building “Infometrics”, something I may well provide more detail on in the future. In this case the only thing you need to know about it that its a C# App written with a MongoDB backend. Now the crux of the issue I was experiencing was that all database operations seemed to be slow, despite not having that many documents, and indexes set up. Read more...

Getting started with Nodejs, MongoDB and Tower.js

February 22, 2013 , posted under JavaScript nodejs towerjs placement I have recently purchased a raspberry pi to play with, my primary reason for getting one was to have a lightweight linux server that I could develop for. There has been lots of good things said about NodeJS recently and so I wanted to see what all of the hype was about and try and create a basic chat application. Most of my time programming has been spent working on . Read more...

Getting started with logstash Part 2

December 13, 2012 Getting started with logstash part 1 Statsd & Graphite In my last post I mentioned statsd and graphite, these are 2 tools that I use in conjunction with logstash and they make a good team! So the general idea behind running these utilities together is that you can get fancy graphs based off certain events, so for example it might be nice to see a longer term trend of IIS response times for a given website or something to that effect. Read more...

Getting started with logstash

October 24, 2012 , posted under logstash grok log management iis php error log php Logstash is a tool for doing fancy stuff with log files. Its main purpose is to help administrators/IT staff with the monitoring of logs, specifically it can be used to push logs to a central location where the logs are stored and indexed for later searching. A basic logstash setup (like the one I am implementing at work) consists of log shippers (web servers and database servers) and then one server where the logs are stored, indexed and searched (in my case this is a Ubuntu server). Read more...