{"id":19331205,"url":"https://github.com/cwboden/.dotfiles","last_synced_at":"2026-04-12T18:09:40.087Z","repository":{"id":37063215,"uuid":"132951644","full_name":"cwboden/.dotfiles","owner":"cwboden","description":"My dotfiles and some personal projects","archived":false,"fork":false,"pushed_at":"2024-04-03T16:43:38.000Z","size":30909,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-06T08:30:46.049Z","etag":null,"topics":["cpp","dotfiles","game","nix","python","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cwboden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-10T20:35:25.000Z","updated_at":"2024-03-11T18:29:28.000Z","dependencies_parsed_at":"2025-01-06T08:35:47.197Z","dependency_job_id":null,"html_url":"https://github.com/cwboden/.dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwboden%2F.dotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwboden%2F.dotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwboden%2F.dotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cwboden%2F.dotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cwboden","download_url":"https://codeload.github.com/cwboden/.dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240434301,"owners_count":19800550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","dotfiles","game","nix","python","rust"],"created_at":"2024-11-10T02:39:22.385Z","updated_at":"2026-04-12T18:09:40.054Z","avatar_url":"https://github.com/cwboden.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# My Dotfiles\n[![Submission Tests](https://github.com/cwboden/.dotfiles/actions/workflows/submission-tests.yml/badge.svg)](https://github.com/cwboden/.dotfiles/actions/workflows/submission-tests.yml)\n\nThe collection of all my dotfiles.\n\nI also use this repo for personal projects and tinkering. Having all of my projects in one place\nmakes it easy to share code between projects and ensure tests are run when pushing code back to the\nrepo.\n\n## One-Step Setup\nIt's not perfect, but ideally this repo should be able to be installed on any Linux distro and rope\nin all dependencies. I tried to test this using GitHub's Workflows, but I haven't tried a fresh\ninstall on all platforms.\n\nYou should be able to get things started on Ubuntu using the following:\n\n```sh\ngit clone https://github.com/cwboden/.dotfiles.git ~/.dotfiles\ncd ~/.dotfiles\n./bootstrap/bootstrap.sh\n```\n\n## Running Jekyll Locally\nAfter bootstrapping, the necessary dependencies should be installed to run the Jekyll server which\ncontains the portfolio website and blog. You can start the server by running:\n\n```sh\ncd ~/.dotfiles/docs/\nbundle exec jekyll serve\n```\n\n## Custom Build System\nI had some fun putting together the build system for my repo.  It was also good practice for\nlearning about the `Protocol` paradigm in Python.\n\nThe main goal is to link together some `Predicate` that will inform the build system whether an\naction needs to be taken (e.g. if a file is not present, a build artifact doesn't exist, etc.) with\nan `Action` which is what the build system will actually do when the `Predicate` isn't met. There\nmay be further improvements to this idea, but I felt like it was a good starting point for generic,\nconditional building.\n\n## Argparse\nAn attempt at recreating the `argparse` library from Python in Rust. The implementation and\nfeatureset is still primitive, but can be expanded for any additional features required by future\nprojects.\n\n## Path-Finding\nI recreated a path-finding project from an old class (EECS 281) in Rust. I decided not to follow\nthrough with all of the I/O required for the class's autograder and used integration tests instead.\n\nTry it out with:\n\n```sh\ncargo run --package path_finding -- --help\n```\n\n## Bevy Engine\nDespite it's relative infancy in the game dev scene, I've enjoyed prototyping games and systems in\n[Bevy Engine](https://bevyengine.org/). Most of the projects are incomplete, but you may find some\nnuggets of information buried within.\n\n### Gaia Project\nAn in-progress port of Jens Drögemüller and Helge Ostertag's [Gaia\nProject](https://boardgamegeek.com/boardgame/220308/gaia-project). The UI is still extremely\nprimitive, but I've been able to interlace systems like:\n - The power cycle, including charging, spending, reserving, and paying for power actions.\n - Claiming federation tokens, with resource rewards being automatically awarded.\n - Paying for various actions like terraforming, buildings, and research.\n\nTry it out with:\n\n```sh\ncargo run --package gaia_project\n```\n\n### Cards\nDecks and Piles of arbitrary \"Card\" objects can be created, shuffled, and reset to initial\npositions. The idea is to make it easier to prototype simple card games without needing to create\nthe deck logic every time.\n\nAn in-progress example using a standard 52-card deck might someday be completed.\n\n### Pocket Ops\nAnother board game port of Brandon Beran's [Pocket\nOps](https://boardgamegeek.com/boardgame/216234/pocket-ops), a variant of tic-tac-toe where guessing\nyour opponent's move means they won't be able to play a piece!\n\nIn it's current state, it's just tic-tac-toe, since I can't think of a good way to obscure your\nmoves from an opponent's if playing on the same screen / keyboard, but it has been a fun project to\npractice using Bevy.\n\nTry it out with:\n\n```sh\ncargo run --example pocket-ops\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwboden%2F.dotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcwboden%2F.dotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcwboden%2F.dotfiles/lists"}