• Making a CV in LaTeX

    As one of my professors pointed out a few years ago you should always keep your CV up to date. This is something I am bad at even though my CV is a pretty simple collection of Technical skills, Educational achievements and work history. Part of my problem is that I find Microsoft Word painful to use, and in general it’s probably not a great idea to write a CV in Markdown (though it could definitely be done). Fortunately I know some LaTeX and can use Pandoc so this is a totally solveable problem.

  • Automatic tag pages for Jekyll on Github Pages

    The extremely useful jekyll-tagging plugin doesn’t work on github pages, but it is still possible to automatically generate tag clouds and tag pages, just slightly more difficult.

  • The cake is (not) a lie

    Recipe: replicating the Portal Cake.
  • Home assistant - cycle scenes with a single button

    When I set up our lounge fan I had an excellent idea to add a physical switch that could control it. Initially this was setup to turn it on and off, but, given that this exists to parent and visitor proof the house I decided I would make it cycle through the fan speeds. It turns out that this seemingly simple request is a little more complex than I anticipated.

  • Using a Knowledge Management System

    Using a personal knowledge management system has revitalised my learning and reinforced good habits.
  • Too hot? Love Coffee? Lets make cold brew

    It's hot outside, time to crack out the cold coffee. Remember, you don't need any special equipment to make cold brew.
  • Answering common code interview questions in Python 3

    It’s fairly common practice in interviews for the interviewee to be asked to present their answer to a reasonably simple coding problem in the language of their choice. As a result it can be good practice to work through some of these in preparation. The list I’m using is from Simpl¡Learn’s article Top 40 Coding Interview Questions You Should Know.

  • Automatically numbering Figures in Markdown

    If you're writing academic style documents in Markdown/HTML it can be handy to be able to automatically number the figures. Here's how to do that using HTML and CSS.
  • rsync everything

    A quick post with the basics of rsync for those (like me) who forget the syntax on a regular basis.
  • Connect an Arduino to a Rasberry Pi via an HC-05 Bluetooth Module

    Walk through of how to connect an HC-05 bluetooth module to a Raspbery Pi and setting up a service to automatically connect the device on startup and disconnect.
  • Deploying a React and Flask project on Ubuntu 18.04 using Nginx and uWSGI

    A walkthrough of the process of setting up a React and Flask project on Ubuntu 18.04 using Nginx and uWSGI
  • Writing a personal statement

    Writing a personal statement for an application can be tricky, especially if all you have initially is some take on “because it’s awesome!”. To get past that first hurdle it can be tempting to just write that for the required length so, lets do it:

  • Using Google Fonts With WeasyPrint - Two Ways

    I needed to generate a pdf and I was looking for a way to do so that didn’t involve me writing raw Latex (I use Pandoc for a reason k). So today, for the first time I tried using WeasyPrint in order to programatically generate pdf’s from Jinja2 templates.

  • What Do You Mean A Comma Is An Illegal Format String Specifier?

    Learning Java at university: life lessons. Sometimes it's the silly things that have you stuck for longer than you'd like to admit.
  • Welcome Week: Module Choices, Ice Breakers And Imposter Syndrome

    My first week at university was somewhat different to the usual structure. I found myself reflecting on why I'm doing this and focusing myself very much on what I want to get out of it and how to get there.
  • Why Computer Science?

    Having graduated 15 years ago(!) with a humanities degree I occasionally get questions about why I'm going back to university to study Computer Science. As I'm planning on blogging my experiences I thought I'd start with why I've chosen to go back, and what inspired me in the first place.
  • Bullet Journaling Saved My Todo List

    Paper lists have always failed me and my digital todo list was going the same way, with tasks festering undone for months on end. Bullet Journaling helped me fix it.
  • Hacking Femininity Part 1: Skincare

    I recently fell in love with Micellar Water. Having tried repeatedly and unsuccessfully to get a skincare routine to stick I have finally found one that might just manage it.

  • Manipulating the clipboard on Mac using python3

    Accessing and manipulating the contents of the Mac clipboard using Python3.
  • Donation Jars

    When you have a workshop everything looks like an opportunity to make something

  • 3D Printing with Ninjaflex on a Mendel90

    Today, for the first time I tried printing with Ninjaflex. Having not printed with it before, I was a little concerned that it might prove a touch difficult. It really didn’t, but I did learn that most people set their printers to run a lot hotter and faster than I do.

  • Rainbow text using CSS

    I fancied making some rainbow text for a project I’m working on, and in order to maintain accessibility, I wanted to do it using css. It turns out that that isn’t actually too difficult. All you need to do is:

  • Bat goggles

    These were developed to mimic as closely as possible bio-sonar using an Arduino, HC-SR04 Ultrasonic distance sensor and a piezo buzzer as part of a workshop to introduce school children to the basics of electronics and coding.

  • Add text and logos to your openSCAD files with no faffing

    [EDIT: Quite a lot of this post has been re-written, as it was pointed out to me that the text() module was inbuilt, and that perhaps I shouldn’t try doing this stuff in the middle of the night after entertaining an 8 month old all day. I have re-written this post rather than take it down because I’m always pleased when people point out a better way to do things, even if it does make me swear because I spent ages looking for the simple answer and couldn’t find it.]

  • Silly Strings: Passwords in Python

    I’ve been playing with Flask a lot in the last few days. If you’re going to do anything with sessions in Flask you first need to generate a secret key which you use to cryptographically sign the session. I got a tad bored of mashing the keyboard to generate them so I wrote a short script to do it for me:

  • It's alive! Alive!

    After a lot of work from thinkl33t (@thinkl33t), badspyro and myself Bugzilla is complete. Like her smaller brethren she is battery powered, although in her case the battery is somewhat bigger.

  • Giant LED eyes v2

    Having proved I could print a shell 5 times the size of a standard LED I thought I’d repeat the process on MadLab’s newly acquired resin printer (it’s a Form 1+) to see what the difference in quality was.

  • Giant LED eyes

    Cover: IMG_0496.jpg, IMG_0497.jpg

  • Python battleship

    For the lovely ladies on my short Introduction to Programming course here is an answer to the code challenges at the end of the course, this is not the only answer, nor is it necessarily the best answer but it does work and has been thoroughly tested. The challenges were to add the following functionality to your program:

  • Big Fat Gypsy Weddings: Series Two: No Place Like Home

    Somehow I managed to miss this one. A whole series went out without it coming to my attention, and even when ‘Born to be Wed’ was on I was off Twitter and although I caught a couple of comments about gypsies I didn’t really put two and two together. This time however, I came on to Twitter early enough in the evening that I spotted this:

  • Frequently Asked Questions

    Answers to questions I get asked when people find out I live on a boat.
  • If I’m not a feminist what am I?

    On the appropriation of the word feminist and what it means to want equality in 2010.
  • Consideration of ill conceived jokes

    Unfunny "jokes" on Twitter: Paul Chambers and Gareth Compton.
  • Assumptions

    I am other.

subscribe via RSS