The collection of all my dotfiles.
I also use this repo for personal projects and tinkering. Having all of my projects in one place makes it easy to share code between projects and ensure tests are run when pushing code back to the repo.
It's not perfect, but ideally this repo should be able to be installed on any Linux distro and rope in all dependencies. I tried to test this using GitHub's Workflows, but I haven't tried a fresh install on all platforms.
You should be able to get things started on Ubuntu using the following:
git clone https://github.com/cwboden/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap/bootstrap.sh
After bootstrapping, the necessary dependencies should be installed to run the Jekyll server which contains the portfolio website and blog. You can start the server by running:
cd ~/.dotfiles/docs/
bundle exec jekyll serve
I had some fun putting together the build system for my repo. It was also good practice for
learning about the Protocol
paradigm in Python.
The main goal is to link together some Predicate
that will inform the build system whether an
action needs to be taken (e.g. if a file is not present, a build artifact doesn't exist, etc.) with
an Action
which is what the build system will actually do when the Predicate
isn't met. There
may be further improvements to this idea, but I felt like it was a good starting point for generic,
conditional building.
An attempt at recreating the argparse
library from Python in Rust. The implementation and
featureset is still primitive, but can be expanded for any additional features required by future
projects.
I recreated a path-finding project from an old class (EECS 281) in Rust. I decided not to follow through with all of the I/O required for the class's autograder and used integration tests instead.
Try it out with:
cargo run --package path_finding -- --help
Despite it's relative infancy in the game dev scene, I've enjoyed prototyping games and systems in Bevy Engine. Most of the projects are incomplete, but you may find some nuggets of information buried within.
An in-progress port of Jens Drögemüller and Helge Ostertag's Gaia Project. The UI is still extremely primitive, but I've been able to interlace systems like:
- The power cycle, including charging, spending, reserving, and paying for power actions.
- Claiming federation tokens, with resource rewards being automatically awarded.
- Paying for various actions like terraforming, buildings, and research.
Try it out with:
cargo run --package gaia_project
Decks and Piles of arbitrary "Card" objects can be created, shuffled, and reset to initial positions. The idea is to make it easier to prototype simple card games without needing to create the deck logic every time.
An in-progress example using a standard 52-card deck might someday be completed.
Another board game port of Brandon Beran's Pocket Ops, a variant of tic-tac-toe where guessing your opponent's move means they won't be able to play a piece!
In it's current state, it's just tic-tac-toe, since I can't think of a good way to obscure your moves from an opponent's if playing on the same screen / keyboard, but it has been a fun project to practice using Bevy.
Try it out with:
cargo run --example pocket-ops