New Site

Sat 24 February 2018

Welcome to my personal website. I hope to use the site to write about work I am doing, post small pieces of analysis and code, and link to things I find interesting. I'm mostly interested in demography and other social research on one hand, and statistics, programming and data analysis on the other, so the majority of the posts will probably relate to these topics.

I will use this first post by writing a little bit about how I built this site. This is not a tutorial on how to build a website, though, as there are plenty of these written by much more well-qualified people! I used pelican, which is a static website generator written in python. My experience in web development is pretty limited, so it is helpful to have a tool like this to do the hard work. A static website, roughly speaking, is one that does not rely on a web server crunching data and changing website content in response to interactions with the reader. This is ideal for a personal website like this one.

The process of creating a website with Pelican is pretty simple. I write posts and pages in simple markdown format, and then ask pelican to turn them into html, styled using one of the many themes developed by pelican users to handle the outward appearance of the site. No particular technical nouse is need for this step - a single pelican terminal command sets up the skeleton files need for your site:

pelican quick-start

A second command generates html pages from your markdown files for your content:

pelican content

The site itself is hosted on Amazon Web Services, using route 53 to manage the domain name and S3 (which I like to think of as being a big hard drive in the sky) to store the files themselves. Setting up AWS itself is probably the most difficult part of the process, but happily there are lots of helpful guides. The cost so far has been a flat domain registration fee, plus a few pence per month in fees for domain forwarding and data transfer fees.

I used pelican mainly because it is written in python, which I am familiar with, so if I want to know more about the nitty-gritty I probably can, but you don't really need to know any python to actually use pelican. One good alternative is jekyll, which I think is written in ruby, but has the advantage of working with github pages so you can host the site using github with minimal effort (and for free).