No description
Find a file
William Carroll 1d45f14615 Update COVID-19 webpage
- Prefer hosting on sandbox.wpcarro.dev; I would prefer to host it at
  sandbox.wpcarro.dev/covid-19, but I haven't figure out how to use Nginx to do
  serve locations like /covid-19 yet.
- Splice the src directory: When I develop locally and index.html exists within
  ./src, I cannot access ./node_modules because ./node_modules is in a parent
  directory. I could fix this if I used a bundler like Parcel or Webpack, but I
  do not want to set that up at this time.
- Introduce Tailwind for CSS. This complicates my build a bit as well. For now,
  I'm including output.css even though ideally I should not version-control this
  file. I haven't figured out how to `yarn install` and run commands like `npx
  tailwindcss build styles.css -o output.css` in a Nix derivation yet. Hopefully
  I will learn and refactor this.
- Add some content about why I made this chart
- Add some content about some of my covid-19 predictions
- Add a footer to the webpage
- Delete timeseries.json and prefer fetching the published data instead
2020-03-19 12:30:49 +00:00
advent-of-code Splice ./universe directory into ./ 2020-01-29 14:43:20 +00:00
blog Scatter blog post ideas for "Let's Learn Nix" 2020-03-17 22:42:22 +00:00
clojure Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
configs Disable redshift's fading animation 2020-03-17 18:29:08 +00:00
covid-uk Update COVID-19 webpage 2020-03-19 12:30:49 +00:00
deploy Rename docker -> deploy 2020-01-31 16:29:22 +00:00
emacs Remove setting for enabling both laptop and external monitor 2020-03-16 13:58:18 +00:00
go Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
gopkgs Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
haskell-file Splice ./universe directory into ./ 2020-01-29 14:43:20 +00:00
java Splice ./universe directory into ./ 2020-01-29 14:43:20 +00:00
learn Create derivation for learn.wpcarro.dev 2020-03-16 16:54:16 +00:00
lisp Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
mail Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
monzo_ynab Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
nixos Update COVID-19 webpage 2020-03-19 12:30:49 +00:00
nut-score Add ReasonML boilerplate 2020-03-17 22:40:48 +00:00
org Read Paul Graham article "Taste for Makers" 2020-03-02 13:09:07 +00:00
scratch Solve InterviewCake's second-largest-item-in-bst 2020-03-16 11:45:34 +00:00
third_party Remove default values for Nix expression parameters 2020-03-01 22:32:24 +00:00
tools Drop support for cloudtop 2020-03-05 15:04:04 +00:00
travel_hitlist Sort items in travel_hitlist 2020-02-10 11:57:18 +00:00
utils Move wrapNonNixProgram to utils module 2020-03-13 23:03:57 +00:00
.envrc Support lorri 2020-02-07 11:01:24 +00:00
.gitignore Add ReasonML boilerplate 2020-03-17 22:40:48 +00:00
default.nix Create line chart of UK confirmed corona virus cases 2020-03-18 22:08:09 +00:00
elisp-conventions.md Massive configuration overhaul 2019-12-24 15:21:34 +00:00
keybindings.md Massive configuration overhaul 2019-12-24 15:21:34 +00:00
Makefile Rename dotfiles -> briefcase 2020-01-31 15:27:48 +00:00
README.md Add programs to home-manager 2020-03-06 10:15:29 +00:00
shell.nix Drop support for cloudtop 2020-03-05 15:04:04 +00:00
snippets.md Massive configuration overhaul 2019-12-24 15:21:34 +00:00

briefcase

Welcome to my briefcase: my monorepo.

I'm attempting to amass a collection of packages that span a variety of languages while minimizing the costs of sharing the code. This also includes configuration for things like emacs, ssh, and other tools.

Installation (Deprecated)

The installation instructions here are deprecated. I'd like to manage packaging and installing with Nix, but that is only partially supported at the moment.

wpgtk and gvcci

$ apti python-pip3
$ gclone deviantfero/wpgtk
$ cd ..
$ gclone FabriceCastel/gvcci
  • TODO: Integrate Emacs themes into wpgtk.
  • TODO: Integrate Vim themes into wpgtk.
  • TODO: add these to the install script
$ ln -s ~/Dropbox/.password-store ~/.password-store
$ ln -s ~/Dropbox/bin ~/bin
$ import_gpg $DOTFILES/configs/shared/gpg/.gnupg/exported
  1. Clipmenu

Clipmenu is a service to store a history of copied strings.

Install it as:

$ cd ~/programming && g clone cdown/clipmenu
  • TODO: Include ~/.config/systemd/user in configs/shared.
  • TODO: Obviate installation.

Ensure that it runs on startup:

$ cd ~/programming/clipmenu
$ cp clipmenu clipmenud clipdel ~/bin # You may not need to do this step.
$ vim init/clipmenud.service
# Change the ExecStart line to point to ~/bin/clipmenud
$ cp init/clipmenud.service ~/.config/systemd/user/clipmenud.service
$ systemctl --user start clipmenud
$ systemctl --user enable clipmenud # This step may be optional.
$ reboot
$ systemctl --user status clipmenud # Verify installation worked.
  1. Install Dropbox
$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
$ crontab -e # add the following line...
@reboot ~/.dropbox-dist/dropboxd 2>&1 >/tmp/dropbox.log
$ reboot            # 1/3 verify installation
$ pgrep dropbox     # 2/3 verify installation
$ dropbox.py status # 3/3 verify installation
  1. Authorize computer to access GitHub
$ ssh-keygen -t rsa -b 4096 -C 'wpcarro@gmail.com'
$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/id_rsa
$ xclip -sel clip <~/.ssh/id_rsa.pub
$ browse github.com # paste ssh public key in settings
  1. Install Vundle, nix-env
$ ln -s ~/Dropbox/Vundle.vim ~/.config/nvim/bundle/Vundle.vim
$ cat ~/Dropbox/install_nix.sh | sh
$ for p in $(cat nix-env.txt); do
>   nix-env -i "$p"
> done
  1. Install dotfiles
  • TODO: include steps 2-4 in the make install command.

Missing the following dependencies:

  • stow
  • neovim
  • fasd
  • opam
  • ghcup
  • hub
$ cd ~/Dropbox/dotfiles
$ DOTFILES="$(pwd)" make install
  1. Install Node dependencies

For now, this deserves its own section since it isn't automated.

$ gclone tj/n       # clone repo
$ sudo make install # build from source
$ n stable          # install the stable version of node
  • TODO: support dependencies like terminal themes

SSHFS

TODO: add explanation about unison, rsync, etc.

SSHFS enables seamless file transfers from your local machine to a remote machine.

Usage

Assuming your remote machine is configured in your ~/.ssh/config (see above), you can mount your remote machine's home directory on your local machine like so:

$ mkdir ~/ec2
$ sshfs ec2:/home/ubuntu ~/ec2 -o reconnect,follow_symlinks

Now your remote machine's home directory can be accessed using the ~/ec2 directory. This directory can be treated as if it were an ordinary local directory. To illustrate how easy it is to use, let's install Vundle onto our remote machine.

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/ec2/.vim/bundle/Vundle.vim

Voila! We now have Vundle installed on our ec2 instance without needing to manually SSH into that machine.

GnuPG

To install GPG run the following:

$ import_gpg

TODO: create a job that runs this periodically.

$ export_gpg

Reference

- sec: secret key
- pub: public key
- ssb: secret sub-key
- sub: public sub-key

Terminals and Fonts

Any terminal or font I choose should pass the following checks:

$ test_true_color
$ test_16_colors
$ test_text_formatting
$ test_unicode
$ test_emojis

Ligatures

If using a font with ligature (e.g. Hasklig) assert that your terminal also support ligatures.