---
title: "Code Demos"
---

This section has code and demos that cover many topics and serves several purposes. The pages here are organised thematically, though it will likely take me some iterating on the quarto website yaml to get there.

*The goal in many of these examples and demos is NOT clean, efficient coding, but exploring HOW the code works and how to accomplish something. That often means creating LOTS of extra variables, copy-paste, and being extremely verbose.*

## Clarify thinking and testing

Clarify *what* I'm actually trying to do, and what the expected outcomes are. Then figuring out a) how do get those, and b) why I sometimes don't, which can be just as important. Doing this sort of testing here instead of in-project can be very helpful as using minimal examples forces me to isolate the issue I'm trying to solve from all the particulars of a given dataset or project structure.

## Central location for useful bits

A central point for (relatively) clean, complete things that I want to be able to use across many projects (e.g. 2d autocorrelation, the Johnson distribution, how to use certain packages, fonts, colours and other plotting things etc). Having one central reference point keeps me from having to either reinvent the wheel or remember which project I put the wheel in, and having many slightly different variations. And improvements/extensions can then be accessed across projects.

## Understanding code, testing beyond standard uses

I spend quite a lot of time figuring out how to do things in code, understanding how code works, and double-checking everything is working correctly. There are a lot of good demos and tutorials out there (e.g. stackoverflow, some package vignettes and websites), but I often end up needing to figure out weird edge cases. And I often end up doing something similar later, but needing not the final answer, but some intermediate step along the way.

## The process of coding

I also think there can be value in seeing how I've solved a problem and tested the various avenues, both for my own future reference and others. For one, if I do later have a need for one of those side avenues, they're available. For another, it exposes the actual process of coding a bit more than the usual tutorial that has cleaned everything up start to finish. And it gives a better starting point for additional development potentially much later if I can see what I've already tried. Maybe most importantly, there are few tutorials/walkthroughs I've followed that don't end up with some sort of error, especially as soon as I try to modify them for my purposes. Seeing where I've hit errors, what caused them, and how I solved it can be incredibly helpful, rather than only seeing what worked.

## 
