š¾ Archived View for gemini.circumlunar.space āŗ users āŗ adiabatic āŗ words āŗ computing āŗ programs captured on 2024-08-18 at 19:05:11. Gemini links have been rewritten to link to archived content
ā¬ ļø Previous capture (2024-05-10)
ā”ļø Next capture (2024-08-31)
-=-=-=-=-=-=-
I use Homebrew to get a lot of random small programs that I otherwise never would have bothered to get. However, the output of `brew list | wc -l` is currently up to the mid-200s, and a lot of these are mere dependencies of things I actually care about.
This page, then, is a list of all the things I carry around with me and why.
TUI-based Gemini client, much like Lynx. If youāre reading this, you probably know what Gemini is already.
Sets up computers remotely.
Checks ansible playbooks.
Better cat(1) with syntax highlighting and other stuff. I disable line numbers by default, though.
like find(1), but breadth-first search, not depth-.
Havenāt used it yet.
Python autoformatter.
Puts ASCII-art boxes and similar (scrolls, etc.) around text.
Web server with built-in Letās Encrypt support. I donāt use it much these days, though.
I forget about this one. I probably should use it more.
Prints ASCII art of cows saying things.
Turns CSV files into something you can run printf against to extract data.
SQL-like query language for CSV files.
Like jq(1) but faster and does more formats (JSON, YAML, TOML, XML, and CSV). Written
in Go.
Seems neat, but I can never remember it, so I just use jq(1) unless I want YAML, at which point Iāll probably only remember yq(1).
Duplicate file finder, written in Rust.
JavaScript/TypeScript runtime and compiler and formatter.
like df(1), but more advanced.
Generates secure passphrases.
Makes much more readable/understandable diffs at the command line. Has instructions to add a `git dsf` alias into your Git setup.
Mega-fast parallelized `du -sh .` replacement that just prints out results like
24.70 MB (24,702,976 bytes)
and nothing else.
du(1), but in Rust, and itās fancier.
Nag you to make your JavaScript less bad. I use this for one-offs when Iām too lazy/unmotivated to make a package.json or whatever to pin the ESLint version.
Fancy ls(1) replacement. I alias `ls` to it on all my machines and nothingās broken so far.
This is a fork of exa. exa stopped being maintained a while back (its lead developer isnāt responsive anymore).
Like find(1), but streamlined.
Arbitrary-precision unit-ware calculator, so it says. I keep forgetting to use this as my instinct/habit is to run to a Google search box when I want to do calculations like `12 megabytes/sec in kilobits/sec`.
A better shell, IMNSHO, than bash or zsh.
If you tried it five or ten years ago, itās a lot less gratuitously incompatible with your muscle- and cut-and-paste memory than it used to be.
While this is a dependency to things like ffmpeg, I occasionally have cause to rip CDs to WAV files. flac(1) will then convert the WAV files into the Format of Now and Forever. While I mostly use ALAC because it works properly in the Apple ecosystem, I like having something lossless that works great with everything that isnāt Apple.
Prints out funny sayings. May be, on average, more funny or less funny these days, depending on the type of humor that you like.
āTerminal JSON viewerā, it says. I think I mostly use jq(1) for this sort of thing, but with fx you can click on things to collapse or expand them.
Fuzzy finder. Handy in ways that are hard to describe, even if you do end up combining it with other programs to pick from long lists of things.
A Git-focused diff tool. I donāt use it much because I tend to use Tower for these sorts of tasks, but itād be handy if I used it more often.
I donāt remember ever using this, but it seems handy.
Random handy things.
Itās like top(1), but fancier.
A pure-Go implementation of jq(1). I keep forgetting I have it, and I just use jq(1) instead.
A Kakoune-alike (like vim, but range-first instead of verb-first), but doesnāt depend on the Meta key to get basic things done. Iām using it right now to write this.
Keep track of money. Itās not so good for forecasting, though, and it doesnāt exactly do graphs natively. On the other hand, āyour transactions in a text file that is in a Git repositoryā is exactly as powerful as it sounds, and Iām not sure I could go back to any other style of money tracker after this.
Extracts bits of HTML from entire pages of HTML, using CSS selectors.
This is one of those things that Iāve never needed to use (so far), but I want to keep in my back pocket in case the need ever arises.
HTTPie, but with autocomplete.
I donāt think Iāve ever used this, but it looks neat. Usually Iām using RapidAPI (formerly Paw) when most people use Postman.
Basically cURL. Itās my go-to āGET a page, check its headersā tool.
My go-to static site generator, although Iām starting to prefer Astro these days.
Some kind of command-line API verification tool. Seems neat, but never had a need to use it yet.
A Lisp for/in Python. I never really got into it because trying to write Lisp without Emacs handling your parentheses is an exercise in needless pain, and Iām not an Emacs guy.
Diffs images.
Turns normal programsā output into JSON. Seems cool, but I havenāt needed this for anything yet.
Diffs and patches JSON and YAML. I havenāt had a chance to use this yet.
Duplicate file finder. Yes, another one.
Gets EXIF info from photos.
Generates JSON at the command line. I donāt think Iāve used this for anything yet.
The JSON transmogrifier that everyone seems to reach for yet nobody can remember the syntax to actually extract anything with it.
I still use it for pretty-printing, though, so thereās that.
Another JSON query thing, similar to jq(1). The query language is different, possibly easier, probably not as powerful.
I use this as make(1) on my Windows machines. Otherwise, I just use make(1).
āFull-featured calculator with math syntaxā.
Seems neat, but I donāt think Iāve ever used it. Normally, I reach for Soulver or PCalc if I need to do math.
ā¦you may notice, as I did just now, that this is not the only math doer in this list.
Kalker, however, seems to really lean into UnicodeMath, of sorts. It lets you type in things like
>> ā«(0, Ļ, sin2ix, dx) + e^(Ļi) Ć· 3
and so on.
Kills processes that are listening on a specific port.
Looks handy but I havenāt used it yet.
Contains rsvg-convert ((1), if it had a manpage). I use this to turn SVG files into PNGs. ImageMagick uses this (as a library) to do its thing anyway, so I figure I might as well cut out the middleman and get access to all the native knobs.
Seems neat. I might be able to use this for normal files.
Point your in-development web app at this instead of SendGrid or whatever and youāll be able to see all the mails your app sends out.
A text editor written in Go. Itās not modal like vi(m)/kakoune/helix, and itās not written in a programmable programming language like Emacs, so it kind of smells like GNU Nano. To describe it as āa better Nanoā, though, would probably do it a grave disservice unless Nano got _way_ better when I wasnāt paying attention.
It kind of depends on the Meta key for semi-basic keyboard shortcuts, though, so itās not really my cup of tea. I wouldnāt hesitate to recommend it ā strongly ā to anyone who isnāt a metalet like I am. If I needed to do some serious editing on a random Linux box and for some reason vim wasnāt a good option (donāt have my .vimrc and .gvimrc with me), Iād probably just download Micro, make it user-executable, and then go to town.
Makes single-file archives of web pages.
Originally āMattās Tracerouteā, but the original guy handed off maintenance to someone else.
If youāve ever used pathping on Windows, you know how much better it is than either ping(8) or traceroute(8). Well, mtr(8) is even better than pathping. A useful tool and great blinkenlights on top of that.
Get a colorful screenful of what your computer is like. Show your system stats off to impress your friends and terrify your enemies.
Screensaverish thing. Sort of. Never used it.
Oddly enough, I donāt care enough about Node stability to install the thing from nodejs.org. I just get updated whenever Homebrew gets around to updating it.
Itās also nice to have a JavaScript REPL, but I usually reach for deno(1) first, even though node(1) will preview the results of expressions.
Calculator programming language with units as types. Iāll probably use this if I need to do unit math and donāt want to ask Google.
neofetch(1) tells you about your computer. onefetch(1) tells you about the source code in the current directory.
Gives you your CPU temperature or counts the number of your fans, at least on my machines.
Compresses PNGs and uses lots of cores if at all possible. libdeflate will give you the best compression in seconds, whereas Zopfli compression will eke out a few more percent savings, but compressing with Zopfli will take you minutes or hours to compress a PNG file, and thatās if youāre letting it have all six cores that it asks for in Zopfli mode.
Pro tip: As of this writing (2023-04-07), if you run this in a Shortcut on a Mac that has both fast and slow (ahem, performance and efficiency) cores like the M-series Apple Silicon chips, only slow (efficiency) cores will be devoted to the task, and it will take WAY longer for even a mere libdeflate compression. Your lap wonāt heat up, though.
Generates colors and lets you play around with them. You will very much want a terminal that handles 24-bit color for this (so, not Terminal.app as of macOS 13 Ventura).
Sometimes itās just not worth it to add a node_modules.json file just so you can pin a version of Prettier to your project.
āParse HTML at the command lineā, it says.
Another one in the ālooks handy and cool, never usedā pile.
ā¦wait, I had this already? Whyād I bother installing rvm(1), then?
Seems crazy useful. Never used it.
Nice to see that thereās more than one SVGāPNG converter out there. Never used it.
Written in Rust. Lints JavaScript and TypeScript.
I think I mostly get by with deno lint, but this is the kind of thing I like having around. I donāt think Iāve started using it in any sort of CI or on-commit hook or anything, though.
The version that ships with macOS is ancient by now because Apple is allergic to the GPLv3.
If you asked me what newer versions do that older versions donāt, though, I wouldnāt be able to tell you.
Lints Python. Written in Rust.
I might have used this once or twice, but I donāt write Python regularly to really get a good feel for it or to give it a thumbs-up or thumbs-down. It gets frequent updates, though, at least as Iām writing this, so I probably wonāt totally forget about it the next time Iām writing Python.
Kind of like sed(1). I donāt think Iāve ever used it, though.
fzf(1) clone in Rust (fzf is written in Go). Consider dropping down to #differences-to-fzf to see what the differences are.
I donāt think of this very often. I use fzf occasionally, but this? Havenāt needed it yet.
Primitive source control with modern porcelain.
While you might ask āwhy not just use Git?ā, you canāt safely use Git in a Dropbox- or SyncThing-synced folder because any sort of file conflict will generate copies with ā(computernameās conflicted copy)ā appended to them, and that will basically wreck your .git directory.
src wonāt do that. Itās too primitive and single-player and single-file to get wrecked by shenanigans like this.
Lets you spin up VMs on Apple Silicon machines. Most of the work is done by Apple.
I think I played around with it for a bit but I donāt think I got Debian running to my satisfaction.
grep is nice, ack is better, ag is also better.
It feels weird to use this when Visual Studio Code has search built right into it, but sometimes Iāll use it in VS Codeās own terminal window even though ā§āE is right there for me if I want it.
This oneās weird, honestly. Itās like HTML-only Prettier from a time before when people routinely said āscrew it, have the computer format the thing for me/all of usā.
I remember needing it for something because Prettier (my go-to) couldnāt handle it, but I canāt remember what I needed it for.
I rarely need to split up a terminal a bunch of different ways or run a terminal remotely AND locally at the same time, but when I do, I use tmux.
Iāve never used this, but it seems damn cool.
Kind of like TeX, which I never got into. I think it blows SILE out of the water, though, at least in my early poking around.
Records scripted keypresses to demonstrate CLI things.
Seems neat, but I havenāt needed to use it yet.
Generates LS_COLORS for you (or EXA_COLORS) so your colors all match a theme.
Ever wanted to compress images to WebP? This is the reference encoder, and it has lots of great knobs that you should probably familiarize yourself with. Lossless WebP is great if you donāt care about wide color. Lossy? Ehā¦
Use this to turn .ttf and similar files into woff2 files.
Kind of like HTTPie (mentioned above), but the README says it focuses on improved performance.
I never thought that HTTPie was slow, but hey, everyoneās gotta have a hobby, right?
See #how-xh-compares-to-httpie on the README for a list of differences.
I think I only use both because I can only remember one or the other when I need something like this.
Another beautifier/extractor, but for XML and HTML.
ā¦I donāt think Iāve ever used this, but it is my cup of tea.
Squish files tiny. Kind of like gzip on steroids.
Lints YAML. Iāve used this a couple times.
Converts between YAML, JSON, TOML, and something called HCL.
If youād rather write YAML (comments, etc.) but feed JSON into a computer, youāll get some use out of this.
Draws plots in a terminal. Looks cool, never used.
Like jq(1), but for YAML, JSON, XML, CSV, and something called āproperties documentsā.
Tag-teams with youtube-dl to download videos off of YouTube, Twitter, and similar.
Puts your Mac to sleep.
I donāt think Iāve ever used this. Iām pretty sure I just use Alfred for this. Maybe itād be useful if Iām SSHed in and want to put the Mac to sleep from the comfy chair down the hallway.
ā
If you want a program to check this page on your behalf, have a look at the feeds on the site colophon:
ā