Historically, I have not documented my personal projects. With a burst of motivation and energy in the Fall of 2023, I started this site to document a very long running project, the Steam Trike. Over the previous ~15 years, I had done a lot of research into various aspects but had not really written down my findings or ideas. Furthermore, actual calculations were very sporadic and disjointed. The only record of anything was a small Moleskine notebook.
Having secured a "Gmail for your Domain" (now Google Workspace) account for clickopolis.net years ago, I have access to Google Sites. I won't be winning any design awards, but the WYSIWYG editor lets me get down thoughts quickly while allowing for organization.
One aspect of my project documentation that has always been lacking is a way to document actual calculations in a way that makes sense. Microsoft Excel or its Google equivalent allows for some easy math, but isn't great for documenting equations or the chain of thought that leads from one calculation to another. This is what Jupyter notebooks are for.
Years ago, I had tried doing some calculations for the Steam Trike in Octave/Matlab, but I am more familiar with Python from work, and the Jupyter format really lends itself to explaining the course of calculation in a way that wasn't possible with Octave.
For the Steam Trike Calculations notebook, I documented the calculations for a single iteration while building code that could be used to calculate other iterations. Assumed parameters are introduced along the way as they are needed. Both assumed and calculated parameters are assembled in a dictionary that can be displayed as a pandas dataframe at the end for easy comparison.
Unfortunately, there is no direct Jupyter integration with Google Sites; you can't just embed a Jupyter notebook file and expect it to work. Instead, I have found two workflows:
Jupyter/Google Colab -> Github -> embed nbviewer URL (what I use for Steam Trike/Calculations)
This setup will automatically update the page embedded on Google Sites a little while after a commit is made to Github, but relies on the 3rd party website nbviewer (it also requires your github repo to be public)
Develop notebook locally or in Google Colab
Commit changes to Github repository
On Google Sites, embed a page to the nbviewer URL for the notebook in github
Jupyter -> HTML export -> Google Drive -> embed
This workflow requires you to manually export the notebook as HTML and get it to Google Drive, either via local mount or web interface
Develop notebook locally
Export as HTML
Upload HTML export to Google Drive
On Google Sites, embed exported HTML