Bad is bad. June 8, 2023 on webb's site

Everything is bad, therefore constantly complaining about software is bad. Let's do not that, let's talk about some cool software. These are in no particular order, and I use all of these projects on a regular if not daily basis.

zutty

A screenshot of Zutty with Vim open on some Go code.

Zutty is a simple terminal emulator in the same vein as st, except with GPU acceleration and very good terminal support. Before I found out about zutty I was using st, because the start-up time of the emulator for me extremely important. Terminal emulators like Alacritty take way too long to start, which is unacceptable as I use many terminal emulator windows in my workflow I'm often closing and opening. Zutty is super quick to start up, being slightly slower than st (but still very fast to where most people won't notice.) It also has really good support for bitmap fonts. In st I was constantly zooming in and out because of my poor eyesight, and the way it renders vector fonts is extremely blurry. Zutty's good support for bitmap fonts, particularly Misc Fixed (the default X11 bitmap font) makes me not need to zoom in because of how clear the text is, and is an acceptable size for my small, older monitors. If you use st, I'd strongly reccommend trying out Zutty. The author of it is very opinionated, so be prepared to patch things you want in yourself.

You can find a lot of technical writeups and comparisons to other terminal emulators on the developer's site, which are a delight to read.

acme2k

A screenshot of acm2k with various text buffers open with code, taken from the acme2k repository.

Acme is an editor by Rob Pike created for the Plan 9 operating system. It's an incredibly sick editor that's been ported to modern operating systems via plan9port. There's a fantastic tour of the editor by Russ Cox you can watch here. It makes extensive use of the mouse, and integrates extremely well with the system, including exposing a filesystem interface for the editor which you can use to mess with its state. Plugins are just programs that interface with the filesystem via text manipulation. I could go on, but that video really explains its beauty and simplicity better than I can. However, it's a very opinionated editor, with little customisation.

If you like acme, but don't like its colourscheme, then acme2k is for you. It also includes some small adjustments to keybindings, such as your standard copy/paste shortcuts and having up and down go up a character like in modern editors. For me I have sensory issues with light themes, and being able to set it to something dark is a massive help. I'm currently writing this in acme2k, though, I've modified some external libraries to make it so that some extra lines are white (hence why that isn't my screenshot.)

age

Age is a cryptography system, and a library/command-line reference implementation. It's very quick and easy to encrypt and decrypt data with it, which I always end up reaching for when I don't want to deal with the pain in the ass that is GnuPG. It also plays nicely with pipes; I commonly use it to send data with netcat where doing it over SSH is too slow, since I can just pipe it through and it's very fast. You can use small ephermeral keyfiles, or add a password to the encrypted file. If you don't specify a password, it will generate an XKCD-style password for you, which is a great compromise between security and typability. I'm currently writing a password manager that's like pass, but uses age (currently it's called "ass.")

If you just need to encrypt a file, I'd strongly reccomend age. There's also implementations for other languages like Rust and Python.

8bloat

8bloat was created by me, which might make you slightly curious as to why I included it here. 8bloat is a fork of BloatFE, which deserves most of the credit, and is already a great client. It's a Javascript-free frontend for Mastodon-compatible APIs, with a focus on Pleroma. It's extremely fast, and has great browser support (as a matter of fact, I know of someone who uses it on Plan 9.) Unlike most frontends of this kind (8)bloat has panels that work independently of each other (so if you browse to a post on your timeline, it won't clear the new post you're composing.) Often times it's actually faster than clients that directly call the API since the response body is usually smaller than calling the API. Here's a small video. I am running 8bloat on a crappy and unreliable connection, across the Atlantic ocean. It's very fast nonetheless aside from the hiccup on Kayden's profile.

I also find it's very pleasant to use because it isn't super flashy. It feels like a tool rather than something emulating the dopamine machine that is sites like Twitter. It even includes an "anti-dopamine mode" that hides statistics on posts.

A rapid-fire list of other features:

BloatFE, however, is opinionated; it's missing some important features for a lot of people. I created 8bloat to fix a lot of these papercuts and extend Bloat to be more usable for more people.

Vanilla Bloat can be tried here, or you can use 8bloat here if you have an arachnid.town account. Vanilla Bloat uses a CC0 license, whereas 8bloat uses the AGPLv3.

gallery-dl

This is a super under-appreciated piece of software. It's like youtube-dl, but for collections of images and videos. I have used this program for hundreds of gigabytes of files, and it's super reliable and fantastic. Have a Twitter page you want to download all their stuff from? See a board or thread on an imageboard site you'd like to quickly download the entirety of? These kinds of things are where the program shines. It can even work with youtube-dl/yt-dlp. It has support for a crap ton of sites, especially boorus.

It automatically organises your files for you, with the structure of site > user/board > thread (if applicable) > image. For most people you can just point it at a standard directory and have it work well for browsing by default.

mautrix-discord

This is a double-puppeting Matrix bridge for Discord. It's super reliable, and very fast. It organises all your Discord guilds under a space, and can automatically join your rooms on your behalf if you let the bridge access your account (which if you're self-hosting then this is a non-issue.) If you've used that one other double-puppeting bridge you'd know how much of a pain in the ass actually maintaining it is, and how buggy it can be. It's awesome having a Discord bridge that works, and doesn't rely on annoyingly giant toolchains (it's written in Go, not NodeJS.) It also has better support for Discord's newer features such as threads, custom emojis, and stickers. It also doesn't randomly crash like mx-puppet-discord, and is actively being worked on. Also also it supports bot accounts, so you don't need to worry about ToS violations for using the bridge!

browser extensions

These are some browser extensions I think deserve more attention. They make browsing the web a lot more enjoyable.

Clickbait Remover is a simple open-source extension that formats all YouTube videos' metadata when browsing to be less clickbaity. It makes text all lowercase except for the first letter, and removes unecessary punctuation. It also replaces the thumbnail with an auto-generated one from the middle of the video. It's weird to use at first, but I found over time I've grown to appreciate it. Sometimes the autogenerated thumbnail is unintentionally funny, which is also great.

ViolentMonkey is a simple, free, and open-source extension for userscripts that's compatible with TamperMonkey and GreaseMonkey.

Stylus is an open-source alternative to Stylish that is compatible with userstyles.org. Though, you should avoid using userstyles.org if possible. There's a lot of great themes for many sites you might use that work with this extension.

clipboard2file is an extension that allows you to paste into file upload boxes. Currently only Firefox is supported, which is a shame as I use Ungoogled Chromium currently. Nonetheless, it's extremely useful if you're like me and use the clipboard as the primary way to communicate things between your programs.

conclusion

There is no conclusion, rarely is there a simple or straightforward moral in life.