TUI tools are generally as accessible as the terminal on which they run.
GUI apps are much trickier. They require that the developer implement integration with accessibility frameworks (which vary depending on X11/Wayland) or use a toolkit which does this.
GUI kits like AppKit or GTK have built-in accessibility features like standard components (input fields, dropdown boxes) and view hierarchy that interact with accessibility tools for free. It's the main upside of a GUI.
TUIs are tricky.
I think TUI accessibility generally involves rereading the screen on changes (going by macOS VoiceOver). It can optimize this if you use the terminal cursor (move it with ansi sequences) or use simple line-based output, but pretty much zero TUIs do this. You'd have to put a lot of thought into making your TUI screenreader friendly compared to a GUI.
The thing going for you when you build a TUI is that people are used to bad accessibility so they don't expect you to solve the ecosystem. Kind of like how international keyboards don't work in terminal apps because terminal emulator doesn't send raw key scans.
How are TUI tools just as accessible as the terminal? Take a visually-simple program like neomutt or vim. How does a vision-impaired user understand the TUI's layout? E.g. splits and statusbar in vim, or the q:Quit d:Del... labels at the top of neomutt. It seems to me like the TUI, because it only provides the abstraction of raw glyphs, any accessibility is built on hopes and dreams. More complicated TUIs like htop or glances seem like they would be utterly hopeless.
When it comes to GUIs, you have a higher level of abstraction than grid-of-glyphs. By using a GUI toolkit with these abstractions, you can get accessibility (relatively) for free.
Additionally in sysadmin, blind-users are not just some random group, the ability not to use one's eyes is central to the Command Line Interface. You could always in theory get by with just a keyboard and a TTS that reads out the output, it's all based on the STDIO abstractions that are just string streams, completely compatible and accessible to blind, and even deaf users. (Unlike GUIs)
I play OW2 on Linux with Steam + Proton and I was having this issue a while back but somehow fixed it. I think it was by increasing the shader cache size! Happy to find the exact instructions that I did to fix it once I’m back on that PC.
For a really good practical project: build a website, then host it on your mini-PC and find a way to expose it to the internet. This will teach you a lot about DNS, proxying, building websites, managing the server (via some config management or container), monitoring, etc.
I’ve started to use jj much more often (and actually used this tutorial to get me started!). I do wish its interaction with Nix flakes is less annoying though, but that’s not the fault jj.
There's a similar building in San Francisco, I think it's near the new Transbay Terminal? I've moved away so I can't drive down and search for it myself, sadly.
I was shocked when I first encountered it: "What eldritch thing broods in a windowless skyscraper?" But of course, a phone exchange.
(Any hams here? I remember seeing a tall building in S.F. with a log-periodic antenna on its roof; a consulate, maybe.)
Congrats on the launch! Will definitely have to check it out. I see you’re using Phoenix/Liveview for the control plane. :-) How has that been working for you?
Erlang/OTP has so far been an excellent platform to build on for a product like Firezone. We chose it specifically for its reputation for powering soft realtime systems. Phoenix Channels are an added bonus that allow us to push all updates where they need to go, in just a few hundred lines of code.
Counter-point: walking and taking public transit became considerably _more_ interesting for me once I became fully remote. However, I do live in an area with walkable amenities (coffee shops, grocery stores, etc).
When I was going through this, I found it helpful to re-implement stuff in code as I was learning. I compiled resources on it in this repo for my own benefit: https://github.com/aos/computer-networking-study