site.lyte.dev/content/uses.md

656 lines
32 KiB
Markdown
Raw Permalink Normal View History

---
# date: 2017-02-22T14:43:02-06:00
# image: /img/space.jpg
# imageOverlayColor: "#000"
# imageOverlayOpacity: 0.6
# heroBackgroundColor: "#0af"
title: Uses
description: "About my tools, workflow, and other things I use as a software developer."
---
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.
While this page is likely to be out of date when you're reading it, since I am
usually trying a few small changes here and there at any given point to try and
improve things, I try to update it regularly. You can follow those updates by
looking at [the history of the source code for this page
specifically][uses-history].
2023-07-10 11:13:54 -05:00
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
being imformative. I normally don't drop brand names, but since that's kind of
the point here, I will be doing a _lot_ of name dropping. No links to products
for simplicity, but everything listed here should be searchable. If not, let
me know! I'll try to link to anything free, though, such as software.
I'll break stuff up by topic as things come up so you can skip things that are
not interesting to you. There is also a Table of Contents at the top to help
you navigate.
I also think that in general sharing this much information about yourself isn't
the _best_ idea. However, since I'm confident the bots can't know much more
about me that they already do and this will really only mostly be useful to my
fellow human beings, I think it's worth sharing. I hope you discover some cool
new stuff! Better yet, I hope you recommend me better stuff! I'm always wanting
to try new tools and discover something new that's good at something.
2023-07-10 12:23:53 -05:00
Regarding the configuration of my machines and the software referenced below,
[please refer to my Nix repo](https://git.lyte.dev/lytedev/nix)! It may also
be useful to look through my old [dotfiles
repo](https://git.lyte.dev/lytedev/dotfiles).
2023-07-10 12:23:53 -05:00
# Good morning!
I wake up when my kids do out of a Purple mattress. I slip on my PineTime wrist
watch, grab my flashlight, Android smartphone and backpack, put on my prescription glasses,
and usually make some tea.
## Mattress: Purple King Size
Sleep is real important, so get a good mattress! Of course, "good" here is
highly subjective, so you will want to do your own research. We usually have a
kid or two join my wife and I in the mattress, so we went with a king size to
account for this. Fantastic decision!
## Smart Watch: PineTime
I love my PineTime! It serves as a good flashlight in the pitch black of a
baby's room and can tell the time. That alone is good enough. However, it can
also vibrate when I get notifications on my phone if I want, which I do use
on occasion. The price is also unbeatable at 25USD and the InfiniTime firmware
keeps improving! I get about two weeks of battery with light use and bluetooth
off. I get about 5 days if I've got notifications on full blast, but they
recently improved the firmware and claim this may now be more than double!
## Flashlight: Emisar DW4
I have a phone with a flashlight. And even my watch can be enough of a
flashlight to navigate in pitch black, but I've taken to carrying an actual
flashlight. Specifically, an Emisar DW4. It has a magnetic tailcap so it can
attach near or directly to many work surfaces. It can get hilariously bright or
dim enough to be suitable for use around sleeping family members in the dark.
And it has fun RGB LEDs that can flash, show you the battery level, and just
look cool. It's not a game-changer, but at times it is incredibly convenient to
have on hand.
## Smart Phone: ASUS Zenfone 10
I've enjoyed ASUS's phones and have previously used the ROG Phone 5S. I bought
this since it maintained most of the important features of the ROG Phone while
being cheaper and my old ROG Phone started having bluetooth and phone call
issues. To be fair, I bought the international Chinese version off ebay to try
and save a buck.
The Zenfone 10 does everything I need. Lots of battery life, nice display for
reading on, good speakers, blah blah blah. Phone's get less interesting all the
time and most of them are good enough these days.
I hope a real Linux phone comes around!
2023-07-10 11:13:54 -05:00
### 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
these have iOS equivalents, but here ya go.
- [Firefox](https://github.com/mozilla-mobile/fenix) as my web browser
- Firefox supports (some) extensions even on Android! I use the following:
2023-07-17 23:53:09 -05:00
- [Dark Reader](https://addons.mozilla.org/en-US/firefox/addon/darkreader/) for keeping things easy on my eyes
- [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) for blocking ads
- [F-Droid](https://f-droid.org) as an awesome resource for applications
2023-07-10 11:13:54 -05:00
- [Termux](https://github.com/termux/termux-app) for doing Linux-y and
terminal-y things on my phone
- There's also [Nix-on-Droid](https://github.com/nix-community/nix-on-droid)
which I've started using more and more
2023-07-10 11:13:54 -05:00
- [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
2023-07-10 11:13:54 -05:00
- [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
- [Goguma](https://git.sr.ht/~emersion/goguma) as my mobile IRC client (connected to my IRC bouncer, (Soju)[https://git.sr.ht/~emersion/soju])
- [Tailscale](https://github.com/tailscale/tailscale-android) for my VPN
2023-07-10 11:13:54 -05:00
- 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
- Spotify for listening to music
2023-07-17 23:53:09 -05:00
## Backpack
The portable office! I keep my laptop, a multi-tool, extension cord, power
strip, laptop charger, a suite of adapters and flash drives, water bottle, and
the odd cable here or there. If I'm feelin' that I might be gamin', I throw in
the Steam Deck. More on all this later.
# Server Room
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
2023-07-10 11:13:54 -05:00
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
easy-mode wire strippers.
## Router & Gateway: Any decent dual-NIC machine
For a long time, I used a Raspberry Pi 4 with a USB3 ethernet adapter. It did
great, too! But then I wanted it (and my ethernet adapter) for another project
and I scored a Datto Alto 2 with 2 NICs built right in on Ebay for like $30.
_Ebay is awesome_.
The Datto Alto 2 is great, but not because of what it is. Any little dual-NIC
box will do nicely. It's running Arch Linux and is configured via the contents
of [this repo](https://git.lyte.dev/lytedev/router) (please be nice to my
network). Having a router I'm in full control of has helped with networking
problems immensely and makes port forwarding stuff a breeze. I'm roughly
familiar with its workings, which makes troubleshooting network problems that
much easier for me.
This is the last bastion for Arch Linux in my network and I'm excited to move.
Not because I hate Arch, but I'm _really_ loving NixOS.
## WiFi Access Point: Unifi AP-Pro
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
2023-07-10 11:13:54 -05:00
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
Seriously I just bought the cheapest switches at Micro Center with enough ports
for me. They're getting hilariously cheap, which is great! Having extra ports
for ad-hoc stuff, like LAN parties, is a must-have for me, even in the age of
WiFi.
_Share the load_.
## Server(s)
I was given a Dell R720xd with dual Xeon E5-2580 CPUs (10c/20t),
256GB RAM, and 12x4TB (48TB) of raw disk space. It runs my own, my servers, and
hosts onsite backups for all my stuff and serves as an offsite encrypted backup
for some friends.
I have a few other cheap machines with larger disks at friends and family's
houses for off-site, encrypted backups of important data. They all run NixOS and
use [its built-in restic backup setup][backups-nix].
Any paid client workloads are served via redundant mechanisms via cloud
services, generally Digital Ocean, and backed up with whatever the relevant
cloud offering is.
I run the following main applications:
- [Caddy](https://traefik.io/traefik/) to reverse proxy, TLS-terminate all
the things, and serve static, public files
- A homemade chat bot for various things
2023-07-17 23:53:09 -05:00
- Various game servers (Minecraft, Factorio, Valheim, etc.)
- [Gitea](https://about.gitea.com/) for https://git.lyte.dev 💜💛💙
- [Jellyfin](https://jellyfin.org/) for streaming my video media to approved
users (family, friends, etc.)
- [PostgreSQL](https://www.postgresql.org/) as the great database for anything
that needs one
- [Vaultwarden](https://github.com/dani-garcia/vaultwarden) for sharing and
managing passwords
- [Atuin](https://atuin.sh) for sync'ing shell histories across my machines
- Samba file shares
Other details can be found in [the Nix config for the `beefcake` host][beefnix].
I run a few services from the cloud as well:
- [A small DDNS application](https://github.com/lytedev/deno-netlify-ddns) that
machines report to so I have relatively up-to-date public IP information on
most of my devices (this can't run from home for fairly obvious reasons 😉)
2023-07-17 23:53:09 -05:00
- Each machine runs [the accompanying client](https://github.com/lytedev/deno-netlify-ddns-client) with unique credentials
- Various monitoring scripts for specific things (also can't run from home - who
would monitor the monitors?)
# Starting Work
I sit in a way-too-expensive computer chair at a homemade desk and wiggle my
mouse or slap my keyboard until my workstation wakes up. I punch in my password
and a script fires off to make sure I am ready to work. It does stuff like have
me log in to various work services that need daily (or hourly) authentication
and making sure I remember to review certain reminders and things of that
nature.
I usually spend my work mornings reviewing neat things I read about the night
before on my various feeds -- assuming nothing urgent is happening with work,
which there usually is not. Tinkering with things is super important for
learning. This is usually done by pulling down my notes as sync'd from my phone,
where I do most of my reading.
I may also spend some time playing games or working with electronics in the
workshop area.
Then the standup meeting notification pops up and I spend about 10 minutes
reviewing work stuff so I'm ready for the day. I make sure any audio/visual
settings are reset for the workday from any tinkering I may have done the
previous evening, usually with musical instruments or just general goofing
around with Pipewire.
2023-07-17 22:16:14 -05:00
## Chair: Steelcase Gesture with Headrest
Like a mattress, very subjective. Get your chairs secondhand for way cheap and
you can get some heckin' nice chairs. I spend about 8 hours a day in my chair,
so having a good chair is well worth it, even if the price tag is $1,500 USD. 😬
## Desk: Custom
It's a huge slab of butcher's block I got from Home Depot for about 200USD and
I made some _really_ crappy legs to try and hold it up. It's huge and awesome
and by the time I can't move it around by myself anymore is probably a good
indicator for retirement.
You can see an old but decent picture of it here:
2023-07-17 22:16:14 -05:00
https://files.lyte.dev/images/archives/battle-station-2020.jpg
## Mouse: Logitech MX Master 3 and Mionix Avior Pro
The MX Master 3 is my default, go-to mouse. It's great. I don't use any of
the fancy features, really, but the mousewheel on it is _real_ special. Can't
go back.
The Avior Pro I got a long time ago after my last mouse bit the dust. I really
only pull out for gaming on the more competitive side, such as _Counter Strike_.
For pretty much everything else, the MX Master 3 is not noticeably bad -- even
for _Doom Eternal_.
## Keyboard: Sofle Choc RGB
Another very subjective thing! Building and programming your own keyboard is
something that is super fun for heavy keyboard users, which I think is most
people these days. This one is focused on being good for my hands and wrists to
use for long programming sessions. It's split into two wireless pieces so each
hand can move them independently and the keys are laid out in a sensible manner
that fits the human hand. There are other features that are nice, but that I
rarely use.
Here's a picture if you like: https://files.lyte.dev/keyboards/zofle.jpg
## Monitors: Aorus FO48U and 2 Dell U2720Q
I stumbled into having a huge 4K display when COVID had Postmates send our
little Kansas City satellite office packing and I took the meeting hardware
home. At some point, I plugged it in to see what _World of Warcraft_ would look
like in 4K on a big screen and realized it was actually amazing for programming
as well.
Here's roughly my monitor layout, though I usually have two of the secondary
monitors -- one on either side:
2023-07-17 22:16:14 -05:00
https://files.lyte.dev/images/archives/battle-station-2022-10-13.3.jpg
## Laptop: Lenovo T480 and MacBooks
2023-07-17 22:16:14 -05:00
The T480 is a recent acquisition. It was pretty busted up when I got it, but I bought the
high capacity external battery and some phat sticks of RAM and replaced the
trackpad. A little bit of superglue and a good cleaning later and I've just
fallen in love with this laptop. Sometimes I use it even though I have a really
beefy workstation with what I consider to be a pretty high-end setup -- it just
feels so cozy! All my machines run Arch Linux configured as specified in my
dotfiles repo.
Work provides MacBooks. I'm able to use them as proxies and simply SSH into them
for work-related tasks. They otherwise run Linux virtual machines or serve as
dumb terminals to Linux environments in _the cloud_ where I do the majority of
my work. In general, I'm not a big of macOS and its interface, but I fully
recognize that I'm used to a very bespoke and unique way of interacting with
my computer.
That said, before work really cracked down, the M1 Max MacBook Pro they got
me was one of my favorite machines ever. Insane battery life, performance,
speakers, display, _**and** the ability to run Linux natively on it_ is going to
be really hard to beat. I miss being able to use that thing to its fullest!
## Desktop: Custom Rig
Probably easiest to list the parts. I wanted something quiet, small, and cute.
In hindsight, I think it would have been more practical to just get a bigger and
more expandable system. I'm somehow always out of USB ports.
- **CPU**: AMD Ryzen 9 5950X
- I wanted as many performant cores as possible for as cheaply as possible
and reasonable. I did some math and realized that with the time spend
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
2023-07-10 11:13:54 -05:00
- 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!
- **CPU Cooler**: Can't remember what it is exactly, but I bought the biggest,
baddest air cooler that would fit with my setup
- **Case**: Cooler Master NR200P
- **Linux SSD**: Sabrent Rocket 1TB PCIe 4.0 NVMe
- I went with PCIe 4.0 since I make pretty heavy use of my disk what with
a great internet connection and all - those Docker images ain't gonna sling
themselves, y'know!
- What is it with "enterprise" Docker images being absolutely gargantuan?!
Why must things suck?! Not that I put anything proprietary to work on my
personal machine(s) of course!
- **Windows SSD**: TeamGroup MP34 2TB PCIe 3.0 NVMe
- Occasionally, I boot to Windows for some games that run better or at all,
like Valorant or Destiny 2
## Other Neat Computing Devices
I also have a PinePhone and a Steam Deck.
The PinePhone was unfortunately a dud for me personally since MMS is still
pretty prevalent in my life in a way that I can't overlook in addition to the
notification setup not quite being up to snuff. I am _very_ excited for the
time when a Linux (you know what I mean) phone is feasible, though! I got the
keyboard addon, though, and since my phone has some radio issues in the US, I
sometimes use it when I need better radio performance, like when camping.
The Steam Deck is absolutely wonderful. Anything I would play with a controller,
I usually just play it on the Steam deck. I haven't touched my Switch since!
Plus, it's Linux, so the tinker factor is there too. Highly recommend one if
you're considering it.
## Headphones: Sony WH-1000XM4
Bought the XM3s on a Black Friday special and fell in love. _Nice_ noise
2023-07-17 22:16:14 -05:00
cancelling headphones are absolutely wonderful. They made my mom cry.
Work got almost all their engineers the XM4s not long after so I kind of have
2 pair. The XM4s are _much_ nicer with multiple device pairing and the firmware
voice feedback fading out your audio instead of cutting it completely when it
says anything. The XM4s also automatically shut down if they can detect they
aren't on your head for a little bit, which makes the main issue I had with the
XM3s of setting them on my desk without turning them off a non-issue.
## Microphone: Blue Yeti USB
Sounds good enough, but I've got a fancy audio interface now, so I'm wanting to
upgrade at some point. Super low priority, though.
## Audio Interface: MOTU M4
A recent gift. I'm hoping to do more with music and mixing in the future,
though, so it will be welcome at that point! I play drums and would love to
put together a decent electric guitar setup. I also have an Arturia MicroFreak
digital synthesizer which is a lot of fun to play with. I'd love to put some
cool tracks together!
## Keys: Some twist-lock cable keyring
It's nicer than those metal rings you have to snap your thumbnail to get keys
off of. I had one fail after about 10 years and my keys went everywhere, so if
you're gonna use these, I guess you should replace them occasionally or check
them in rather rough ways with some regularity after a certain amount of time.
These are usually karabiner'd to my backpack or a belt loop.
When I'm driving with the family, we take the van, which has one of those
wireless keys, so I can just throw my whole bag in and we can drive. If I'm
driving solo, it's still a good, old insert-and-turn key, so the keys un-
karabiner from the bag or loop and go back on when disembarking.
My keyring is also attached to my wallet. Speaking of which...
## Wallet: Chums Surfshorts Wallet
Cheap, has a zipper to hold keyfobs and cards, and easily attaches to my
keys. Having them all together means I just gotta grab two things, one for each
pocket: phone and wallet-keys.
I haven't tried tap-to-paying through the wallet, which is probably a big
security hazard. 🤷
# Software
When my machine boots up, I'm greeted by the standard Linux login at the
console. No display manager or graphical login or anything. Once I'm logged in,
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.
2023-07-10 11:13:54 -05:00
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
2023-07-17 23:53:09 -05:00
Firefox is awesome. I'm a big fan. I make heavy use of their "Sync" offering,
which syncs just about everything. It's very convenient and I'm sure it will
somehow bite me later.
I use the following must-have browser extensions:
- [hide-scrollbars](https://addons.mozilla.org/en-US/firefox/addon/hide-scrollbars/) to hide scroll bars
- [FoxyProxy](https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/) for proxying through to various resources
- [PassFF](https://github.com/passff/passff) for interfacing with my `password-store`
- [Firefox Multi-Account Containers](https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/) for being logged into all my accounts simulataneously
- This is probably good enough reason _alone_ to use Firefox over anything else
- [Tree Style Tab](https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/) for a much nicer way of managing four billion tabs
- [Dark Reader](https://darkreader.org/) to keep things easy on my eyes
- [uBlock Origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) for blocking ads
- [Vimium](https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/) for moar keyboard shortcuts
- [open-url-in-container](https://github.com/honsiorovskyi/open-url-in-container) for programmatically opening URLs in certain Multi-Account Containers, for opening certain tabs in certain containers from my terminal
Firefox usually has the following web applications opened:
2023-07-10 11:13:54 -05:00
- [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
2023-07-10 11:13:54 -05:00
- [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?
2023-07-10 11:13:54 -05:00
[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:
2023-07-10 11:13:54 -05:00
- 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.
## Terminal
Beyond the web stuff, I pretty much live in the terminal. Interacting with my
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:
2023-07-10 11:13:54 -05:00
- [`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
2023-07-10 11:13:54 -05:00
- [`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
2023-07-10 11:13:54 -05:00
From Sway, the only utilities I use are the following:
- [`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.
Beyond these, I have a bunch of scripts and configuration in my
[dotfiles repo](https://git.lyte.dev/lytedev/dotfiles).
I use [`wofi`](https://hg.sr.ht/~scoopta/wofi) for launching applications
occasionally. It lists the following often-used applications:
- [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
2023-07-10 11:13:54 -05:00
- [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/)
2023-07-17 23:53:09 -05:00
## Music
I dabble in music sometimes, depending on my workload or how much I need an
outlet, mostly as a poser metal drummer, so I'll list that stuff here, too!
- Roland TD-11 electric drum kit
- Electric is convenient for adding music and not bothering people in a
quarter-mile radius
- [Here's a video of me playing it](https://www.youtube.com/watch?v=ucpYCSxxvy0)
- Arturia MicroFreak digital synthesizer
- Very new to me; super fun to play with
- Novation LaunchKey 61 MIDI controller
- Haven't taken the time yet to really setup a DAW to work with this
- Some piece of crap first act electric guitar that I keep trying to fix and make work
- I just need to bite the bullet and save up for a nice Ibanez (used of course)
## Electronics
I also tinker a lot with electronics and "maker"-y things! The only name-able
thing is my 3D printer, which is an Ender CR-10S. Micro Center was having an
incredible sale one upon a day. The thing is really awesome. I still want a real
nice one that I can reliably send prints over the network to.
Other unnamed tools I have and use on roughly a weekly basis:
- Soldering iron
- Solder sucker
- Air purifier (solder _and_ 3D printer fumes ain't all that good for you)
And I'm sure there are other unsung heroes I just don't think about. Like butter
knives.
# Finishing The Day
That about does it! I usually head upstairs when work is done, make food in
unidentifiable cookware, tinker and play with my kids for a bit, head out to
whatever evening activity we've got going on if applicable, come home, and bedtime!
Ah, we have a couple tablets for Khan Academy Kids, white noise (and other
sleep-inducing ambience), and podcasts (like Base Camp Adventures!) and a
Google Home Mini or two, mostly for playing loud and obnoxious music or setting
timers.
[uses-history]: https://git.lyte.dev/lytedev/site.lyte.dev/commits/branch/master/content/uses.md
[backups-nix]: https://git.lyte.dev/lytedev/nix/src/commit/fafd242e461620aaa48a669b3623614cc6829700/nixos/beefcake.nix#L528-L573
[beefnix]: https://git.lyte.dev/lytedev/nix/src/branch/main/nixos/beefcake.nix