Blog

The Dancing Robot Waiter

December 2, 2024

Another promising research direction.

Cuboid Inertia: Shells, Wireframes, Vertices

September 2, 2024

The inertia matrix for cuboids with some different mass distributions.

Confidence Intervals for Wishart Random Matrices

January 2, 2024

Algorithms to compute the probability that a Wishart-distributed matrix lies within an interval.

Inertia Tensor of an Ellipsoidal Shell

August 5, 2023

Derivation of the inertia tensor for an ellipsoidal shell.

New Features in pyb_utils

July 17, 2023

Some new features in pyb_utils to make working with PyBullet even easier: rigid body construction, named tuples, and quaternion utilities.

Collision Detection in PyBullet

December 27, 2021

How to compute the shortest distances between objects in PyBullet for arbitrary robot configurations.

Cut, Copy, and Paste Files from the Command Line

July 11, 2021

Conveniently cut, copy, and paste files between directories without leaving the terminal.

Implementing Lagrangian Mechanics Three Ways

June 9, 2021

A tutorial on computing the dynamics of a robot using manual, automatic, and symbolic differentiation.

A safer rm

March 19, 2021

Safer alternatives to the venerable rm command line utility.

Quirks in qpOASES

February 25, 2021

A few issues I've run into using the quadratic programming solver qpOASES, and how to solve them.

vim: highlight match under cursor

January 23, 2021

A simple vim plugin to highlight the occurrence of the search pattern currently under the cursor.

SSH: agent key RSA returned incorrect signature type

December 20, 2020

Background on and resolution of the SSH error agent key RSA returned incorrect signature type.

j, a directory navigation tool

June 13, 2020

A bit about my directory nagivation tool j and what I learned developing it.

Missing Ligatures and How to Find Them

April 26, 2018

Examination of the occurence of ligatures in English and the ability to restore them when missing.

A Non-Comprehensive List of Curses

February 25, 2018

An overview of some curses I found interesting.

Spoilers and Metadata

January 7, 2018

How does a book's metadata create spoilers, and do those spoilers influence my enjoyment of the book?

Capstone: Lessons Learned

August 19, 2017

Lessons learned from my fourth-year engineering Capstone project.

Capstone: The Journey Thus Far

March 20, 2017

Just over halfway through the Capstone Design Project of my final year of undergraduate engineering. This is the story so far.

The San Francisco Coffee Crawl

December 28, 2016

The story of the day I decided to try six (it ended up being seven) different coffee shops in San Francisco.

Ctrl-P in the Terminal with fzf

September 11, 2016

Extend fzf to automatically change directories and open files when selected.

View and Clone a Git Repo with the Same URL using Nginx

August 23, 2016

Set up nginx to use the same URL to view a git repository on the web and to clone the repository over HTTPS.

Duration Anxiety

April 25, 2016

The anxiety that arises from an activity's duration, which serves to increase the duration and leads to more anxiety.

Local Help

December 4, 2015

Instead of jumping right to Google and Stack Overflow, give your local machine a chance.

Why zsh?

October 13, 2015

I recently switched to zsh from bash. Here I explain a few reasons why.

fzf, vi-mode, and fixing delays

September 30, 2015

The fzf fuzzy-finder tool was only appearing for me after an annoying delay. Here I've documented how I fixed the problem.

Bash Tricks I Like #3

September 20, 2015

Always have access to the current git branch.

Bash Tricks I Like #2

September 12, 2015

Identify all of the colours in your terminal.

Why I Favour the Night

July 12, 2015

In defense of those whose productivity doesn't wane even after the sun goes down.

A Simple Git Workflow

June 24, 2015

Guidelines to using git with a team.

Why I Dislike Time-based Tasks

May 31, 2015

Many tasks suffer because they are performed for a certain amount of time rather than given a certain amount of effort. Don't do this.

Bash Tricks I Like #1

April 19, 2015

An easy and elegant alias for moving up directories.

A Tree-based Approach to Mathematical Functions

February 8, 2015

Modelling and evaluating mathematical functions using trees.

Anagram Sort

January 27, 2015

If you want to sort strings such that all anagrams fall next to each other, how do you do it?

Do More, Plan Less

November 23, 2014

It's easy to be disappointed when you don't live up to all of your wonderful plans. So stop just planning them and start doing them!

Let's Talk String Reversal

October 8, 2014

A guide to some algorithms for checking if a string is a palindrome and string reversal.

Organized Organization

October 1, 2014

It's important to stay organized. One of the keys to staying organized is doing so in an organized way.