Blog
- November 17, 2025
A look at some linear algebra through the lens of optimization and how it can be applied to robot manipulator control.
- August 18, 2025
Details on the implementation of collision avoidance between a robot and a thrown ball.
- February 19, 2025
A fun project developing a simple game of tag where you play against a computer agent trained with reinforcement learning.
- December 2, 2024
Another promising research direction.
- September 2, 2024
The inertia matrix for cuboids with some different mass distributions.
- January 2, 2024
Algorithms to compute the probability that a Wishart-distributed matrix lies within an interval.
- August 5, 2023
Derivation of the inertia tensor for an ellipsoidal shell.
- July 17, 2023
Some new features in pyb_utils to make working with PyBullet even easier: rigid body construction, named tuples, and quaternion utilities.
- December 27, 2021
How to compute the shortest distances between objects in PyBullet for arbitrary robot configurations.
- July 11, 2021
Conveniently cut, copy, and paste files between directories without leaving the terminal.
- June 9, 2021
A tutorial on computing the dynamics of a robot using manual, automatic, and symbolic differentiation.
- March 19, 2021
Safer alternatives to the venerable rm command line utility.
- February 25, 2021
A few issues I've run into using the quadratic programming solver qpOASES, and how to solve them.
- January 23, 2021
A simple vim plugin to highlight the occurrence of the search pattern currently under the cursor.
- December 20, 2020
Background on and resolution of the SSH error agent key RSA returned incorrect signature type.
- June 13, 2020
A bit about my directory nagivation tool j and what I learned developing it.
- April 26, 2018
Examination of the occurence of ligatures in English and the ability to restore them when missing.
- February 25, 2018
An overview of some curses I found interesting.
- January 7, 2018
How does a book's metadata create spoilers, and do those spoilers influence my enjoyment of the book?
- August 19, 2017
Lessons learned from my fourth-year engineering Capstone project.
- March 20, 2017
Just over halfway through the Capstone Design Project of my final year of undergraduate engineering. This is the story so far.
- December 28, 2016
The story of the day I decided to try six (it ended up being seven) different coffee shops in San Francisco.
- September 11, 2016
Extend fzf to automatically change directories and open files when selected.
- 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.
- April 25, 2016
The anxiety that arises from an activity's duration, which serves to increase the duration and leads to more anxiety.
- December 4, 2015
Instead of jumping right to Google and Stack Overflow, give your local machine a chance.
- October 13, 2015
I recently switched to zsh from bash. Here I explain a few reasons why.
- 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.
- September 20, 2015
Always have access to the current git branch.
- September 12, 2015
Identify all of the colours in your terminal.
- July 12, 2015
In defense of those whose productivity doesn't wane even after the sun goes down.
- June 24, 2015
Guidelines to using git with a team.
- 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.
- April 19, 2015
An easy and elegant alias for moving up directories.
- February 8, 2015
Modelling and evaluating mathematical functions using trees.
- January 27, 2015
If you want to sort strings such that all anagrams fall next to each other, how do you do it?
- 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!
- October 8, 2014
A guide to some algorithms for checking if a string is a palindrome and string reversal.
- October 1, 2014
It's important to stay organized. One of the keys to staying organized is doing so in an organized way.