this post was submitted on 10 Jan 2025
100 points (97.2% liked)

Ask Lemmy

27441 readers
1429 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


6) No US Politics.
Please don't post about current US Politics. If you need to do this, try !politicaldiscussion@lemmy.world or !askusa@discuss.online


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] sxan@midwest.social 1 points 2 days ago

Thanks for asking!

I work on a variety of projects. Most are in Go, but I could have used Rust if I liked it more; they both tend to compile statically linked stand alone executables.

Most relevant to the discussion is Claptrap, a flags library for Go that has no external dependencies and could be imported into a project my copying one file and changing the package. I deal with added functionality with additional, optional, packages that can be imported to add features like conf file support, env var support, man page generation, pretty printing, etc. Each package used adds another dependency, but they're each optional and relatively small, readable (I hope!) and auditable. I wrote Claptrap after changing flags libraries something like 5 times with each new project because there was something I didn't like about the last one I tried. I even did an analysis of dependencies and code complexity on about two dozen different popular options.

Then there are a bunch of little tools I use daily. One's Legume, which is a distributed ticket tracker based on code comments. No external db, no external service, relies entirely on standard code commenting conventions developers have been using for decades. Again, single executable, and it's pretty fast. It's not the first such tool, but I think it's the best.

I have several other little tools I use daily. I have what I think is a really nice set of scripts and zsh functions based around todo.txt files. The main one is tdp, which provides a bunch of functions for doing executive lists, accessing special todo files more easily, and interacting with then through fzf; that may be the set of tools I use the most throughout the day, but it's not really packaged for release or especially well documented. I rely heavily on todo.txt.

I wrote a keep-a-changelog generator for Mercurial projects. It's not as fancy as git-cliff, but it does the job.

I'm the maintainer for gotop since the original author abandoned Go for Rust. I've not been spending a lot of time on it because it needs a refractor and I haven't found the energy for it, and there are so many good alternatives. That project is all dependencies, so nothing minimal about that.

There's a really rough TUI SMS chat app I'm writing called dsms, because I hate communicating on phones. It relies on two programs to be running on your Android phone, because there's no app that both forwards SMSes and allows sending through an API call, so it's kind of a pain and nowhere near ready for primetime.

And I recently wrote a CLI tool called dvalv for encoding and decoding files encrypted with the Android app Valv (which I _didn't_write), so if you SyncThing your Valv directory to your desktop, you can decrypt and access your files there.

And I have a really obtuse, byzantine set of tools for taking a resume.json file and generating Word, ODT, HTML, Markdown, and pdf (via Typst) output, via a couple of different templates. The projects unimaginatively called "resume". That's entirely for myself, but it someone wants to use it, I'd be happy to walk them through the process of getting everything set up to do so. It uses a couple of very nice templates that I patterned after a couple of professional career councilors. The repos isn't up to date; I need to push some changes, but since I'm positive I'm the only user I haven't made it a priority.

A tool I'm extremely happy with and use maybe even more than tdp is rook. This one I did announce on Lemmy. It's a sort of headless secret store backed by a KeePass DB, and it's one of the most useful tools I've written recently. Rook's in both AUR and Alpine testing.

There's a little busybox-compatible Lua script for DD-WRT routers that'll shuffle and pick a VPN exit node from ones stored in the router; I use it to hop my exit node once or twice a day via a cron job. I use Mullvad and there script might have some assumptions built-in that won't work for non-Mullvad accounts, but it's not exactly rocket science.

I forked a lightweight, pure-Go DB project and did some substantial modification, and called it leaf. These sorts of DBs are a dime a dozen, but this fit my needs, which included being usable on programs cross-compiled for mobile devices.

What's taking all my time lately, though, isn't my project. I've been doing a lot of work on stmps, which is a hard fork of stmp, which is a Subsonic TUI client. I'm doing things like adding album art and synchronized lyrics support, bug fixes, and so on. My dev branch there is called "xxxserxxx".

All of these are actively developed, if not necessarily getting a lot of commits. I fix bugs as reported, and make improvements as needed.

Here's a full list; nearly all my projects are on Sourcehut.