No description
Find a file
William Carroll 4732a7456b Solve Binary "Sum of Two Integers"
This is tricky because Python has variable-width integers, so relying on two's
complement to support the sum of negative numbers results in infinite
recursion. I know three ways to combat this:
  1. Use Java.
  2. Conditionally branch and handle either addition or subtraction accordingly.
  3. Use a mask to enforce fixed-width integers in Python.
2020-12-25 03:50:18 +00:00
.gitsecret Prefer reading secrets.json to using pass show 2020-08-20 18:31:37 +01:00
assessments Add project-local .gitignore 2020-12-12 02:59:49 +00:00
boilerplate Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
buildHaskell Document ghcExtensions argument 2020-08-13 18:04:33 +01:00
ci Debug false-negative reports for init-emacs CI step 2020-09-02 14:47:34 +01:00
configs Delete .profile 2020-09-09 14:32:47 +01:00
emacs Sort Emacs deps 2020-11-12 11:20:27 +00:00
go Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
gopkgs Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
haskell-file Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
lisp Add README.md to //lisp 2020-04-05 16:18:26 +01:00
nixos Delete comment monzo_ynab deployment 2020-09-01 12:17:16 +01:00
playbooks Fix typo 2020-12-07 20:10:33 +00:00
scratch Solve Binary "Sum of Two Integers" 2020-12-25 03:50:18 +00:00
third_party Remove <unstable> from briefcase 2020-08-20 11:26:32 +01:00
todo-lists Mark additional movies as watched 2020-11-12 11:19:59 +00:00
tools Prefer builtins.path 2020-08-27 17:31:15 +01:00
utils Define {builder,fs}.nix for utils.nix 2020-09-01 12:16:34 +01:00
website Show Morning and Evening habits by default 2020-12-13 15:14:19 +00:00
zoo Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
.envrc Drop support for dir-locals.nix, <nixpkgs>, etc. 2020-08-20 11:26:32 +01:00
.gitignore Testing git-secret 2020-08-20 14:50:53 +01:00
default.nix Pull Emacs 27 from @tazjin's depot 2020-09-02 14:07:39 +01:00
dictionary.md Support dictionary.md 2020-07-21 12:58:13 +01:00
Makefile Rename dotfiles -> briefcase 2020-01-31 15:27:48 +00:00
README.md Drop support for Nix home-manager 2020-09-07 23:01:59 +01:00
secrets.json.secret Prefer reading secrets.json to using pass show 2020-08-20 18:31:37 +01:00

briefcase

Build status

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).
  • //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:

  • 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.