2024
Running Large Language Models locally
The easiest way to get started with Large Language Models (LLMs) like GPT-4 is to use the OpenAI API or Azure OpenAI. However, since the LLaMA leak a variety of LLMs have been created that can be hosted locally. I was interested to see what it would take to do this and what tools are available.
2023
Steam Deck setup
I caved and finally bought a Steam Deck. The internet was full of guides to upgrade and modify it so I’m documenting some of the things I’ve tried here.
2022
Logitech K380 keyboard: Page Up/Down/Home/End workarounds
After years of using a full size (and very old) Apple USB keyboard for my Mac, I recently bought a Logitech K380 bluetooth keyboard to try something smaller that would take up less space on the desk. It’s reasonably cheap (around £35), offered support for Mac and PC layouts and can pair with up to 3 devices at once. I bought an MX Master mouse years ago which has been fantastic, so I thought I should try a Logitech keyboard to see how they compare.
2020
Issues with floating point
Floating point values normally just work, but there are a few issues with them that are useful to be aware of! My previous post discussed the representation of values, but this one will talk more about the times where things might not work quite as expected. I’m aiming for this to be a practical guide with some simple rules to follow, rather than an exhaustive study into all the issues with floating point.
Floating point numbers: some basics
A recent discussion with a colleague about issues with floating point comparisons made me realise that my knowledge of best practices boiled down to comparing floating point values using tolerances and switching to double
if issues with accuracy popped up. I figured it was time to look into it further and get a better understanding of what is actually going on.
2019
Python collection classes: a summary
Following on from the C++ collections post, it’s time to create a similar overview page for Python! There are more collection classes than this, but I wanted to revise the basics.
C++ collection classes: a summary
As I work through a bunch of algorithm problems in C++, I thought it would be useful to create a summary of the collection classes built into the standard library.
Thoughtworks Technology Radar Vol. 19: Notes
I spent a little time over the New Year catching up on some reading, giving me an opportunity to skim through the 2018 ThoughtWorks Technology Radar to get an overview of interesting developments in the field. Here are some of the things that caught my eye.
2018
Running a Code Jam
Recently, a number of teams at work have started to make use of Docker. To improve our Docker knowledge across the company, we organised a Code Jam. We’ve run a number of these events in the past and, after some experimentation, we’ve settled on a format that seems to work well for us.
Docker Cheat Sheet
I’ve been playing with Docker recently, but not enough that I always remember the commands. Here’s my cheat sheet for future Docker use.
Notes from Codility lessons
Codility has a number of lessons online to help candidates prepare for the problems on the site. I figured it might be worthwhile to make a summary of some of the algorithms from the lessons that I more easily forget.
Setting up Jekyll for building GitHub pages
Time to resurrect the old GitHub Pages site! I haven’t really touched this for the last two years, so it’s time I brought the site up to date. One part of this is installing Jekyll locally on my Mac so I can test the site without continually uploading it to GitHub.
2016
Using three.js with TypeScript
I tend to modify more projects than I create, so while I can often remember APIs, I often forget the steps I used to set everything up. Therefore, this page is a future reference for me when I forgot to do all this. (If you haven’t done this before then hopefully this will serve as a good starting point!)
Talk notes from Scottish Developers event
Today I attended a series of talks at the Microsoft offices in Edinburgh organised by Scottish Developers. Here are my hastily scribbled notes from the talks.
2015
Notes for using Windows 10 Boot Camp disk with VirtualBox
Some notes on how I got VirtualBox to boot from my Windows 10 Boot Camp drive. This will let you share a Windows install between Boot Camp and VirtualBox.
Setting up a Raspberry Pi as an HTTP proxy
I needed an HTTP proxy for testing busalert today so my Raspberry Pi was temporarily turned into a proxy server. Here’s the steps I needed to follow to get it to work.
Running Qt Creator on Windows with an Intel GMA 950 GPU
I set up a fresh install of Qt 5.4 on Windows 7 today and Qt Creator crashed on startup with an error in ig4icd32.dll. Some Google searches gave me the impression that it might be related to the Qt Creator Welcome page (which uses QtQuick) and my terrible old Intel GMA 950 GPU which I’ve got in this laptop.
2014
Making ISO Disc Images on Mac OS X
Was creating some ISO disc images this week with OS X Lion (from existing discs) and thought I would document the process.
2013
Simple Rotation Matrices
Rotation matrices can be built by combining basic rotations in X, Y and Z (see Wikipedia), but it’s also possible to describe them by setting values in the matrix directly. I’ve recently found this useful as a quick way to create a matrix to convert from a space where the X and Y axes are flipped.