aboutsummaryrefslogtreecommitdiff
path: root/pages
diff options
context:
space:
mode:
authorBradley Taunt <bt@btxx.org>2024-06-06 08:05:12 -0400
committerBradley Taunt <bt@btxx.org>2024-06-06 08:05:12 -0400
commit6b742c459266b18e2b375b35205ce8a6c02f0452 (patch)
treeb16fbb9a045e33dd6c97eb5ab72e6ff4d9237ea3 /pages
Initial commit
Diffstat (limited to 'pages')
-rw-r--r--pages/colophon.md16
-rw-r--r--pages/donate.md23
-rw-r--r--pages/now.md17
-rw-r--r--pages/projects.md27
-rw-r--r--pages/resume.md109
-rw-r--r--pages/uses.md85
-rw-r--r--pages/wiki.md378
7 files changed, 655 insertions, 0 deletions
diff --git a/pages/colophon.md b/pages/colophon.md
new file mode 100644
index 0000000..294dc64
--- /dev/null
+++ b/pages/colophon.md
@@ -0,0 +1,16 @@
+# Colophon
+
+This website is a collection of living, breathing documents. As I mention on the homepage, this place is better referred to as an online [brain dump](/dump). It might change over time. Styles might come and go. I can't help that, since tinkering with my personal blog is something I am very fond of. It's almost therapeutic.
+
+For those interested I try to keep the details of the blog up-to-date with the information below:
+
+## Website Fast Facts
+
+| Parameter | Source |
+|---|---|
+|Built with:|[barf](https://barf.bt.ht)|
+|Hosted on:|[SourceHut Pages](https://srht.site/)|
+|Source code available:|[SourceHut](https://git.sr.ht/~bt/bt.ht)|
+|Licensed under:|[MIT](https://git.sr.ht/~bt/bt.ht/tree/master/item/LICENSE)|
+|Developed on:|ThinkPad X201|
+|Operating system:|OpenBSD|
diff --git a/pages/donate.md b/pages/donate.md
new file mode 100644
index 0000000..85197ff
--- /dev/null
+++ b/pages/donate.md
@@ -0,0 +1,23 @@
+# Donate
+
+If you feel the burning desire to help support this small blog of mine, please take a look at the options below. You can still enjoy everything on this blog for free, so please don't feel obligated to donate.
+
+## How are donations used?
+
+That's a good question. Almost all money donated goes towards hosting, domain renewal costs and [open source services I use myself](/uses). Anything "extra" ends up getting me a coffee (or beer) to enjoy while I publish more free (and hopefully useful) content.
+
+### Standard Donations
+
+- [Buy Me a Coffee](https://www.buymeacoffee.com/WQTMtn7ir)
+- [PayPal](https://paypal.me/bradtaunt)
+- [Directly through Stripe](https://buy.stripe.com/eVa14A885elO9JS9AE)
+
+### Crypto Donations?
+
+Besides producing massive e-waste, consuming an enormous amount of energy, being largely used in association with fraudulent activities, and taking advantage of those under economic difficulties, crypto overall is something I am strongly opposed to.
+
+If crypto is the only payment option at your disposal and you still wish to make a donation; **don't**. Instead, make that donation to a local non-profit organization. "Cash it in" and use that money in your own community. Donate your *time* to others.
+
+Or simply shoot me an email, talk a little about yourself and say hello. A friendly conversation is worth a lot more than any crypto.
+
+Thanks for understanding. \ No newline at end of file
diff --git a/pages/now.md b/pages/now.md
new file mode 100644
index 0000000..7e60a4c
--- /dev/null
+++ b/pages/now.md
@@ -0,0 +1,17 @@
+# Now
+
+This page is based off the [now page concept](https://nownownow.com/about) by Derek Sivers.
+
+**Updated October 09, 2023**
+
+## Work
+
+- Working as a UX designer & fullstack developer hybrid
+
+## Life
+
+- Raising my three children (aged 5, 3 and 1 respectively) with my wonderful wife
+- Trying to contribute more to open source projects that I actively use
+- Slowly teaching myself C & RSpec
+- Advancing my knowledge of Ruby
+- Currently playing Darktide on Xbox \ No newline at end of file
diff --git a/pages/projects.md b/pages/projects.md
new file mode 100644
index 0000000..be6d948
--- /dev/null
+++ b/pages/projects.md
@@ -0,0 +1,27 @@
+# Projects
+
+## Active Projects
+* [barf](https://barf.bt.ht): Minimal blog engine in a tiny shell script
+* [ssgit](https://ssgit.bt.ht): Static site git page generator
+* [Vanilla CSS](https://vanillacss.com): A minimal baseline stylesheet for any web project
+* [Web Audit](https://audit.bt.ht): Detailed checklist audit for developing websites
+* [Normform](https://normform.netlify.app): Minimal CSS form plugin (6KB)
+* [23 Tales](https://23tales.netlify.app): Online collection of works by Beatrix Potter
+* [Shinobi](https://shinobi.bt.ht): Text-based, RSS focused blogging "system"
+* [pblog](https://pblog.bt.ht): Pandoc static blog generator
+* [Light Speed](https://ls.bt.ht): Jekyll theme with a perfect Lighthouse score
+
+## Clubs
+* [1MB Club](https://1mb.club): A collection of web pages weighing less than 1 megabyte
+* [1kB Club](https://1kb.club): A collection of web pages weighing less than 1 kilobyte
+* [XHTML Club](https://xhtml.club) A collection of HTML-focused websites
+
+## Installers / Setups
+* [Open Suck](https://git.sr.ht/~bt/open-suck): OpenBSD desktop based on the suckless philosophy
+* [Void Suck](https://vs.bt.ht): Void Linux desktop based on the suckless philosophy
+* [Alpine Suck](https://as.bt.ht): Alpine Linux desktop based on the suckless philosophy
+* [Alpine Wayland Desktop](https://git.sr.ht/~bt/alpine-linux-setup): Bare-bones Wayland "Desktop" Alpine installer script
+
+## Experiments
+* [Blog Anonymously](https://anon.bt.ht): A basic starting point for those wishing to blog privately
+* [Better Search Results](https://search.bt.ht): Rethinking the UX flow of modern search engines
diff --git a/pages/resume.md b/pages/resume.md
new file mode 100644
index 0000000..429085b
--- /dev/null
+++ b/pages/resume.md
@@ -0,0 +1,109 @@
+# Bradley Taunt
+
+**UX Designer & Software Engineer**<br>
+brad@bt.ht
+
+As a designer/developer hybrid, I help software companies improve their user experience and ship more performant products.
+
+## Skills & Languages
+
+Core tools are Figma, HTML, CSS, JavaScript & WordPress. Currently improving my skills with Ruby, Rails, MySQL & PHP. I also enjoy tinkering with basic shell scripts and Unix systems.
+
+## Experience
+
+|Title|Company|Duration|
+|-----|-------|--------|
+|Full Stack Engineer|SerpApi|2023-Now|
+|Senior UX Designer|Donorbox|2021-2023|
+|Senior Designer|Purism|2019-2021|
+|Lead Product Designer|Benbria|2012-2019|
+|Web Designer|Netvatise|2009-2012|
+
+<!-- - **Fullstack Engineer at SerpApi**
+ - *2023-Now* / Remote<br>
+- **Senior UX Designer at Donorbox**
+ - *2021-2023* / Remote<br>
+- **Senior Designer at Purism**
+ - *2019-2021* / Remote<br>
+- **Lead Product Designer at Benbria**
+ - *2012-2019* / Ottawa, Canada<br>
+- **Web Designer & SEO Technician at Netvatise**
+ - *2006-2009* / Oshawa, Canada<br> -->
+
+<!-- ### Fullstack Engineer at SerpApi
+
+**2023-Now** / Remote
+
+- Update and implement frontend designs
+-
+
+### Senior UX Designer at Donorbox
+
+**2021-2023** / Remote
+
+- Conduct user and customer interviews
+- Collect and analyze user testing interviews
+- Implement new designs in Figma
+- Create interactive prototypes for internal testing
+- Develop front-end web components
+- Sync and test development work with front-end team
+
+### Senior Designer at Purism
+
+**2019-2021** / Remote
+
+- Designed and developed product pages
+- WordPress / WooCommerce management and maintenance
+- Developed one-off mini-sites
+- Updated SEO-targeted landing pages
+- Social media and community management
+
+### Lead Product Designer at Benbria
+
+**2012-2019** / Ottawa, Canada
+
+- Redesigned entire customer inbox (web app) journey
+- Built the customer-facing UI for clients such as A&W, Royal Caribbean International, Sandals, Delta, Farm Boy, and more
+- Worked with iOS developers to port existing web app to native for iPads/iPhones
+
+### Web Designer & SEO Technician at Netvatise
+
+**2009-2012** / Toronto, Canada
+
+- Static website design and deployment
+- WordPress / WooCommerce management and maintenance
+- SEO content updates / performance boosts
+- Web analytics reviews & audits -->
+
+## Education
+
+|Institution|Program|Completion|
+|-----------|-------|------|
+|Durham College|Multimedia Design|2009|
+
+<!-- ### Durham College
+
+**2006-2009** / Oshawa, Canada
+
+- Associates Degree in Multimedia Design - 3 Year Program -->
+
+## Interests
+
+- Open source software
+- Web accessibility
+- Data analysis, big and small
+- Visualization
+- Performance and utilization
+- Linux systems
+- Software security and privacy
+- Minimal user interface design
+- Detailed documentation
+- Optimizing build times and version control
+- Writing technical articles
+
+Other: playing with my kids, hockey, video games, Linux distro-hopping.
+
+## References
+
+Available upon request.
+
diff --git a/pages/uses.md b/pages/uses.md
new file mode 100644
index 0000000..14ef20d
--- /dev/null
+++ b/pages/uses.md
@@ -0,0 +1,85 @@
+# Things I Use
+
+This page contains a somewhat up-to-date listing of all hardware and software that I currently use. Seeing similar pages on other people's personal websites have proved quite valuable to me, so I figured I would do the same!
+
+## Services
+
+I'm proud to support open source products and privacy-respecting communities. The list is limited right now, but the plan is to expand this over time. All prices are in CDN.
+
+|Service|Cost/year|
+|-------|--------------|
+|[gandi](https://gandi.net)<br>Domain renewal|$172|
+|[gandi mail](https://webmail.gandi.net)<br>Email service|$64|
+|[sourcehut](https://sourcehut.org)<br>Open source code forge.|$60|
+|[mullvad](https://mullvad.net)<br>Privacy focused VPN service provider.|$60|
+
+## Laptops
+
+- **ThinkPad X260** (Daily Driver)
+ - CPU: Intel i5-6300U (4) @ 3.000GHz
+ - RAM: 32GB
+ - Storage: 128GB SSD
+ - OS: Arch Linux
+
+- **ThinkPad X220**
+ - CPU: Intel Core i5 2540M @ 2.6 GHz
+ - RAM: 16GB
+ - Storage: 128GB SSD
+ - OS: Alpine Linux ([see build](https://git.sr.ht/~bt/alpine-suck))
+
+- **ThinkPad X201**
+ - CPU: Intel Core i5-520M @ 2.9 GHz
+ - RAM: 8GB
+ - Storage: 128GB SSD
+ - OS: OpenBSD ([see build](https://git.sr.ht/~bt/open-suck))
+
+As you can tell: I *really* like ThinkPads...
+
+## Accessories
+
+- Logitech Pebble Mouse
+- Cheap USB microphone
+
+## "Mobile" Devices
+
+- iPhone SE (2020)
+- ZTE Cymbal 2
+- Casio F-91W
+- RPi Zero
+- RPi Zero W
+- RPi 400
+
+## Gaming / Entertainment
+
+- Xbox Series S
+- Nintendo Switch Lite
+- Playstation 2
+
+## Software
+
+I try my best to use only free and open source software. Unfortunately, some circumstances require me to use proprietary applications.
+
+### Open Source
+
+- aerc-mail
+- Bitwarden
+- dmenu
+- dwm
+- Firefox
+- pass
+- qutebrowser
+- slstatus
+- st
+- surf
+- Thunderbird
+- vim
+- VSCodium
+
+### Proprietary
+
+- Figma
+- Gmail
+- Slack
+- Sublime Text
+- Sublime Merge
+- Zoom
diff --git a/pages/wiki.md b/pages/wiki.md
new file mode 100644
index 0000000..3e684b6
--- /dev/null
+++ b/pages/wiki.md
@@ -0,0 +1,378 @@
+# Wiki
+
+## Introduction
+
+This is a living document that will expand alongside my own personal experiences and knowledge. Topics range from device settings, computer configurations, household product serial numbers / expiry dates, and so on. Hopefully this can end up being helpful to others as well.
+
+## Open Suck
+
+My personal, lightweight desktop installer for OpenBSD based on the suckless philosophy. Includes my own custom set of suckless tools (dwm, slstatus, dmenu, etc.)
+
+- [https://git.sr.ht/~bt/open-suck](https://git.sr.ht/~bt/open-suck)
+
+## vimrc
+
+```
+" Don't try to be vi compatible
+set nocompatible
+
+" Helps force plugins to load correctly when it is turned back on below
+filetype off
+
+" TODO: Load plugins here (pathogen or vundle)
+
+" Turn on syntax highlighting
+syntax on
+
+" For plugins to load correctly
+filetype plugin indent on
+
+" TODO: Pick a leader key
+" let mapleader = ","
+
+" Security
+set modelines=0
+
+" Show line numbers
+set number
+
+" Show file stats
+set ruler
+
+" Blink cursor on error instead of beeping (grr)
+set visualbell
+
+" Encoding
+set encoding=utf-8
+
+" Whitespace
+set wrap
+set textwidth=79
+set formatoptions=tcqrn1
+set tabstop=2
+set shiftwidth=2
+set softtabstop=2
+set expandtab
+set noshiftround
+
+" Cursor motion
+set scrolloff=3
+set backspace=indent,eol,start
+set matchpairs+=<:> " use % to jump between pairs
+runtime! macros/matchit.vim
+
+" Move up/down editor lines
+nnoremap j gj
+nnoremap k gk
+
+" Allow hidden buffers
+set hidden
+
+" Rendering
+set ttyfast
+
+" Status bar
+set laststatus=2
+
+" Last line
+set showmode
+set showcmd
+
+" Searching
+nnoremap / /\v
+vnoremap / /\v
+set hlsearch
+set incsearch
+set ignorecase
+set smartcase
+set showmatch
+map <leader><space> :let @/=''<cr> " clear search
+
+" Remap help key.
+inoremap <F1> <ESC>:set invfullscreen<CR>a
+nnoremap <F1> :set invfullscreen<CR>
+vnoremap <F1> :set invfullscreen<CR>
+
+" Textmate holdouts
+
+" Formatting
+map <leader>q gqip
+
+" Visualize tabs and newlines
+set listchars=tab:▸\ ,eol:¬
+" Uncomment this to enable by default:
+" set list " To enable by default
+" Or use your leader key + l to toggle on/off
+map <leader>l :set list!<CR> " Toggle tabs and EOL
+
+" Color scheme (terminal)
+set t_Co=256
+set background=dark
+let g:solarized_termcolors=256
+let g:solarized_termtrans=1
+" put https://raw.github.com/altercation/vim-colors-solarized/master/colors/solarized.vim
+" in ~/.vim/colors/ and uncomment:
+" colorscheme solarized
+```
+
+## .zshrc extras / aliases
+
+```
+export EDITOR="/bin/vim"
+
+alias suck="sudo rm -rf config.h ; sudo make install"
+alias fixmonitor="xrandr --auto --output eDP1 --mode 1366x768 --below DP2-2"
+alias vscode="alias vscode="ENABLE_WASM=1 chrome --enable-wasm --disable-unveil""
+```
+
+## mimeapps.list
+
+Place this file under `/usr/share/applications/mimeapps.list`
+
+```
+[Default Applications]
+x-scheme-handler/http=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/https=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/ftp=org.qutebrowser.qutebrowser.desktop
+x-scheme-handler/chrome=org.qutebrowser.qutebrowser.desktop
+text/html=org.qutebrowser.qutebrowser.desktop
+application/x-extension-htm=org.qutebrowser.qutebrowser.desktop
+application/x-extension-html=org.qutebrowser.qutebrowser.desktop
+application/x-extension-shtml=org.qutebrowser.qutebrowser.desktop
+application/xhtml+xml=org.qutebrowser.qutebrowser.desktop
+application/x-extension-xhtml=org.qutebrowser.qutebrowser.desktop
+application/x-extension-xht=org.qutebrowser.qutebrowser.desktop
+image/jpeg=feh
+image/png=feh
+image/webp=feh
+```
+
+## qutebrowser
+
+### Greasemonkey
+
+All of these scripts should be added under `~/.local/share/qutebrowser/greasemonkey/`. Then be sure to run the proper command within qutebrowser: `:greasemonkey-reload`
+
+#### Auto Skip YouTube Ads
+
+```
+// ==UserScript==
+// @name Auto Skip YouTube Ads
+// @version 1.0.0
+// @description Speed up and skip YouTube ads automatically
+// @author jso8910
+// @match *://*.youtube.com/*
+// @exclude *://*.youtube.com/subscribe_embed?*
+// ==/UserScript==
+setInterval(() => {
+ const btn = document.querySelector('.videoAdUiSkipButton,.ytp-ad-skip-button')
+ if (btn) {
+ btn.click()
+ }
+ const ad = [...document.querySelectorAll('.ad-showing')][0];
+ if (ad) {
+ document.querySelector('video').playbackRate = 10;
+ }
+}, 50)
+```
+
+## `ffmpeg` to MP4
+
+```
+ffmpeg -i input_filename.avi -c:v copy -c:a copy -y output_filename.mp4
+```
+
+## Mount USB HDD via CLI
+
+```
+mkdir /media/usb-drive
+mount /dev/sdX /media/usb-drive/
+```
+
+## Run Mullvad on Alpine Linux (Wireguard)
+
+```
+# Install wireguard
+apk add wireguard-tools
+```
+
+Login into Mullvad and download the proper wireguard configuration files(s). After downloaded, place in the proper directory:
+
+```
+doas cp <MULLVAD_FILENAME>.conf /etc/wireguard/"
+```
+
+Then setup an aliases for easier up/down states:
+
+```
+alias vpnup="doas wg-quick up /etc/wireguard/<MULLVAD_FILENAME>.conf"
+alias vpndown="doas wg-quick down /etc/wireguard/<MULLVAD_FILENAME>.conf"
+```
+
+## Alpine Linux `mini_racer` Tweaks
+
+Gem lockfile:
+
+```
+PLATFORMS
+ ruby
+ x86_64-linux-musl
+
+mini_racer (0.6.3)
+ <remove child dependency>
+```
+
+then run: `bundle update mini_racer`
+
+## Docker
+
+Installing `ghost`
+
+```
+docker pull ghost
+```
+
+```
+docker run -d \
+ --name ghost-name \
+ -e NODE_ENV=development \
+ -p 2368:2368 \
+ -v $HOME/path/to/ghost/blog:/var/lib/ghost/content \
+ ghost:alpine
+```
+
+## MongoDB 3.4 on Ubuntu 23.10
+
+```
+wget http://launchpadlibrarian.net/668089858/libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb
+sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5.13_amd64.deb
+sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
+
+echo "deb http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
+```
+
+Now edit `/etc/apt/sources.list.d/mongodb-org-3.4.list`:
+
+```
+deb [trusted=yes] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4...
+```
+
+Then finish things up:
+
+```
+sudo apt-get update --allow-unauthenticated
+sudo apt-get install -y mongodb-org
+
+sudo mkdir -p /data/db
+sudo chmod -R 777 /data/db
+```
+
+## Redis 6.0.7 on Ubuntu 23.10
+
+```
+sudo apt-get install build-essential tcl
+cd /tmp
+curl -O http://download.redis.io/releases/redis-6.0.7.tar.gz
+tar xzvf redis-6.0.7.tar.gz
+cd redis-6.0.7
+```
+
+Install redis:
+
+```
+make
+make test
+sudo make install
+
+sudo mkdir /etc/redis
+sudo cp /tmp/redis-6.0.7redis.conf /etc/redis
+```
+
+Edit `/etc/redis/redis.conf` with the following changes:
+
+- `supervised systemd`
+- `dir /var/lib/redis`
+
+Create systemd unit file for redis: `/etc/systemd/system/redis.service`:
+
+```
+[Unit]
+Description=Redis In-Memory Data Store
+After=network.target
+
+[Service]
+User=redis
+Group=redis
+ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
+ExecStop=/usr/local/bin/redis-cli shutdown
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+```
+
+Final steps:
+
+```
+sudo adduser --system --group --no-create-home redis
+sudo mkdir /var/lib/redis
+sudo chown redis:redis /var/lib/redis
+sudo chmod 770 /var/lib/redis
+```
+
+## Ruby 2.7.2 with rbenv on Ubuntu 23.10
+
+Edit the `/etc/apt/sources.list` file:
+
+```
+deb [trusted=yes] http://security.ubuntu.com/ubuntu bionic-security main
+```
+
+Then run `sudo apt-get update`. After completion, install `libssl1.0-dev`:
+
+```
+sudo apt-get install libssl1.0-dev
+```
+
+## Fix screen tearing
+
+```
+sudo micro /etc/X11/xorg.conf.d/20-intel.conf
+```
+
+Add the following contents to `20-intel.conf`:
+
+```
+Section "OutputClass"
+ Identifier "Intel Graphics"
+ MatchDriver "i915"
+ Driver "intel"
+ Option "DRI" "3"
+ Option "TearFree" "1"
+EndSection
+```
+
+## Enabling "tap to click"
+
+```
+sudo micro /etc/X11/xorg.conf.d/30-touchpad.conf
+```
+
+Add the following contents to `30-touchpad.conf`:
+
+
+ Section "InputClass"
+ Identifier "touchpad"
+ Driver "libinput"
+ MatchIsTouchpad "on"
+ Option "Tapping" "on"
+ Option "TappingButtonMap" "lmr"
+ EndSection
+
+## Woocommerce
+
+**Reset all product menu_order to `0`**
+
+```
+UPDATE wp_posts SET menu_order = 0 WHERE post_type = 'product';
+```