Short, practical notes on Python, machine learning, and research tooling: fixes for problems I've hit, speed-ups, and write-ups of workflows I use. Browse by topic.
In my last post I described dev-hub, a private GitHub repo that acts as mission control for Claude across my repos. Most of the time I run dev-hub tasks from Claude Code, either on my machine or on the web, where Claude can push branches and open pull requests itself.
I have a handful of research and side-project repos that all need the same kind of upkeep: tests that were never written, dated packaging, automated checks (continuous integration, or CI) that don’t exist, outdated READMEs. None of it is hard, but it never makes it to the top of the list; a lot of development stops once things work, as in plenty of research codebases.
JB2008 is an emperical atmospheric neutral density model (long name Jacchia-Bowman 2008). It is the most recent itteration of the Jacchia-Bowman family at atmospheric models and incorporates both Solar and Geomagnetic activity into the modelling of atmospheric neutral denisty, temperature, and exospheric temperature.
Persisting ML/AI models (or model serialization) allows users to save models that they’ve trained so that they can be reloaded and reused. Model persistence is important as it can save time and allows models to be shared with other users without the need to retrain the model (which can be computationally expensive and time consuming) or share the training data set (which can be large).
Many of Pandas read functions have the ability to read files from the internet. This can be helpful you’re writing tutorials or examples and want them to work even if users don’t have the data. Or if you want to quickly look at data without downloading it.
Often when working in science/research we are rapidly developing and modifying code (and maybe not following the very best practices for coding). In these instances we may not be writing, developing, or installing Python modules which can be accessed by the Python interpreter. Rather we may have a directory with set of scripts, functions, or classes. In Python in order to access these without installing a module we need to add the file path of our directory to the Python path. This can be easily acomplished using the sys module.
Environments in Anaconda and Python allow you to create a named and isolated copy of Python. Within these environments you can work with specefic versions of Python and packages without affecting your base installation. These enviroments make it easy to: