626 lines
30 KiB
Markdown
626 lines
30 KiB
Markdown
---
|
|
# 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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Regarding the configuration of my machines and the software referenced below,
|
|
[please refer to my dotfiles repo](https://git.lyte.dev/lytedev/dotfiles)!
|
|
|
|
# Good morning!
|
|
|
|
I wake up when my kids do out of a Purple mattress.
|
|
|
|
I slip on my PineTime wrist watch, grab my 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!
|
|
|
|
## Smart Phone: ASUS ROG Phone 5S
|
|
|
|
I bought the phone that I can get root access to with the biggest battery,
|
|
nicest display, and a headphone jack. That's pretty much all I want in a phone.
|
|
The speakers are a great bonus. The two USB-C ports is actually a super nice
|
|
feature since I can connect peripherals while charging without a dock or crazy
|
|
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 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 extensions even on Android! I use the following:
|
|
- [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
|
|
- [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`)
|
|
- [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
|
|
- Google Messages for SMS, MMS, and RCS
|
|
- Google Maps for meatspace navigation
|
|
- Pocket Casts for listening to podcasts
|
|
- Spotify for listening to music
|
|
|
|
## 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
|
|
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.
|
|
|
|
## 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
|
|
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 have a lot of servers, but the main server is just an ASUS Chromebox 3 that I
|
|
flashed Arch Linux to. It pretty much just runs a big ol' Docker Compose setup
|
|
with a sprinkling of other non-Docker'd services. It can do the hardware
|
|
transcoding for Jellyfin, my home media server, and just generally does not
|
|
break a sweat.
|
|
|
|
I recently was given a Dell R720xd with 20 hyperthreaded CPU cores (40 threads),
|
|
256GB RAM, and 44TB of raw disk space, which I am _very_ excited about, so I'll
|
|
probably be moving most stuff to that bad boy, though I expect the power bill to
|
|
go up _just a tad_.
|
|
|
|
I have a few other cheap machines with larger disks at friends and family's
|
|
houses for off-site, encrypted backups of important data. I should
|
|
_really_ take the time to validate and automate my backup setup, because right
|
|
now, I do a completely garbage job of it.
|
|
|
|
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 applications for my home:
|
|
|
|
- [Traefik](https://traefik.io/traefik/) to reverse proxy all the things
|
|
- Though I use Caddy for most things, Traefik does work nicely with my
|
|
convoluted Docker Compose setup
|
|
- A homemade chat bot for various things
|
|
- Various game servers (Minecraft, Factorio, Valheim, etc.)
|
|
- [A small service that multiplexes audio and video feeds](https://git.lyte.dev/lytedev/tcplexer) mainly for combining a couple audio feeds from DIY IP baby monitors into a single stream for listening
|
|
- [Gitea](https://about.gitea.com/) for https://git.lyte.dev 💜💛💙
|
|
- [NGINX](https://www.nginx.com/) to serve static files for https://files.lyte.dev
|
|
- [Jellyfin](https://jellyfin.org/) for streaming my video media to approved users (family, friends, etc.)
|
|
- [Plausible](https://plausible.io/) for web analytics
|
|
- [PostgreSQL](https://www.postgresql.org/) as the great database for anything that needs one
|
|
- [MariaDB](https://mariadb.org/) for anything too lame to use Postgres
|
|
|
|
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 😉)
|
|
- 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.
|
|
|
|
## 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,500USD. 😬
|
|
|
|
## 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:
|
|
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:
|
|
https://files.lyte.dev/images/archives/battle-station-2022-10-13.3.jpg
|
|
|
|
## Laptop: Lenovo T480 and MacBooks
|
|
|
|
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
|
|
- 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
|
|
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.
|
|
|
|
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 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:
|
|
|
|
- [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](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](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:
|
|
|
|
- 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:
|
|
|
|
- [`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`](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 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
|
|
- [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/)
|
|
|
|
## 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.
|