What tools have you built to scratch an itch or quell a regular annoyance? They can be anything from a full blown application to a few commands stringed together.
I built a TLS certificate tool targeted towards my company usecase for internal certificates (developers, OpenVPN, internal certificates): https://github.com/linsomniac/rgca
It's big features are that the cert generation can entirely be controlled from the command line, config, or environment, or any combination of the above, and it has tooling for the situation where I have an existing cert but want to add or remove a name from it. It also has pre/post scripts so I can have it do things like add it to the Ansible repo, vault encrypt it, and commit it. Beats the 10+ year old script that didn't work with Subject Alt Names.
I manage multiple virtual machines, and whilst not coding, it sometimes feels that way, since you're bending a computer to your will, which is my definition of coding. Nothing more exciting than after a fresh install of Windows, and configuring the hell out of it to your liking (hardening it, de-bloating it, making it more performant, as-well as customizing it and installing choice applications to it).
I built a tool to conduct agile meetings like standup, sprint planning, and retro asynchronously based on my frustrations sitting through lots of poorly-run meetings: https://www.teaminal.com
Also great if your team is distributed - no more 7am/7pm meetings with your team in India!
Iterations is a new way to help you generate ideas.
Creative methodologies usually combine divergent thinking (applying a stimulus to generate potential outcomes) and convergent thinking (bringing facts and data together and applying logic).
Iterations help divergent thinking by giving suggestions on how to process the output. They work as a set of guitar effect pedals to your process. There is an input, a set of ambiguous instructions that can be applied to this input, and an undetermined output created by these effects.
A UI for shell commands. It started when a project had so many helper scripts that I kept forgetting how to call them, so I made this dashboard or command-runner. https://github.com/seldomU/dasdashboard
I built an HTTP stub application in my spare time. At first, I only built it for myself but at some point open sourced it. I still have a lot of fun building it. You can find it here: https://httplaceholder.org/
After being annoyed by most online json formatters out there, I decided to build a simple keyboard-driven one. One of the main things that I was looking for was to have it easily accessible, without the need to open new browser tabs or programs that I might need later like vscode so I enabled PWA for it.
When I noticed https://jsonformatter.com domain was not used I sent an email to the owner and he actually agreed to host my app since it was open source.
There are other people using it right now, but I enjoy using it every time I need to make a json more readable.
since all other Cortex debuggers sucked in some way or another (not scriptable, took too long to support new chips, too expensive, pain in the ass to use, etc)
I translate children’s books in my spare time. One time, I got a little book called “The Wonky Donkey”, in which all the rhymes rhyme exclusively with the word “donkey”. The task here was to find the appropriate rhyme to my native language’s equivalent of “donkey” (gomar), while at the same time retaining the original meaning.
So I built a tool to find all the rhymes to a given word.
My backup script, called with ./backup, and will incrementally backup my servers on the local machine using rsync and brtfs snapshots.
The command "list" to find stuff in the current directory, recursively. Basically "find | grep". Works if you have the Python module or Java package name / path, since "." will match any character, including slashes :-)
#!/usr/bin/env sh
if [ "$1" = "-h" ]; then
exec cat << EOF
Usage: $(basename "$0")^ [--] search_string
List paths having search_string in them.
Note: options are passed to grep.
EOF
fi
if [ "$1" = "--" ]; then
shift
fi
find -type f | grep "$@" | grep -v '.pyc' | fgrep -v /target/
And "fkt", which will open the files returned by list with your preferred editor (f for find, kt for kate, because that's my editor and didn't find any fitting name for this command)
#!/usr/bin/env sh
editor=kate
if [ "$FORCE_EDITOR" ]; then
editor=$FORCE_EDITOR
fi
help () {
exec cat << EOF
Usage: $(basename "$0")^ [--] search_string
Open files with paths having search_string in it.
\$FORCE_EDITOR can be used to give the name of the editor to use
current default editor: $editor (edit $0 to change)
Note: options are passed to grep.
EOF
}
if [ "$1" = "" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
help
fi
if [ "$1" = "--" ]; then
shift
fi
if [ "$1" = "" ]; then
help
fi
list -- "$@" | while read line; do
printf "open with ${editor}? %s [Y/n/q]: " "$line"
read confirm < /dev/tty
ok=""
while [ "$ok" = "" ]; do
if [ "$confirm" = "" ] || [ "$confirm" = "y" ] || [ "$confirm" = "Y" ]; then
ok=y
"$editor" "$line"
elif [ "$confirm" = "n" ]; then
ok=y
elif [ "$confirm" = "q" ]; then
echo "bye"
exit
else
echo "wat? "
fi
done
done
Turns out, I use "list" dozens of time per day, I forgot a bit about fkt but I might get back to it thanks to this post because I often copy-paste results from list to open them. I had forgotten about adding this confirm prompt :-)
I'm sure there are existing, better, tools for this though.
(I've never tested them on non GNU systems, there might be GNUisms in them)
I use the tool to build a directed graph of the type and method usages, and to see which code is grouped into which packages. The code is rendered in a graph diagram that I can see, query, and filter. It really helps me when I'm doing code review or working on a part of the code I'm not too familiar with.
I built a LAN pastebin using flask and htmx. I wanted to be able to copy short text, URLS etc. to / from my laptop to / from my smartphone without going to the web. Works great. Didn't even realize that there was such a thing as a pastebin when I started it.
They do what they sound like. The first command will run even on Windows Server Core and Linux, and doesn't need Excel installed. It's only slightly slower than the 64-bit C++ compiled MS Excel executable at parsing multi-gigabyte files, which it can do in constant memory (streaming mode).
The purpose of this is to enable spreadsheet-driven bulk provisioning tasks where there are a lot of distinct-but-similar parameters. I added some niceties such as the ability to trim off leading or trailing spaces and blank lines to prevent objects being created with names such as "xyz ".
The Export-SQL is the twin, which dynamically adds missing columns to a table and similarly allows streaming input. Simply pipe anything from the command-line to get it into a database for indexing and querying. This will work as expected:
For general purpose queries over medium amounts of data, nothing really beats the performance of SQL Server on an 8-core laptop with modern SSD and 64 GB of memory.
I planned to open-source and publish both utilities, but there remain a couple of bugs that I could never be bothered to fix, and I'm not comfortable publishing tools that could potentially lose or corrupt data. That could make someone else's day very bad.
45 comments
[ 3.6 ms ] story [ 106 ms ] threadIt's big features are that the cert generation can entirely be controlled from the command line, config, or environment, or any combination of the above, and it has tooling for the situation where I have an existing cert but want to add or remove a name from it. It also has pre/post scripts so I can have it do things like add it to the Ansible repo, vault encrypt it, and commit it. Beats the 10+ year old script that didn't work with Subject Alt Names.
A lot of acquaintances have been begging me to turn this into an app, so I may give it a go later this year :)
Also great if your team is distributed - no more 7am/7pm meetings with your team in India!
https://iterations.sprkwd.com/
Iterations is a new way to help you generate ideas.
Creative methodologies usually combine divergent thinking (applying a stimulus to generate potential outcomes) and convergent thinking (bringing facts and data together and applying logic).
Iterations help divergent thinking by giving suggestions on how to process the output. They work as a set of guitar effect pedals to your process. There is an input, a set of ambiguous instructions that can be applied to this input, and an undetermined output created by these effects.
Yes, like Oblique Strategies.
A tool for turning diffs into location-prefixed changed lines. Allows me to feed that to grep and then put the results in my vim quick fix buffer.
When I noticed https://jsonformatter.com domain was not used I sent an email to the owner and he actually agreed to host my app since it was open source.
There are other people using it right now, but I enjoy using it every time I need to make a json more readable.
Needs some love now I have a fair amount of data! Wanted to see car depreciation and appreciation rates but couldn't find anything.
Old school server side java web app as I'm 47 :S
since all other Cortex debuggers sucked in some way or another (not scriptable, took too long to support new chips, too expensive, pain in the ass to use, etc)
- https://hw.leftium.com/ is HN the way I want to read it (https://github.com/Leftium/hckrweb)
- Unique format for weather forecast (with historical data): https://github.com/Leftium/ultra-weather#readme
- Pretty veneer over Google sheets/forms for my dance club: https://www.modu-blues.com/
- Quick way to view formatted TaskPaper files: https://plaintext-press.leftium.com/https://www.dropbox.com/...
- User-friendly UI for PwdHash: https://ph.leftium.com/
- POC app my real-estate friend keeps asking for: https://hyunwoo.leftium.com/
- Beat-aware video player: https://phrasier.leftium.com/
- Search for images on multiple sites at once: https://is.leftium.com/
- Custom fork of oTranscribe: https://otranscribe.netlify.app/
- CLI tool to convert YouTube transcripts for oTranscribe fork from above: https://github.com/Leftium/otrgen
- Quick converters/calculators: https://cc.leftium.com/
- Update perpetual calendar event with notifications (for a game I used to play): https://ff.leftium.com/
- Visualize some data (for same game): https://orbs.leftium.com/
https://ajuc.github.io/outdoorsBattlemapGenerator/
It can export to .dd2vtt files that can be imported by Foundry VTT that we use to play online.
https://josh-yates.com/layowt/
https://github.com/nathants?tab=repositories
The command "list" to find stuff in the current directory, recursively. Basically "find | grep". Works if you have the Python module or Java package name / path, since "." will match any character, including slashes :-)
And "fkt", which will open the files returned by list with your preferred editor (f for find, kt for kate, because that's my editor and didn't find any fitting name for this command) Turns out, I use "list" dozens of time per day, I forgot a bit about fkt but I might get back to it thanks to this post because I often copy-paste results from list to open them. I had forgotten about adding this confirm prompt :-)I'm sure there are existing, better, tools for this though.
(I've never tested them on non GNU systems, there might be GNUisms in them)
https://github.com/tarunvelli/rails-tabler-starter
I built PackageMap to help me visualise the codebase, and see where the natural seams were -- or should be.
https://packagemap.co
I use the tool to build a directed graph of the type and method usages, and to see which code is grouped into which packages. The code is rendered in a graph diagram that I can see, query, and filter. It really helps me when I'm doing code review or working on a part of the code I'm not too familiar with.
You can mail me hello@ <productname>.co
I had a grand vision for how it could look with different APIs, and might still pick it up later to work on. For now it scratches my itch.
1) https://www.dailylauncher.com/
The purpose of this is to enable spreadsheet-driven bulk provisioning tasks where there are a lot of distinct-but-similar parameters. I added some niceties such as the ability to trim off leading or trailing spaces and blank lines to prevent objects being created with names such as "xyz ".
The Export-SQL is the twin, which dynamically adds missing columns to a table and similarly allows streaming input. Simply pipe anything from the command-line to get it into a database for indexing and querying. This will work as expected:
For general purpose queries over medium amounts of data, nothing really beats the performance of SQL Server on an 8-core laptop with modern SSD and 64 GB of memory.I planned to open-source and publish both utilities, but there remain a couple of bugs that I could never be bothered to fix, and I'm not comfortable publishing tools that could potentially lose or corrupt data. That could make someone else's day very bad.