9
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I really enjoyed building the retirement account simulator a couple weeks ago with Gemini CLI. This week I'm pulling that thread by porting two repos from 99% handwritten Python CLI to 90% AI-ported Golang Web UI.
to
It is still very much a work in progress but I've often been pleasantly surprised by what is possible with simplicity.
Eventually all the programs will have a CLI, TUI, and Web UI with many overlapping features... but right now I need to pull out a lot of the ported functionality and go one subcommand at a time to make sure everything works
I built a lightweight brain-dump tool that lives in your CLI and allows you to send super quick notes to a server of mine with a single command, and retrieve them in much the same way. Since memos are stored in a server, you can sync your account across workstations and write / retrieve anywhere. It’s an app intended for an audience of one, but in the interest of respecting the privacy of anyone interested in trying it out, I encrypt all notes stored in the server, so I can’t view anything regardless. You need an account because otherwise you couldn’t sync notes across environments, but email is totally optional and used only for password recovery.
Impetus: I hated losing track of notes across mediums (did I save that random thought to my phone’s Notes app? To a notepad on my Linux desktop? Or my Windows work laptop? Or my personal MacBook?), so this is widely usable in any Unix based CLI, including Git Bash if you’re on a Windows machine (though I recommend WSL). I also appreciate that it keeps me in flow. It’s a lot easier to bash out a single line command and get a thought out of my head without any extra finagling.
Of note: this is a virtually worthless tool if you are fully bought into Apple and have synced Notes functionality everywhere. I do not have that, and I also like building little CLI tools :)
More information and the download can be found here: https://mrndm.sh
Would love any feedback folks are willing to share about the script or the functionality as an end user!
Future functionality: I’m working on getting SMS certification on a phone number I’ve leased, which I’ll hook up to the server. Once that’s good to go, you can also choose to (totally optionally) link your phone to the app and save memos via text. Phone numbers will also be encrypted in the DB!
Known bug: special characters are not escaped by default in the message body; I’m pretty sure I can do a little printf magic to handle it but haven’t gotten around to it yet. Ironically, this means that the message I put on my “quick start” won’t work as is—you’d need to escape the exclamation point.
Where you have an unix shell you probably have access to git. I frequently copy notes between computers using ssh, git, or rsync as they can often do very similar things. For example you could pipe a git diff through ssh, if you are in the middle of making a commit:
Git is a technical tool so of course it's not perfect for everything... But you'll never be able to escape file/line conflicts without making choices about tradeoffs as I'm sure you're familiar with by now!
Also, you don't need to trust GitHub/Lab/Berg with your private notes. Git itself works fine computer to computer. Personally, I choose one computer as the center hub--though I'm sure there are more decentralized ways to do it:
But you will still probably want something like Tailscale to make the DNS stuff easy (or use something like Syncthing which does UDP hole-punching using its own mechanism instead... But git has superior conflict management)
I love that this is a solution that relies totally on a tool that anyone who finds themselves in a terminal will almost certainly already have! Thanks for sharing. I do have a large more formatted “notebook” repository that I use with git in a way similar to what you’re describing.
My approach with mrndm is to take away a lot of guesswork for the end user (if they don’t already have git set up), but also to reduce the friction. I like the idea of being able to run a script that enables the end user to type
mrndm “return library books”, hit enter, and then go about their day. I’m absolutely sure we could use aliases to do a lot of that lifting regardless though, so your approach still makes good sense and renders this moot if folks are comfy with git!