Blog posts

2024

Designing Software Along Axes of Change

2 minute read

Published:

Software is tough to design - not because programming itself is difficult, but because the technical requirements and user input are subject to change. As someone who is not a software engineer by training, cutting through the decision paralysis to design programs to accommodate change is one of the most difficult parts of programming.

Setting up and Debugging Editable Python Packages

2 minute read

Published:

Editable installs in Python are kind of broken, at least in more recent versions of Python 3 (~3.7+ at least). The purpose of an editable installation is to allow the developer of a package to install and import it in the same fashion that any user would, and enable changes to be made to the installed package without needing to reinstall the package after every single change. Unfortunately, that functionality seems to be broken, at least using pip and venv.

The Eternal Search for a Good Graph Visualizer

2 minute read

Published:

Graphs (in the mathematical sense) underly many common problems, as they are an elegant way to manage “many to many” relationships. They have certainly captured my attention in the last few years as I attempt to build a workflow orchestration tool/data processing pipeline runner for use in my own research, which requires a graph (specifically, a DAG) to keep track of the dependencies of each step (see my current effort here).

Setting up the MATLAB engine for Python

1 minute read

Published:

You can run MATLAB commands in Python using the MATLAB Engine API for Python. This page documents what I’ve learned about the process of setting it up.

Setting up this website from template

2 minute read

Published:

Setting up this personal website from the template at academic pages involves several steps:

  1. Set up localhost using ruby so that the website can be served for development.
  2. Setting up the markdown generator .ipynb files to fill in Publications (from ORCID) and Talks (from a .csv file). Also manually add the corresponding PDF files for the Publications and Poster Talks.