Ask HN: Programs that saved you 100 hours? (2022 edition)
I've asked this previously: https://news.ycombinator.com/item?id=22849208
But a few years have past and want to see what's emerged since. Although can be new to you vs. released in 2021 or 2022 necessarily.
Things I've come across in the meantime:
* mock AWS services https://github.com/spulec/moto
* query cloud services https://github.com/turbot/steampipe
* munge CSV https://github.com/johnkerl/miller https://github.com/BurntSushi/xsv
* page json https://github.com/PaulJuliusMartinez/jless
* text to tree structure [I use this as a hack to version control my music library] https://github.com/birchb1024/frangipanni
573 comments
[ 2.4 ms ] story [ 539 ms ] threadWill definitely check it out.
[0] - https://www.home-assistant.io/
Open blinds in the morning, shut them at sundown.
Turn on porchlights after dark if I'm not home. Turn them off 10m after I'm home.
Turn HVAC up/down when I leave the house, revert when I get home.
Unlock doors when I arrive home. Make sure they're locked when I leave.
So I set up automation for that based on a few parameters: indoor and outdoor particulate matter levels (current and averaged over the last hour), noxious gas levels based on third party monitoring, wind direction and speed, and the weather forecast for the next few hours.
Probably doesn't apply to others here, though.
My own app, not even at the Alpha stage, has already saved me and my team 100s of hours of parsing JSON results in Postman.
also alias to create jupyter kernel for activated environment:
I launched my startup from 0 to first customer in 3 months thanks to this guy. Most of my time saved was because of a solid collection of libraries, brilliantly integrated together (backend to frontend), and I didn't have to suffer analysis paralysis every time I needed something.
Another issue is that it doesn’t expose a server.js file, so its hard to do stuff like integrate an APM.
Refine.dev
Wasp-lang.dev
I'm quite early into researching these so I don't have anything much to say about them yet.
Wasp is a DSL so it's a bit different.
My journey has been: VS Code, to Codium, to Atom, to Sublime, to now Vim where I feel the most productive.
Which is really counterintuitive when you look at how complicated the programs are. But I felt that it became better/easier than regular text editing after only 3 weeks of fulltime use. The uninterrupted flow of keyboard use, and reduced mouse navigation, feels great.
You only need to learn a very small subset of features to be very effective with it. Some people just stick to that forever. But you can also slowly add to it.
Every now and then I see the magic of modern text-editors (VSCode et al), especially with code completion /intellisense and file trees. For me, I rarely feel like I need to be able to complete function parameters in my code to be more productive. Code-writing takes up such a small amount of the creative process that I'm perfectly fine looking up seldom-used functions in a web-browser. I wonder if anyone has ever attempted the jump from longtime-vim-user to these and can share their stories about why or why not.
He's switched over to VScode with vim key bindings and has been happy as a clam. He's heavily using Python with pylance plus copilot for the python side of what we do (which is most things).
I'm an emacs user who has made a similar switch (but with a horribly weird mix of native and emacs keybindings). Oh, and the VScode sync extension for me. I use and love the rust-analyzer extension.
Switched to IntelliJ in 2018 when writing Scala. IdeaVim is fine, it even lets me switch to normal mode with jk/kj [0]. What more could I want?
I've been using IntelliJ for Scala, Elm, and Python, and still use (neo)vim for editing other languages and random files. I'm prepared to jump ship to vim+LSP on short notice.
[0]: https://github.com/tasuki/dotrc/blob/master/.ideavimrc#L5
I keep one laptop at home and one laptop at work and can seamlessly switch between the two without having to manage my active sessions at all. If I open a new tab at work and go home for the day it'll be there on my laptop at home.
Mosh using UDP means that as a connectionless protocol, your end points can move (eg: from WiFi to LTE, or vice-versa), and beyond a small hiccup, your connections remain alive and well.
If you are mostly on unreliable and high-latency connections, mosh will likely feel better, but with no native scrollback.
Looks like it's available under msys2 on windows: https://packages.msys2.org/base/mosh
As an aside: msys2 mingw64 and friends are > 100 hours saved if you are a linux-soul in a windows environment. I don't think msys gets the attention it deserves.
at least that's what i tell myself.
"hey, change all these to that, and don't make it complicated"
https://wiki.nikiv.dev/macOS/apps/karabiner
On order of 100 hours, this year I'd say it's Sublime Merge, VSCode, Height (to manage projects) and Telegram.
https://www.keyboardmaestro.com/main/
Alfred is another good one for Mac. Being able to add your own custom commands & workflows is useful.
https://www.alfredapp.com/
Hammerspoon too, which is great for scripting all different parts of Mac OS. I use it mainly for custom window layouts.
https://www.hammerspoon.org/
¹ https://www.raycast.com/ ² https://www.raycast.com/store
https://wiki.nikiv.dev/focusing/goals
https://wiki.nikiv.dev/research/solving-problems
It is incredibly powerful and versatile but the scripting language takes some time to adapt (I am still never sure when to use braces and when not). But the effort is really, really worth it.
[1] https://raw.githubusercontent.com/rasteric/z3s5-lisp/main/do...
In the old days we had paper maps and I checked routes before I left: not doing that anymore has cost me time rather than saved me time. Many a time Google maps has sent me to the wrong place. Once to the middle of a mustard field in France which was a destination it changed to mid-route to a house called La Mutardier. 5 hours wrong lost there.
Less than useless on a motorbike due to its UI, actually quite dangerous.
I would say it has cost me many hours and saved me from carrying a map.
Evermore useless adverts, and now hiding places that it doesn't get a kick back from.
Oh and it's cost me money in fines from taking me the wrong way down streets I was not allowed to drive on. With no way to feed that info back into the system. When its wrong it stays wrong for years sometimes where I live, and we have street map, it ought to be half decent and at least safe for drivers.
Have used it for years and have never seen this happen. Neither has send me the wrong way in a lane.
It sounds like the real problem you are experiencing is that you stopped checking your route. If you treat it like a paper map on crack then it’s a great tool. And, to be fair, it does sound like you run into more frustrating ‘wtf!’ problems than others.
Credentials: I used a paper map as a pizza boy.
It is your responsibility to drive legally. Even if Google Maps is suggesting a route that's illegal, you made the action to drive the wrong way.
This almost got me into trouble a couple of months ago when I was driving from Odessa to Chisinau. One route goes through Transnistria which is currently controlled by the russian military.
I'm not sure if Google is aware that there is a war on currently, but I don't fancy getting shot just because California product manager guy believes he knows best.
Aeon Timeline
ObservableHQ - particularly the discovery that I can use most of it locally and privately for free. I've tried with quarto so far, but I think there are other ways too.
What I want is a way to instantly switch between dag and tree data structures: graph for visual editing, tree for easy data entry. So something that would analyze/cluster intelligently to minimize links when converting to tree, for when children have multiple parents.
I find it can't do nested logic the way observablehq.com can though. For instance, I like having inputs embedded in paragraphs of text, which requires having logic mixed in with a markdown cell. There are certain things that I can do on the web that don't work locally.
There's also https://observablehq.com/@asg017/introducing-dataflow, which I haven't tried yet.
[1] https://chrome.google.com/webstore/detail/instant-data-scrap...
Otherwise the number of times I "show usages" or refactor shortcuts (rename, extract method / variable) throughout the day...
All of it out of the box as well, it's great value for money.
[1] https://github.com/spantaleev/matrix-docker-ansible-deploy
It's a PDF viewer that automatically finds and previews references in documents, even when the PDF doesn't have links. Makes reading some math books a very enjoyable experience instead of a chore.
I've been learning spanish, and since hitting the intermediate stage outside of talking I mainly watch spanish shows or dubbed shows (Star trek TNG). I can create flash cards of difficult to understand phrases, or new words in seconds.
I usually still edit them slightly depending on my purpose for the flashcard, but having > 2000 cards right now, I can't imagine what doing this by hand, or manual review would have cost me.
[1] https://github.com/Ajatt-Tools/mpvacious
Keeping an eye out for software that you barely use, as this is the kind with the most potential to truly save me time.
https://github.com/junegunn/fzf
It's also useful to remove duplicate commands and store infinite history. Add this to ~/.bashrc:
It's saved me countless hours over the years as it's just so much better than regular CTRL-R. I also find it to work better than fzf.
A single command that does the ten things needed correctly every time instead of looking up each thing, typing it wrong four times and doing it again is a godsend. Lots of time saved. More accurate and reliable as well.
Does anyone know of a similar library for GCP? Searched and not been able to find anything and I miss it dearly
It’s a small ORM with nice features and it saved me a ton of time. Just generate the classes from the database. Very fast to iterate from.
https://propelorm.org/
The problem with most ORMs is that language object models are way more expressive than SQL (due to having multiple subclasses of the same superclass / interface, or even multiple inheritance, and none of those mapping to SQL foreign keys).
Targeting the less expressive data model should automatically avoid most ORM footguns. I wonder how it works in practice.
I work with it every day and the the documentation is not the best, but for 95% of pure php projects it’s the Right answer. There maybe other right answers, but propel is definitely one of them.
If you iterate the database as you go, simply create the classes and there you go. I m amazed how good it works.
I m a single developer, so your results may vary, but for small to medium projects it works fine. And most of all projects are small to medium.