Ask HN: Tools you have made for yourself?
I am looking for tools that you might have built to scratch an itch or quell a regular annoyance. My main motivation for asking is to looking a different things people may have built and a secondary motivation is to learn how they went about it. I'm also interested in tools which are small scripts or a bunch of commands piped into one another that have boosted your quality of life.
Thank you.
457 comments
[ 4.6 ms ] story [ 395 ms ] threadhttps://gitlab.com/jjg/sushi
I'd generally "print to PDF".it before sending it out. I was in the process of automating PDF generation when 1) I got hired and 2) Chrome was changing up the API in the next release so I just kinda... Lost motivation I guess, especially since I didn't need it anymore either.
https://github.com/omninonsense/spotlight-thief
This saves the windows spotlight images (on lock screen) to a folder that I use for randomised background images. I manually filter out the ones I dislike. It runs automatically on Linux (it's wrapped though).
Interesting that they're both in Ruby. I guess Ruby is my go-to scripting language, even though I usually never write Ruby. Maybe it's the language's ergonomics or something.
I also wrote my own classless UI library. I can drop in a single style sheet and write plain HTML, no classes or anything, and get beautiful cross-platform UI that is accessible and functional out-of-the-box. I use this for a lot of my projects. I plan on polishing it, open-sourcing it, and selling it in the future.
Fails for lot of corner cases, but still useful most of the time. Here's an example:
https://github.com/scriptnull/sblog
(Been saving me a few minutes ever since)
https://github.com/dcminter/define/blob/master/define
I am pleased with the utility:simplicity ratio but slightly ashamed of its limitations.
1. An Alexa Skill that allows me to ask my bookshelf for the position of a book. I've spoken at PyCon India 2019 about this. (https://stonecharioteer.com/2019/10/12/pycon.html) 2. A Discord bot (https://stonecharioteer.com/sarathi.html) to update my blog's TIL page. (https://stonecharioteer.com/til.html) 3. A shell script to connect to the right Wi-Fi at my office (useless now) 4. A script to set/unset proxies on my work laptop so I could download packages from external registries. 5. A script that would collect weather information to correlate with my migraines. This eventually ended up being a correlation is not causation situation. 6. A NAS using a Raspberry Pi 4 so that all TVs at home can stream from my movie/anime collection.
I am in the process of building more things, as a way to learn Rust, and as a way to scratch the programming itch that I have. Do reach out if you want to discuss any of my projects. I will blog more stuff eventually. I use the same handle on Twitter.
The original concept was in excel and VBA.
I ended up pulling out the engine as a separate open source library which I've used on a few other projects.
https://github.com/modelcreate/epanet-js#model-calibrate
It's been a great time saver and a handful of people use it daily.
https://gitlab.com/MaxIV/app-maxiv-semver
Algorithm practice: https://github.com/travisjungroth/algo-drills
A tiny script that adds articles I want to see again onto my todo list: https://github.com/travisjungroth/boomerang/blob/master/boom...
I was a bit frustrated always pasting error codes into Google, as it doesn't always come up with the best result. You often have to extract just the code from a larger message, and potentially convert to/from hex or signed/unsigned, e.g. Windows error codes like "-2005270521". My tool handles all that for you. Just paste an error message containing codes in whatever format and it'll find them, and it's incredibly fast.
I also made https://aqi.today during the California wildfires. I was frustrated by other air quality sites that load way too slowly and don't emphasize the one number that matters. Airnow.gov has improved since I made this, but but I still prefer mine for the simplicity, speed, and much better data sourced from Purpleair. Airnow.gov sensors are typically 5+ miles apart, and data is delayed by an hour or more, while air quality can vary on a block-to-block and minute-to-minute basis. Purpleair has far better sensor coverage and data is delayed only 10-20 minutes.
Thanks for sharing!
Then I also wanted to read my news from the shell in a simple manner. And I knew what I wanted but no existing rss client had the feeling I wanted. So I built Gorss. I use that every day as well. Https://github.com/lallassu/gorss
I've been tinkering on and off with my own programming language for the last couple of years: http://www.adama-lang.org/
The key motivation is dealing with the complexities of managing all the state between people as they play a game with a strong boundary for privacy.
I am debating what my next steps are with what I've learned. Do I focus on growing things around it, or do I abandon yet another project and do something that might actually achieve success.
It's mostly bot scripts written in Python. Data is stored in a self-hosted PostgreSQL. In addition to a backend I'd written myself, I also use PostgREST. A rather rustic front-end was written in 2020 (https://github.com/radomd92/botjagwar-frontend) as a COVID lockdown side-project. Other scripts also use Redis as a page cache to speed up operations involving a large number of page reads.
I know it sounds like overkill but it just really bugged me to strain my eyes and have to hit different weird keys depending on where I was.
- Connect my AirPods to my Mac - Count the characters in some text - Create a new text expansion shortcut with Espanso[1] - Start/stop a Focus[2] session - etc.
Because they're in Raycast, they're super accessible to me — I simply hit CMD + Space, type the first word of what I need and hit Enter. Loving it!
[0]: https://raycast.com [1]: https://espanso.org/ [2]: https://heyfocus.com/
It completely transformed my behavior of writing and sharing, and I ended up expanding the experience to support GitHub repos as well, so that I could access and edit any of my “knowledge bases”, regardless how they’re stored in GitHub.
Thus, wrote a tool to convert such converted ebooks to have full sentences and to do a couple of other odd things so Google Translate and the particular ebook reader I am using handle them better.
https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/de...
https://github.com/awwong1/remarkable-cli
You can buy adjustable grooving planes and old molding planes that will do this, but it was fun (and much cheaper) to make my own pair.
Also made a wooden tool to check bicycle wheel dish that is used when lacing my own wheels by hand.
I don't have photos of mine right now, but it is inspired on this template:
https://www.wheelpro.co.uk/support/dishing-tool.php
Imagine the hijinks the first time I put that through an airport scanner. Good thing it was 2000 and not 2002.
[1] https://www.youtube.com/watch?v=n2OStvRteRE.