From 42ed8c29f4bbc1c7b385243e9221eed88631a060 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Mon, 10 Jul 2023 11:13:54 -0500 Subject: [PATCH] Update uses page with a lot of links --- content/uses.md | 246 ++++++++++++++++++++++++++++++------------------ 1 file changed, 155 insertions(+), 91 deletions(-) diff --git a/content/uses.md b/content/uses.md index afad2d7..a360448 100644 --- a/content/uses.md +++ b/content/uses.md @@ -11,7 +11,8 @@ description: "About my tools, workflow, and other things I use as a software dev This page lists the tools (both physical and otherwise) that I use to do my job as a software developer along with some thoughts on them. -For other pages like this from other folks, check out this repository: https://github.com/wesbos/awesome-uses +For other pages like this from other folks, check out this repository: +https://github.com/wesbos/awesome-uses I'll go through a theoretical "day in the life" of myself working. Mostly to help me remember all the stuff involved, but also as a means of storytelling and @@ -64,7 +65,7 @@ dongle. I've also used the video mirroring on the side port to good effect a few times in a pinch. I love this device so much I've bought it twice. I'm not sure I've done that for anything else... -### Android-Specific Softeware & Applications +### Android-Specific Software & Applications Since I'm discussing my phone, I'll go over phone-specific apps (and some common with my laptops/desktops) now in no particular order. I have no idea if any of @@ -72,19 +73,30 @@ these have iOS equivalents, but here ya go. - [Firefox](https://github.com/mozilla-mobile/fenix) as my web browser - [F-Droid](https://f-droid.org) as an awesome resource for applications -- [Termux](https://github.com/termux/termux-app) for doing Linux-y and terminal-y things on my phone -- [OpenKeychain](https://github.com/open-keychain/open-keychain) for mobile GPG key management -- [Password Store](https://github.com/android-password-store/Android-Password-Store) for interacting with my password manager database -- [Bitwarden](https://github.com/bitwarden/mobile) for interacting with shared password databases +- [Termux](https://github.com/termux/termux-app) for doing Linux-y and + terminal-y things on my phone +- [OpenKeychain](https://github.com/open-keychain/open-keychain) for mobile GPG + key management +- [Password Store](https://github.com/android-password-store/Android-Password-Store) + for interacting with my password manager database +- [Bitwarden](https://github.com/bitwarden/mobile) for interacting with shared + password databases - [Magisk](https://github.com/topjohnwu/Magisk) for managing Android root access -- [NewPipe](https://github.com/TeamNewPipe/NewPipe) for YouTube access without dealing with ads -- [Smart AudioBook Player](https://play.google.com/store/apps/details?id=ak.alizandro.smartaudiobookplayer) for listening to audiobooks -- [Gadgetbridge](https://github.com/Freeyourgadget/Gadgetbridge) for interfacing with my smart watch -- [Obsidian](https://play.google.com/store/apps/details?id=md.obsidian) for reading and writing my notes (sync'd via `git`) +- [NewPipe](https://github.com/TeamNewPipe/NewPipe) for YouTube access without + dealing with ads +- [Smart AudioBook Player](https://play.google.com/store/apps/details?id=ak.alizandro.smartaudiobookplayer) + for listening to audiobooks +- [Gadgetbridge](https://github.com/Freeyourgadget/Gadgetbridge) for interfacing + with my smart watch +- [Obsidian](https://play.google.com/store/apps/details?id=md.obsidian) for + reading and writing my notes (sync'd via `git`) - [Fedilab](https://codeberg.org/tom79/Fedilab) as my mobile fediverse client -- [Weechat-Android](https://github.com/ubergeek42/weechat-android) as my mobile IRC relay interface -- [Tailscale](https://github.com/tailscale/tailscale-android) for accessing my VPN -- Google Wallet for NFC payments (tap-to-pay or contactless) because getting cards out of a wallet is _so_ pre-COVID +- [Weechat-Android](https://github.com/ubergeek42/weechat-android) as my mobile + IRC relay interface +- [Tailscale](https://github.com/tailscale/tailscale-android) for accessing + my VPN +- Google Wallet for NFC payments (tap-to-pay or contactless) because getting + cards out of a wallet is _so_ pre-COVID - Google Messages for SMS, MMS, and RCS - Google Maps for meatspace navigation - Pocket Casts for listening to podcasts @@ -96,11 +108,11 @@ Once the day has started and I've said my goodbyes to the fam, I head downstairs to my basement where my home office is located. I walk past a super overkill server rack I got on Craigslist. It holds a few things, but the most important things are my home router/gateway. It's connected to a Google Fiber jack where -I get 500 Mb/sec speeds for about 55USD/month. It's hooked up to a Netgear -16-port gigabit switch which in turn is hooked up to a bunch of little devices, -the most important of which are my home server, WiFi access point, and a really -long cable that goes to my desk where there is another tp-link 8-port gigabit -switch. +I get 500 Mb/sec (symmetric) speeds for about 55USD/month. It's hooked up to a +Netgear 16-port gigabit switch which in turn is hooked up to a bunch of little +devices, the most important of which are my home server, WiFi access point, and +a really long cable that goes to my desk where there is another tp-link 8-port +gigabit switch. The rack also has a bunch of loose cables, peripherals, and other random gear, like a big knife. I think I was using it to strip some wires. I should get some @@ -125,7 +137,8 @@ much easier for me. Fantastic access point that plays nicely with my very DIY home router. Not really much else to say. I set it up a long time ago and update it with some -regularity, but it just works. +regularity, but it just works. At some point, I'd love to get wireless devices +on their own VLAN for another layer of security. ## Ethernet Switches: Anything with enough speed and ports @@ -287,9 +300,9 @@ more expandable system. I'm somehow always out of USB ports. running unit tests and compiling code, this thing would pay for itself in a month or two. It did. Love it and looking forward to the next upgrade! - **GPU**: AMD Radeon RX 6700 XT - - Bought this at the worst possible time, but it's been a great card. It can't - quite keep up with 4K@120Hz for some titles like _Doom Eternal_ on the highest - settings, but it's good enough for my current usage. + - Bought this at the worst possible time, but it's been a great card. It + can't quite keep up with 4K@120Hz for some titles like _Doom Eternal_ on the + highest settings, but it's good enough for my current usage. - **RAM**: Some 64GB kit that's more than enough for me - **PSU**: Some small form factor 750W fully modular power supply - it's very cute because it's so little! @@ -382,40 +395,58 @@ I usually run `wm` which fires up my window manager, Sway. When Sway starts, it runs Kitty, my terminal emulator of choice, and Firefox, my web browser of choice. +Anywhere I can, I really like to use the +[Catppuccin color scheme](https://github.com/catppuccin/catppuccin). +Otherewise, I used a modified Monokai with a darkened +background color for the longest time. + ## Web Applications Firefox usually has the following web applications opened: -- Shortwave for email -- Linear.app for personal task management +- [Shortwave](https://shortwave.com) as my email client for my Google Mail + accounts to which my other emails forward to +- [Linear](https://linear.app) for personal task management (a better Jira/ + Trello IMHO) - Google Calendar for scheduling, planning, event management, etc. for both work and personal life -- Hacker News for mostly-relevant and -interesting articles to me -- Lobste.rs for reasons similar to Hacker News -- Lemmy.world since Reddit killed API access -- GitHub for open-source and similar work -- Band.us for communicating with friends, family, and church folks -- Discord for communicating with friends, family, "more-hip" church folks, various communities, and other acquaintences -- Element for communicating with friends, coworkers, various communities, and other acquaintencas -- Slack for communicating with friends, coworkers, and various communities -- Spotify for music +- [Hacker News](https://news.ycombinator.com) for mostly-relevant and + interesting links to me and for high-quality discussions +- [Lobsters](https://lobste.rs) for reasons similar to Hacker News +- [Lemmy.world](https://lemmy.world) for federated link aggregation and + discussions since Reddit + killed API access for my clients of choice +- [GitHub](https://github.com) for open-source and similar work +- [Band](https://band.us) for communicating with friends, family, and church + folks +- [Discord](https://discord.com) for communicating with friends, family, "more- + hip" church folks, various communities, and other acquaintences +- [Element](https://element.io) for communicating with friends, coworkers, + various communities, and other acquaintencas +- [Slack](https://slack.com) for communicating with friends, coworkers, and + various communities +- [Spotify](https://spotify.com) for music - Various applications specific to work, such as Okta, Jira, GitLab, etc. Ugh, modern messaging is a mess, isn't it? -Tailscale connects all my machines to the same VPN. It's great! +[Tailscale](https://tailscale.com) connects all my machines to the same +VPN. It's great! And I think once I get it fully setup, I will put it in the +"gamechanger" bucket. I also frequent these: -- git.lyte.dev for personal code management -- a.lyte.dev for personal online analytics -- bw.lyte.dev for shared password database management -- Shopping: - - ebay.com - - facebook.com/marketplace - - craigslist.com - - amazon.com - - aliexpress.us +- https://git.lyte.dev for personal code management +- https://a.lyte.dev for personal online analytics +- https://bw.lyte.dev for shared password database management + +And do my online shopping here: + +- ebay.com +- facebook.com/marketplace +- craigslist.com +- amazon.com +- aliexpress.us I'm sure I'm forgetting a ton here. @@ -426,62 +457,95 @@ machine is mostly done via hotkeys as configured for Sway. Otherwise, everything happens in the terminal. Here are my most popular commands in no particular order: -- `fish` as my interactive shell (and sometimes for scripts, too!) -- `helix` for text editing -- `git` for code version management (source control) - - I use `git-delta` for viewing diffs -- `pass` for passwords and secrets management -- `ssh` and `mosh` for accessing other machines -- `tmux` and `zellij` for multiplexing terminals -- `htop` and `btm` (or `bottom`) for process management and resource monitoring -- `rtx` for managing various runtimes' and applications' versions -- `sk` (or `skim`) for fuzzy searching for stuff -- `rg` (or `ripgrep`) for specific searching for stuff -- `sd` for most things I used to use `sed` for -- `nnn` for filesystem browsing and navigation -- `bat` for viewing files as a `cat` replacement -- `exa` as an `ls` replacement -- `man` for reading documentation -- `xh` and `curl` for interacting with HTTP endpoints (I want to check out `hurl`, too!) -- `jq`, `gron`, and `jql` for interacting with JSON data -- `rsync` for moving files amongst machines -- `watchexec` for doing stuff as I edit files (like running unit tests anytime code is changed) -- `age` and `sops` for secrets management -- `dua` for disk usage analysis -- `sc-im` for managing two-dimensional, relational data (spreadsheets) -- `pulsemixer` for adjusting audio levels and volumes -- `bluetoothctl` for managing bluetooth devices (also `bluetuith` for a TUI!) -- `weechat` as my IRC client +- [`fish`](https://github.com/fish-shell/fish-shell) as my interactive shell + (and sometimes for scripts, too!) +- [`helix`](https://github.com/helix-editor/helix) for text editing +- [`git`](https://git-scm.com) for code version management (source control) + - I use [`git-delta`](https://github.com/dandavison/delta) for viewing diffs +- [`pass`](https://www.passwordstore.org) for passwords and secrets management +- [`ssh`](https://www.openssh.com) and [`mosh`](https://mosh.org) for + accessing other machines +- [`tmux`](https://github.com/tmux/tmux) and [`zellij`](https://zellij.dev) for + multiplexing terminals +- [`htop`](https://htop.dev) and + [`btm` (or `bottom`)](https://github.com/ClementTsang/bottom) for process + management and resource monitoring +- [`rtx`](https://github.com/jdxcode/rtx) for managing various runtimes' and + applications' versions +- [`sk` (or `skim`)](https://github.com/lotabout/skim) for fuzzy searching for + stuff +- [`rg` (or `ripgrep`)](https://github.com/BurntSushi/ripgrep) for specific + searching for stuff +- [`sd`](https://github.com/chmln/sd) for most things I used to use `sed` for +- [`nnn`](https://github.com/jarun/nnn) and + [`broot`](https://github.com/Canop/broot) for filesystem browsing and + navigation +- [`bat`](https://github.com/sharkdp/bat) for viewing files as a `cat` + replacement +- [`exa`](https://github.com/ogham/exa) as an `ls` replacement +- [`man`](https://wiki.archlinux.org/title/man_page) for reading documentation +- [`xh`](https://github.com/ducaale/xh) and [`curl`](https://curl.se) for + interacting with HTTP endpoints (I want to check out + [`hurl`](https://github.com/Orange-OpenSource/hurl), too!) +- [`jq`](https://github.com/jqlang/jq), + [`gron`](https://github.com/tomnomnom/gron), and + [`jql`](https://github.com/cube2222/jql) for interacting with JSON data +- [`rsync`](https://rsync.samba.org) for moving files amongst machines +- [`restic`](https://restic.net) for local and remote deduplicated, encrypted, + and automated backups +- [`watchexec`](https://github.com/watchexec/watchexec) for doing stuff as I + edit files (like running unit tests anytime code is changed) +- [`age`](https://github.com/FiloSottile/age) and + [`sops`](https://github.com/mozilla/sops) for secrets management +- [`dua`](https://github.com/Byron/dua-cli/) for disk usage analysis +- [`sc-im`](https://github.com/andmarti1424/sc-im) for managing two-dimensional, + relational data (spreadsheets) +- [`pulsemixer`](https://github.com/GeorgeFilipkin/pulsemixer) for adjusting + audio levels and volumes +- [`bluetoothctl`](http://www.bluez.org) for managing bluetooth devices (also + [`bluetuith`](https://github.com/darkhz/bluetuith) for a TUI!) +- [`weechat`](https://weechat.org/) as my IRC client - This is usually running in a persistent `tmux` or `zellij` session on a server that I remote into - I occasionally use the relay functionality that `weechat` offers as well -- `docker` and `podman` for container management -- `hexyl` when I need to look at binary data -- `make` for doing things describe in `Makefile`s +- [`docker`](https://docker.com) and [`podman`](https://podman.io) for container + management +- [`hexyl`](https://github.com/sharkdp/hexyl) when I need to look at binary data +- [`make`](https://www.gnu.org/software/make/) for doing things describe in + `Makefile`s ## GUI -From Sway, the only utilities I use are `waybar`, `mako`, and `gammastep`. +From Sway, the only utilities I use are the following: -`waybar` shows the time, a HUD for my virtual desktops, various volume -information, and a high level overview of system resource usage. +- [`waybar`](https://github.com/Alexays/Waybar) shows the time, a HUD for my + virtual desktops, various volume information, and a high level overview of + system resource usage. +- [`mako`](https://github.com/emersion/mako) shows me notifications and let's me + interact with them. +- [`gammastep`](https://gitlab.com/chinstrap/gammastep) makes my displays + orange-y at night time. -`mako` shows me notifications and let's me interact with them. +Beyond these, I have a bunch of scripts and configuration in my +[dotfiles repo](https://git.lyte.dev/lytedev/dotfiles). -`gammastep` makes my displays orange-y at night time. +I use [`wofi`](https://hg.sr.ht/~scoopta/wofi) for launching applications +occasionally. It lists the following often-used applications: -I use `wofi` for launching applications occasionally. It lists the following -often-used applications: - -- Steam for installing and running games -- Slippi for playing Super Smash Brother Melee online! -- Lutris for running World of Warcraft -- `qpwgraph` for routing audio via `wireplumber` -- Inkscape for editing vector graphics (like SVGs) and image files -- Audacity for recording audio -- Krita and GIMP for editing non-vector (bitmap?) graphics and image files -- KDE Connect for when I want phone notifications to be mirrored to my desktop +- [Steam](https://steampowered.com) for installing and running games +- [Slippi](https://slippi.gg) for playing Super Smash Brother Melee online! +- [Lutris](https://lutris.net) for running World of Warcraft +- [`qpwgraph`](https://gitlab.freedesktop.org/rncbc/qpwgraph) for routing audio + via [`wireplumber`](https://pipewire.pages.freedesktop.org/wireplumber/) +- [Inkscape](https://inkscape.org) for editing vector graphics (like SVGs) and + image files +- [Audacity](https://www.audacityteam.org) for recording audio +- [Krita](https://krita.org) and [GIMP](https://www.gimp.org) for editing + non-vector (bitmap?) graphics and image files +- [KDE Connect](https://kdeconnect.kde.org) for when I want phone notifications + to be mirrored to my desktop - Usually only when expecting a specific call or message -- VS Code for pairing with other VS Code folks or troubleshooting a VS Code user's setup -- Thunar for managing files in a GUI -- PulseAudio Volume Control `pavucontrol` +- [Visual Studio Code](https://code.visualstudio.com) for pairing with other VS + Code folks or troubleshooting a VS Code user's setup +- [Thunar](https://docs.xfce.org/xfce/thunar/start) for managing files in a GUI +- [PulseAudio Volume Control (or `pavucontrol`)](https://freedesktop.org/software/pulseaudio/pavucontrol/)