diff options
author | Bradley Taunt <bt@btxx.org> | 2024-06-06 08:05:12 -0400 |
---|---|---|
committer | Bradley Taunt <bt@btxx.org> | 2024-06-06 08:05:12 -0400 |
commit | 6b742c459266b18e2b375b35205ce8a6c02f0452 (patch) | |
tree | b16fbb9a045e33dd6c97eb5ab72e6ff4d9237ea3 /pages |
Initial commit
Diffstat (limited to 'pages')
-rw-r--r-- | pages/colophon.md | 16 | ||||
-rw-r--r-- | pages/donate.md | 23 | ||||
-rw-r--r-- | pages/now.md | 17 | ||||
-rw-r--r-- | pages/projects.md | 27 | ||||
-rw-r--r-- | pages/resume.md | 109 | ||||
-rw-r--r-- | pages/uses.md | 85 | ||||
-rw-r--r-- | pages/wiki.md | 378 |
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'; +``` |