The Road to the Hardrock 100

I’ve been working to get into the Hardrock 100 since 2013, and finally made it through the lottery this past December. The race starts on July 14th, this coming Friday! In three days, at 6am, I’ll jog out of Silverton, CO and begin a potentially 48 hour-long meditation on the phrase, “be careful what you wish for”. For anyone interested in following along, here are the relevant links: Runner tracking on OpenSplitTime My live-tracking splits and estimates Live race coverage by RunSteepGetHigh The course starts in Silverton and travels counter-clockwise through Lake City, Ouray and Telluride before aiming us back at Silverton, accumulating just over 33,000 feet of vertical gain along the way, all through terrain like this: ...

July 11, 2023 · 5 min

Years of Backlog, Quitting X, Twins!

Wait long enough to write and the updates are bound to be interesting! I’ve gone through many lives since I last wrote, back in July of 2020, mid-pandemic. Leaving Google for… Computer Algebra? I quit my job at Google at the end of 2021. I’m not sure I ever wrote about starting this job back in 2019. Yes, for about 15 months I was a *Staff Research Engineer *at *Google X, *a dream job on paper! In reality, fairly pedestrian and factory-like. ...

March 27, 2023 · 6 min

Dual Numbers and Automatic Differentiation

Dual Numbers and Automatic Differentiation Forward-Mode Automatic Differentiation Dual Numbers and AD Terminology Change! Binary Functions Multiple Variables, Nesting What Return Values are Allowed? Differential Implementation Term List Algebra Addition and Multiplication Differential Type Implementation Accessor Methods Constructors Differential API Differential Parts API Comparison, Control Flow Chain Rule and Lifted Functions Derivatives of Differentials Generic Method Installation Dual Numbers and Automatic Differentiation This literate essay develops an implementation of a type called Differential. A Differential is a generalization of a type called a "dual number", and the glowing, pulsing core of the SICMUtils implementation of forward-mode automatic differentiation. ...

January 11, 2021 · 34 min

Functional Numerical Methods

This page contains a literate-programming exported version a definite-integral package I built into SICMUtils, a Clojure(script) based computer algebra system based on Gerald Sussman’s scmutils. (Beware the buzzwords…) I expect that this post will fission into a full series, with a bit of explanation about how each piece fits into the whole. Until then, know that you’ve found the source of what might be the most hardcore definite integration library out there, certainly the only one written like this, in functional style with unashamed explanation of how everything works. ...

November 11, 2020 · 115 min

Power Series, Power Serious

This post spawned from work I’ve been doing on the SICMUtils library; I’ve just released 0.13.0 and I hope you’ll give it a try. SICMUtils is the engine behind the wonderful “Structure and Interpretation of Classical Mechanics”, an advanced physics textbook by Gerald Sussman of SICP fame. I’m trying to get the textbook running in the browser as a Clojurescript library, and as part of that effort I’ve had to re-implement quite a bit of numerical code in Clojure. ...

November 9, 2020 · 13 min

How to Publish CLJSJS Jars to Clojars

I’ve been doing a lot of work in Clojurescript lately, and the time finally came to pull in my first vanilla Javascript dependency. The default way to do this seems to be the CLJSJS project. CLJSJS publishes many Javascript packages in a form that you can consume from a Clojure project. For projects like React, you’ll find the latest versions of the JS libraries, packaged up and ready to go. For less active libraries like bignumber.js you might have to go bump a version and open up a pull request against CLJSJS’s packages repository… or maybe package and add the library from scratch, as I did recently with Complex.js. ...

July 28, 2020 · 4 min

Spot Check: Boulder to Long's Peak

I’m a big believer in off-the-couch adventures, and the idea of the “spot check”. If you invite me on an adventure for which I’m mildly unprepared, I’ll use my brain and say no. But if you ask me to do something that is obviously stupid given my lack of regular training, I can’t help but take it as a little test, a spot check from the universe, and say… yes. Please, please yes. ...

July 27, 2020 · 4 min

Optics and the Principle of Least Time

(This is a writeup of Exercise 1.3 from Sussman and Wisdom’s "Structure and Interpretation of Classical Mechanics". See the solutions repository for more.) Law of Reflection Geometry Calculus Law of Refraction Calculus Geometry The problem explores some consequences for optics of the principle of least time. The exercise states: Fermat observed that the laws of reflection and refraction could be accounted for by the following facts: Light travels in a straight line in any particular medium with a velocity that depends upon the medium. The path taken by a ray from a source to a destination through any sequence of media is a path of least total time, compared to neighboring paths. Show that these facts imply the laws of reflection and refraction. ...

June 10, 2020 · 6 min

Half Angles from Euler's Formula

I’ve been reading the lovely Visual Complex Analysis by Tristan Needham, and the visual-style proofs he’s been throwing down have been wonderful and refreshing. I’ll write more about this book and its goals later, but I was inspired this AM to write up a proof of the half angle identities from trigonometry using some of the tools from the book. Here’s the half angle identity for cosine: This is an equation that lets you express the cosine for half of some angle in terms of the cosine of the angle itself. As you can imagine, there are double-angle, triple angle, all sorts of identities that you can sweat out next time you find yourself in a 9th grade classroom. ...

June 5, 2020 · 3 min

Computing the Universe

Humans have a strange relationship with reality. We’ve developed a large body of mathematical tools that sometimes seem to let us beat time. We can send spaceships out to take photos of distant planets, and be almost totally sure that they’ll make it. It takes minutes (seconds?) to simulate voyages of thousands of years. We can examine light from stars millions of light years away, and make good guesses about the stars’ ingredients. ...

May 26, 2020 · 3 min