No description
Find a file
William Carroll c6106f7884 Create //playbooks
I'm particularly excited about this idea. As I was reading Graham's "Erase your
darlings" blog post, I had an idea: I should have playbooks at the root of my
monorepo.

I can have playbooks for the following:
- How to install NixOS
- How to build GCR images from Nix expressions
- A collection of miscellaneous shell commands (e.g. "how to kill a process by name")
- What series of steps should I follow when I receive a paycheck

I already keep README's at the root of each package, which I think is where many
of these instructions belong. Other tutorials that I write for myself that do
not belong to any package can go in //playbooks. I also will host my personal
habits in //playbooks since habits are a bit like playbooks for life. Let's see
how this idea ages as the caffeine wears off...
2020-07-20 14:38:50 +01:00
boilerplate Prefer builtins.path 2020-07-02 13:28:59 +01:00
configs Don't start ssh-agent in .profile 2020-06-16 11:50:47 +01:00
emacs Remove week / 52 indicator 2020-07-17 15:39:37 +01:00
go Drop support for lorri 2020-03-27 10:59:50 +00:00
gopkgs Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
haskell-file Add a README to haskell-file 2020-07-20 10:10:04 +01:00
lisp Add README.md to //lisp 2020-04-05 16:18:26 +01:00
nixos Now removing "Closed" 2020-06-30 23:22:13 +01:00
org Create //playbooks 2020-07-20 14:38:50 +01:00
playbooks Create //playbooks 2020-07-20 14:38:50 +01:00
scratch Move AOC into //scratch 2020-07-20 10:06:40 +01:00
third_party Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
tools Move monzo_ynab into //tools 2020-07-20 10:15:47 +01:00
travel_hitlist Sort items in travel_hitlist 2020-02-10 11:57:18 +00:00
utils Add README to //utils 2020-04-05 16:26:00 +01:00
website Create //playbooks 2020-07-20 14:38:50 +01:00
.envrc Clear $NIX_PATH 2020-07-02 14:39:08 +01:00
.gitignore Move monzo_ynab into //tools 2020-07-20 10:15:47 +01:00
default.nix Add ref attribute to fetchGit 2020-07-06 14:22:34 +01:00
Makefile Rename dotfiles -> briefcase 2020-01-31 15:27:48 +00:00
README.md Update README.md 2020-04-04 14:29:28 +01:00

briefcase

Welcome to my monorepo: briefcase.

Herein you will find a variety of libraries, packages, and documents. Some of this work in finished and other work is incomplete or just a sketch for a future project.

Where applicable, I try to include README.md files in some of the subdirectories to help orient both myself and any onlookers.

Languages

To give you a general idea of the source code inside of this monorepo, here is the latest output from tokei --hidden --sort code .:

-------------------------------------------------------------------------------
 Language            Files        Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 CSS                     9        67324        50733          218        16373
 Emacs Lisp            111        25326        15790         6337         3199
 Python                 99         7432         5414          623         1395
 JSON                   18         2235         2235            0            0
 Markdown               34         1771         1771            0            0
 TypeScript             25         1665         1317          115          233
 Nix                    65         1302         1115           82          105
 Go                     17         1256          926          173          157
 Vim Script              2          766          470           87          209
 HTML                   17          496          459           11           26
 Org                     8          420          411            8            1
 Haskell                 4          319          217           57           45
 Plain Text              5          145          145            0            0
 JavaScript             13          105           99            0            6
 Fish                    1           87           54           23           10
 Lisp                    3           83           43           23           17
 Elixir                  1           50           39            5            6
 Sass                    1           51           38            2           11
 TOML                    2           37           32            0            5
 Shell                   2           34           15            9           10
 Java                    2           11           11            0            0
 Makefile                2           14            9            3            2
 C                       1            6            5            0            1
 BASH                    2           10            4            2            4
 YAML                    1            5            4            0            1
 Rust                    1            5            3            1            1
-------------------------------------------------------------------------------
 Total                 446       110955        81359         7779        21817
-------------------------------------------------------------------------------

67,321 of the 67,324 lines of CSS comes from //website, which includes the template I use for my blog. Because I use TailwindCSS for my personal projects, most of the styling is embedded in the class atribute of HTML and JSX tags.

Sign posts

Below I have outlined a few projects that you might find interesting. I am using // to indicate the root of my monorepo, the directory in which this README.md resides.

  • //boilerplate: scaffolding for projects. Boilerplate's goal is to reduce the startup costs of a project.
  • //configs: my dotfiles (e.g. config.fish, init.vim). Eventually Nix home-manager should replace this.
  • //emacs: Emacs is both my preferred text editor and my window manager; with tens of thousands of lines of Emacs Lisp, you can safely assume that this directory hosts a lot of libraries and packages.
  • //monzo_ynab: systemd timer unit that imports my Monzo (i.e. a U.K.-based online bank) transactions into the personal finance tool YNAB (i.e. youneedabudget.com).
  • //nixos: my declarative configuration for my NixOS machines. If you are unfamiliar with Nix, I recommend reading about the NixOS project.
  • //tools: some scripts and projects that simplify my life.
  • //website: everything required to build my website, wpcarro.dev.

Notes to self

Here are a few reminders when setting up a new machine:

  • Use Nix home-manager to configure the new machine.
  • Ensure ~/.password-store exists.
  • Run export_gpg from a computer with my gpg credentials. Run import_gpg from the new machine.
  • Ensure the new machine can access my Github.