the reason i still keep making small tools and publishing it.
I have one funny reason that still keeps me up doing it despite being a bit lazy.
I encountered a problem that has no optional fix around it that i wanted so i had to create one to solve the damn problem in any way myself. To be frank, i moved on and had a burnout a lot, but even so, i still began to create another kind of tool for myself, and if that still interests me, i often try to maintain it.
the thing is that, open source or foss stuff is not really my first passion to begin with when the first time i managed to code stuff by myself (that was before chatgpt even existed, god lord!)
and to this day, even though it seems like that i contribute to the open source / foss spaces with my own code being published for free, i wasn't here to contribute to the environment actually. i simply made a tool, once found it usable for myself, i simply share it as both archival/preservation and for other to be able to use my thing. because i do not like it when the thing that i code wasn't being used by anyone other than myself.
i might looked like helping some project by sending PR to them to fix certain bug, I might do helping them, yes. But the initial idea is still pretty much because i use their thing, and their thing is problematic, then finally it's technically resolveable, and somehow that's the healthier position for me.
Thing is, i liked creating and then expecting people to use it.
Because i do not like making a project that had no user.
and because i want to have people use my tools, i tend to make some of my projects flexible and controllable while still being easy to use.
for example, vsink, a project of mine that does some stuff with virtual pulseaudio sink, have these options:
$ vsink -help
Usage of vsink:
-bypass string
Comma-separated application names to bypass capture
-defaultSinkMode
Set the virtual sink as default sink. May help with some apps, but can cause issues with volume control.
-monitor string
Comma-separated application names whose recordings should use the capture sink monitor
-noLoopback
Disable loopback. Any app in the virtual sink will not be played back to the main speaker (except bypassed apps)
-onlyCapture string
Comma-separated application names to exclusively capture into the capture sink
-vSinkName string
The name of the virtual sink (default "SystemCaptureSink")
also, go-bwhero, an image compressor/thumbnailer proxy have these options:
$ ./go-bwhero -help
2026/08/20 13:28:14 bwhero, rewritten backend.
Usage of ./go-bwhero:
-animSizeLimit int
Original animation size limit in bytes (default -1)
-imgSizeLimit int
Original image size limit in bytes (default -1)
-listen string
Listen address (default "localhost:8080")
-userAgent string
User agent that go-bwhero should use. (default "Mozilla/5.0; go-bwhero [https://github.com/Yonle/bwhero]")
-videoSizeLimit int
Original video size limit in bytes (default -1)
-vipsConcurrencyLevel int
libvips concurrency level to use
-workers int
Amount of workers to spawn (default 8)
and the most obvious one, unlockata, a tool for doing ATA security on ATA storage drives, have these options too:
$ unlockata -help
Usage of unlockata:
-device string
ATA device ("list" to list ATA devices)
-master
use the ATA master password instead of the user password
-maximum
use maximum security level
-noreadpart
do not reread the partition table after the ATA command
-op string
ATA security operation ("help" to list supported operations) (default "unlock")
-passwd string
Path to 32-byte binary password file
-serial string
ATA device serial number ("list" to list ATA devices)
-verbose
show CDB and Payload bytes being transmitted to the ATA drive.
$ unlockata -device test -op help
Available ATA security operations:
set SECURITY SET PASSWORD (0xf1)
unlock SECURITY UNLOCK (0xf2)
freeze SECURITY FREEZE LOCK (0xf5)
erase SECURITY ERASE UNIT (0xf4)
erase-prepare SECURITY ERASE PREPARE (0xf3)
disable SECURITY DISABLE PASSWORD (0xf6)
from there you can really see which part i really tried my best to convince people to use it in the most indirect way possible.
despite all of that, i do have one very common problem though. if the tool that i create already has a perfect code that then i had no idea what to add or what to fix let alone improve, most of the times, these became pretty much a stall,
which is funnily what happened with most of my go projects. but i don't think i should worry these though given how safe go already is (compared to javascript, heh)
well. with all that being said, now you know why i'm still around and still interested experimenting random things.
but yes. the fact that i use go is deadly for everyone.
cuz i have no longer need to suffer through python, node, c, c++, c##, lua, perl, java, erlang, or even rust problems just to fight one problem