Blog posts

2026

Good Software Rules

3 minute read

Published:

These are rules to reread, not slogans to admire.

Planar Homology: Applications and Intuition

4 minute read

Published:

Exploring the applications and intuitive understanding of planar homologies in projective geometry, computer vision, and geometric transformations.

2025

Problems of China’s Math Education for Students

3 minute read

Published:

An analysis of the systemic problems in China’s math education system, examining what works and what doesn’t, and comparing approaches with other countries.

Setting Up Jupyter Terminal Keyboard Shortcut

1 minute read

Published:

Learn how to quickly create a new terminal in Jupyter using a custom keyboard shortcut. This is especially useful for developers who frequently need to run shell commands while working in Jupyter notebooks.

GraphHopper paths are edges, not nodes

3 minute read

Published:

GraphHopper makes a deliberate design choice: paths are represented by edges, not nodes. This matters for correctness (turn restrictions/costs), fidelity (multiple parallel edges between the same nodes), and efficiency (edge properties drive routing).

2024

GPT Chats

6 minute read

Published:

Some chats from ChatGPT

argmax to multinomial

2 minute read

Published:

Why use a multinomial function to get the next word prediction in a GPT (generative) model rather than outputting the id with the largest probability?