Richard's blog

  • Things I’ve learnt about Wasps

    We take knowledge that we have for granted. This year wasps decided to make a nest next to the side door of my house. I noticed, waited till it was dark, applied wasp killer powder round the entrance to their nest and by the end of the next day they were gone.

    It was all sorted so quickly that I almost forgot about it, but I’m taking the time to appreciate how different this was from last year.

    Last year wasps also decided to make a nest near to the side door of my house. This nest was in a slightly different spot as wasps do not make a nest where an old one already exists. I ignored … more

  • Installing a free SSL Cert on your IIS .NET Core Mvc website

    SSL certs are getting more and more important on the web as we want to make sure that our websites are safe and trustworthy. I’ve put off installing them on my own personal web site projects because of the cost and the work involved in keeping them up to date.

    Let’s Encrypt is an open Certificate Authority that is trusted and issues free 3 month certificates. They have an API that lets you automate getting these certificates and there are several tools for Linux and Windows that use this API to save you the work of installing and keeping your certs up to date.

    I used the … more

    No Comments
  • Forms Authentication in .NET Core (AKA Cookie Authentication)

    In .NET Core MVC you're encourages to use .NET Identity, but you don't have to. You can manage your own user identities and you use forms authentication which is now called Cookie Authentication (which is a better name really).

    You need to install the Microsoft.AspNetCore.Authentication.Cookies nuget package.

    There is some configuration that needs to go in startup.cs:

    public void ConfigureServices(IServiceCollection services)




    .AddCookie(options => {

    options. … more

    No Comments
  • Launch of

    For the last few months I’ve been working at Looking4 working on our new site As a business we’ve grown organically for several years with several different websites helping you find the best parking at airports like Leeds Airport, holiday transfers and probably more holiday related things to come in the future. has been our chance to bring these things together. As a developer it has been a great opportunity to build things from the ground up; rebuilding an existing site by taking the stuff that worked well, cleaning it up and transplanting it onto a … more

  • Don't be affraid of RCSI

    Enabling SQL Server RCSI

    RCSI is not something you get from typing too much, it's a setting in MS SQL Server that is disabled by default. Arguably it shouldn't be. It stands for Read Committed Snapshot Isolation and when enabled means that you can select data from the database with less risk of locks and also know that the data you're getting was accurate when you started the request.

    I enabled it after we we started to see a lot of failed transactions in the logs due to timeouts on requests for locked resources. The thing that confused me was the locks were being taken out for transactions that were only doing … more

  • Fun with glass

    Glass duck made at Zoë's Leeds glass studio

    I went to visit my friend Zoë at her stained glass studio in Leeds. Zoë designs and makes beautiful stained glass windows and has done installations in Leeds and all over Yorkshire.

    She was running a glass fusing workshop teaching you how to design and make a glass placemat. My design is of a duck (I'm a bit obsessed with ducks at the moment, but I'll probably get over it). I spent some time getting my design right on paper first before tracing that onto the glass. There are two laters of glass that get melted together in the kiln. There are lots of options of which layer of glass … more

    Tags: art

    No Comments
  • My Windows Services Panel

    As a developer I have a lot of different types of Windows Services installed on my computer for the different projects I work on. Services like MS SQL Server Express, MS SQL Server, IIS, MSMQ and MySQl.

    I don't use all of them all of the time, but I would normally leave them running because I couldn't be bothered trawling through all of the services in Services Manager to stop and start them. Having them running all the time made my computer take longer to startup and I felt like it was slowing it down generally and stealing battery power.

    So I created My Windows Services Panel as a way to … more

    Tags: .net

    No Comments
  • NHibernate Search String Dictionary Bridge

    NHibernate Search is an extension to NHibernate that uses Lucene to give you full text search using Lucene under the hood. It also makes using Lucene in your .NET app easier than using Lucene.NET directly.

    Lucene only indexes text on a document in a flat key-value structure. Bridges are used to turn properties on your indexed documents into text.

    NHibernate Search comes with bridges for common types such as enum, but you can also write your own. This is an example of a bridge that turns a Dictionary property on your indexed objects into a set of properties on the lucene document. It only … more

  • iOS Screenshot sizes when submitting your app

    When submitting your awesome app to the iOS App Store you need to provide screenshots for all the iPhone/iPod/iPad screen sizes. In itunes connect they're labeled by the inch size of the screen, but this doesn't help you know which simulator to fire up. So, here's a handy table of all the portrait screen sizes:

    3.5 inch (4s) 640×960

    4 inch (5, 5s) 640×1136

    4.7 inch (6) 750×1334

    5.5 inch (6+) 1242×2208

    It's also worth knowing that although you can update your app description after submitting the app, you can only update your screenshots with a full new app … more

    No Comments
  • Sharing Resource Dictionaries in your Xamarin.Forms App

    The Xamarin.Forms Application base class has a Resources property that you can use to share a resource dictionary accross all pages of your app. If your app was created before Xamarin.Forms 1.4 you'll need to make sure you update and make your main App class inherit from the new Application class.

    If you like to do everything in code rather than XAML then you can create a ResourceDictionary in the constructor of you App class:

    public class App : Application


    public App()


    Resources = new ResourceDictionary();

    Resources.Add("ForegroundThemeColor", … more