I do lots of programming projects, and GitHub is the place where developers share their code and collaborate on open-source projects. My most recent projects are all published as GitHub repositories, where all the code is stored alongside issues, ideas for features and improvements, documentation, and more. I plan to eventually do a post for each and every one of my GitHub repositories, which will link to the posts when they are finished.

# Math

How mathematical. . .

## Excel Sine Waves

Nice-looking sine waves in Excel, with conditional formatting.

## How Long Would it Take to Print Out YouTube?

Hint: a really, really long time.

## March Madness Mathematics

I break down the mathematics of creating a perfect March Madness bracket, with the power of statistics.

## March Madness Mathematics – A Note

*Here’s a segment of my “March Madness Math” post that I excluded because it didn’t really fit in with the rest of the post, and it didn’t seem necessary to include.*

## Easter Search Trends

Happy Easter everyone^{1}! To celebrate, I’m doing two posts this weekend. This post^{2} is about the trends in search volume data relating to Google searches for “Easter”^{3}.

## Updated Chaos Game Fractal Generator

I have created another version of my chaos game fractal generator program. The new version allows for the user to input the number of vertices used to generate the fractal, as well as adding one (optional) rule: whether the same vertex can be selected more than once in a row. This post, in which I … Read moreUpdated Chaos Game Fractal Generator

## Happy Pi Day!

Happy pi day everyone! π

## Conway’s Game of Life

Conway’s Game of Life is a simulation of cells interacting with other cells, or an example of cellular automata. White squares represent dead cells, and black squares represent live cells. There a few simple rules governing the universe:

- Any cell with less than 2 neighbors dies from loneliness
- Any cell with over 3 neighbors dies from overpopulation
- Any cell with 2 or 3 neighbors stays alive
- Any dead cell with exactly 3 neighbors can become alive (through reproduction)

The simulation is performed using these rules, which are repeated over and over on the entire grid. These simple rules can lead to extraordinarily complex systems. Most systems, however, (especially random ones) will eventually collapse into unmoving shapes or simple oscillators. I created a version of Life in JavaScript using the HTML5 canvas. A 2-dimensional array stores the grid of squares. You can run it here or see the code here. The simulation is completed in a “closed” universe, where I have border cells (not shown on the screen) on the edges to prevent calculation errors with cells missing neighbors. These cells are always white and have no calculations performed on them. The program I wrote is not interactive, as I just wanted to see if I could make a version of Life using JavaScript. I might make an interactive one in the future, but for now I would recommend this simulation that I have been using. My programs starts with half of the cells alive (randomly selected) and eventually stabilizes. If you refresh, the simulation will restart.

## Bézier Curve Rainbow

I decided to learn more about Bézier curves, so I read this excellent Wikipedia article about them. The part that I used the most shows animated diagrams of Bézier curve formation. What I got out of it was this: if we have the x and y coordinates of points a, c, and b we can create a quadratic Bézier curve from them. As we … Read moreBézier Curve Rainbow