Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Programs that saved you 100 hours? (2022 edition)
470 points by zJayv on Dec 20, 2022 | hide | past | favorite | 559 comments
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




Gotta say IntelliJ, which isn't just for Java. It's a great coding platform and I used it for Scala, Go, Python, Bash, Java, PHP, Perl, you name it. I know many people like to hate on IDEs, but IntelliJ (and/or its language-specific variants like PyCharm or GoLand) has great support for all the debuggers in the above languages. It has awesome search/replace. Being able to "drill down" in to code, including 3rd party libraries with barely any configuration is like magic. The git integration is phenomenal - I rarely get stumped doing anything in git and dealing with merge conflicts are a breeze.


I've tried to migrate to something more lightweight like (neo)?vim, Helix, emacs; but regardless of how good their syntax awareness/LSP support is, it's always inferior to JetBrains IDEs.

Simple example: (any language, e.g. Rust) rename a function across multiple files and undo it. Let me know how you'd do it in your editor of choice.


JetBrains' IDEs are great for the languages which they explicitly support, but are often hilariously bad for the languages that are supported with plugins or extensions. For example, the Clojure plugin for IntelliJ, Cursive, doesn't have great macro support, and, one day just stopped being able to run unit tests. Or rather, it'd pretend to run the tests, give a nice green bar, green checkmark and everything, but the tests wouldn't actually have been run. I found this behavior the hard way, when I almost committed a bug. I'd run the test suite, saw that it was green, and thought that the code I'd written had passed all of the checks. It was only during some happenstance manual testing that I noticed "impossible" behavior (i.e. the code behaving in a way that I'd explicitly checked for in tests). Immediately suspicious, I reran all the tests from a REPL on the command line, and saw a whole bunch of failures that Cursive hadn't reported.

Since then, I've been using CIDER on emacs to do Clojure development, and I haven't had any issues.


Cursive is manufactured by Ideogram Limited, not JetBrains.


That's the go-to example whenever IDEs are discussed on HN but I...almost never do that?

I don't think I can count on two hands the number of times I have to do that in a year. As for undoing it I don't think I've ever done it at all. Anyway it doesn't matter because vim + CoC can do it. And for undoing it I guess I simply rename it back to the original name. Actually I just tried and yeah, it works.

One of these day I'd like to sit with a JetBrains user and see how they work. I'm sure it's a great IDE but so far I haven't heard about anything life changing.


When I used IntelliJ, for the languages it understood best (then Java and Kotlin), it felt very little like editing text. The sense was much more like interacting directly with an AST. I rarely had to use standard 'text' editing features (oriented around word/sentence/para entities). This was an emergent affordance from all the many language-oriented facilities (all available via keyboard shortcuts) offered, rather than one specific feature.

I actually don't use IntelliJ now for reasons not germane here. I'm on neovim, mostly with Rust and javascript/typescript). This is great in many ways but the ergonomics of editing, even with LSP integration, are much more like editing text, which is more distant from my mental model of the code.


I do it all the time. That's the thing, once you can do it without hassle, you do it. Regular scenarios:

1. Refactoring

2. You are experimentally coding and changing names of methods and variables as you realize you need to split stuff up

3. One of your colleagues can't name stuff for shit

The IDE I use makes it so easy it's just a thing I do without even thinking about it.

Another great thing is just highlighting some code and with a simple keypress extracting that code to a new method, with the right return type, params, etc. all done automatically. Not quite right? Highlighted the wrong rows? Press ctrl-z.


This has been my take as well. I can drill-down into third-party packages, rename stuff across files, and use the debugger.

I'm not saying JetBrains isn't fantastic, their products certainly are, but the examples given as to why I should switch are less than convincing. Just use whatever works for you.

It's similar to the flak I get for using an iPhone instead of Android. "You can't customize it!"... I don't want to.. I just want it to make phone calls and browse the web.


Or you don't see the potential, or you're not comfortable, or you don't have energy for this. If you did get the hang of it (vim for example), you would probably use it in some kind of way.


There are definitely two kinds of coders - once that think through everything or at least when it comes to names, method definitions and such they just know what they want. Then there are people like me who is never satisfied with the name or the parameters or the order in which they are passed or the name of the parameters or how the function is structured and want to split it further...etc. So I'm constantly reaching for the refactoring tools of IntelliJ.

OR, as you said, since I have mostly used IDEs all my life, I've learnt to leverage these tools and so I don't always aim to write something to perfection the very first time. Instead I use my IDE as a whiteboard and see where it goes.


Having recently moved from IntelliJ to VS Code, I still miss a few things in the IntelliJ platform (it's overall layout is cleaner, important things are easy to get to), but VSCode has (last I checked) far superior remote debugging support, and is otherwise similar enough once you get past the muscle-memory.


As someone who uses visual studio almost every day I'd say it isn't complete on its own. I can't navigate around a vanilla install that doesn't have visual assist installed as well anymore. If you want a cheaper alternative, workspace whiz is also decent.


Big thing I miss working on VS code and IntelliJ interchangeably. Local history of your changes. Huge differentiator while working on a lot of changes.


I have been using IntelliJ IDEs since the early 2000s. Currently I am using WebStorm's (IntelliJ's small JS brother), and the local history feature in combination with the outstanding diff view are just one reason why I could not work without it.


Local history is a game changer. And live templates. The one I use is using a template to automatically put in console log with the context of where(line num and function name) when I type a shortcut like cl


Go, command line:

  $ gorename -from '"my-package".myFunc' -to myRenamedFunc


I would say that’s a fairly trivial example. How about renaming a method? Or, moving a class to a different file?


Or reordering parameters.


All this fiddling ends when you get a team and a vcs.


gofmt can do that! What I’m still looking for is an easy way to bubble up go contexts, adding as first pagans. Perhaps IntelliJ is useful here?


That's amazing!


yeah, I'm an emacs person and I still use it for a lot of things, but I also am a proud paying customer of the entire Idea suite; I use PyCharm, RubyMine, IntelliJ and DataGrip on a regular basis.

And worth every penny, for me.


sed -i "s/function_name/function_name2/g" $FILES && git restore $FILES

Edit: Not claiming this is better, just saying what I get by with. I have never used an IDE in my career so far, or any autocomplete or code modification features.


It cannot differentiate between a field in a class and a variable in a method, or even a word in a comment, can it?


Sam could do all that since the 80s. So ~40 years.


add the c and it will prompt so you can make the determination yourself.


So, no


People get so hung up on this, but it's literally the shallowest sort of refactoring. If you're choosing your tools strictly for this you're doing yourself a disservice.


It is also the simplest refactoring, and my point is no command line tricks I have can seen can even reliably do this.

Refactoring support in modern IDEs goes far beyond renaming public fields and methods.


I've had this exact conversation so many times over the years.

In truth, you just don't know the tools that well. And that's ok, but as someone who does and regularly does these things in both IDE's and in vim, you're wrong.

But I'm not going to bother trying to convince you, the same way I'm not going to try and convince you that my gf of 11 years is pretty awesome. I don't need you to get better to know that you're wrong.


Good for you. 17 years since I met my gf here.

And I started on vim a long time before IntelliJ :-)


It can with a proper regex. Mostly. Depending on the language, your patience, and the amount of false positives you are comfortable with.

I did sth like that (I had bash scripts for common programming "refactorings" and "queries" like "print all classes and methods where this variable is used"). I couldn't use a modern IDE cause we were programming on a legacy linux server through ssh for licencing reasons.

And the (C++) code was written by a guy that learnt C++ and OOP on the job and it showed. Class hierarchies were sometimes 8 levels deep and class variables were reused for different purposes to "save effort on serializing them" :)

So if the user interactions were in the same order and with the same text prompts - a class would inherit them and add some new ones. Even if the old class was just accidentally asking the user similar questions :) So OR_PalNr could mean shelf number in base class and Printer number in descendant, because both times the user was asked to "scan the barcode", while the callstack was a mix of methods from both classes :)

Fun times.

BTW nowadays I mostly work with IntelliJ, but sometimes a script is still the best way to understand the code. For example grepping the git blame output is often very useful. It's never 100% reliable, but it's often good enough.


First:

> BTW nowadays I mostly work with IntelliJ, but sometimes a script is still the best way to understand the code. For example grepping the git blame output is often very useful. It's never 100% reliable, but it's often good enough.

I see we are on the same page : )

> It can with a proper regex. Mostly. Depending on the language, your patience, and the amount of false positives you are comfortable with.

For everyone else: in any of the three big Java IDEs, and in a number of other cases, you don't need much patience or tolerance for false positives, at least if your code isn't too unreasonable (with any sufficiently expressive language you can of course always fool it by somehow accessing things dynamically).

> I did sth like that (I had bash scripts for common programming "refactorings" and "queries" like "print all classes and methods where this variable is used"). I couldn't use a modern IDE cause we were programming on a legacy linux server through ssh for licencing reasons.

This is awesome!


Sure, but if function_name is a subword of another_function_name, this would break things :/


Why would you want to avoid autocomplete?

And what language do you code in?


Rust in vscode with rust-analyzer: Select the symbol, cmd+shift+p to get the command palette, type rename and select 'rename symbol'. Or right click and pick rename symbol.

You can undo/redo with cmd+z or cmd+shift+z.

replace cmd with ctrl on linux or windows.


F2 is also the shortcut in vscode


Switched this year to VSCode and the quality of most LSPs for VSCode is surprisingly good. Regarding your example: Just rename again. I can tell countless examples of Webstorm failing hard compared to VSCode.

So, from the technical point of view I would say VSCode is equally good.

What I miss most is the UX. Once you get used to the Jetbrains IDEs, their usability is really awesome.


* enter the current and the new names,

* turn on the Match whole word and Match case modes,

* review the found occurrences;

* press the Replace button.

https://www.abareplace.com/blog/blog_rename_method/

Disclaimer: I wrote this program.


First, I almost never do this, so whether I can or not isn't really a selling point. That said, emacs+lsp-mode handles this just fine, at least for c++.


Plus it's awareness of proper idioms in each language and syntax checking makes me much smarter/productive in a new language. Also, it's spell checker keeps me honest. Go for that "green check mark" in the upper right corner and you know you avoided most common mistakes.


“dealing with merge conflicts are a breeze” is an understatement. I don’t use IntelliJ typically in my day to day anymore, but the merge conflict resolution UI offered in IntelliJ is so far and above alternatives that I would still reach for it in a particularly complex scenario. VSCode’s UI does not even remotely approach how good IntelliJ’s is. I’m not aware of any UI that does merge conflicts as well as IntelliJ currently.


P4merge from Perforce works even better. It's just a file merge tool, and doesn't require you to use Perforce.

I've got a git merge/diff wrapper that falls back from p4merge to idea and finally back to stock diff.


To add to the point above, it's worth understanding that IntelliJ is not an editor. It's a refactoring engine with a very nice structured editor, and the key to using it effectively is to use the higher-level features that it provides.

If you're not using the refactoring tooling then you won't understand why many people love it so much.

[It's worth looking under the hood at the plugin APIs. The editor doesn't work on text files. It works on ASTs.]


Agreed. The refactoring tools are something seemingly as simple as rename as variable or method or parameter name to the more exotic "extract constant" or "extract method" or the super helpful redefine method signature (add/remove params). One reason I prefer strongly typed languages like Go/Scala is that refactoring is less guess-work than in something like Javascript or Ruby.


My anecdote is just about the opposite. I was a happy Jetbrains customer for more than 10 years and all was fine (very fine, actually) on Windows for developing Angular on the frontend. Goland is a treasure. Kotlin with IntellliJ can't get any better.

But then I needed proper support for Vue 3, Tailwind and Svelte. VSCode was (is) light-years ahead but what drew me away was how Jetbrains handled the issues. Endless hours writing tickets, creating examples, ... for nothing. Finally, after switching to Linux it turned out that US int. keyboard layouts don't work properly. There's a workaround, but again, the way the support handled the issue was not what I expect from such an expensive service. I was basically told to read through years old long issues to find out how to manually fix it.

That was the day I canceled my subscription.

VSCode is totally up to the job. But somehow I'm still not happy.

Maybe time to try Neovim or Helix (multi LSP needed).


IDEs like this are definitely kludgy and slow but the productivity gain from code navigation, test tool integration, profiler, and debugger is just insane (imo). Having a tool that helps you visualize the code (while it's running) is incredibly powerful


slow? i use both pycharm and webstorm and their are definitely neither kludgy nor slow...


Curious, why not just used IntelliJ with the plugins for python?

I’ve never used the standalone apps. Do they provide a better experience?


Intellij IDEA only has the barest support for C/C++, whereas CLion is a full-featured IDE with similar feature to IDEA.


> I’ve never used the standalone apps. Do they provide a better experience?

In my experience there is no difference in terms of slowness, no. The standalone apps are usually just bundled with more features for the specific use case by default and in some cases they have features you can't readily get in just IDEA.


As far as I know, the standalones seem to work better with SDK and tool detection (I guess IntelliJ has to try to figure out which plugins to activate)

Some projects with mixed languages (like a Ruby backend, HTML/JS webapp) I've had to kick IntelliJ a bit to get it to cooperate and find tests correctly

Someone else mentioned CLion, I think Rider also has features you can't get via plugin (maybe there is no .NET plugin..?)


idk, i just assumed that pycharm would be optimized out of the box for python, so i never bothered with intelliJ


AFAIK IntelliJ with the Python plugin is basically the same as PyCharm.


I think it really depends on the language and project size. Any new project tends to make the IDE barely usable while it's indexing. Compared to, say, vi where everything is instant and there's no visual lag, I'd say it's slow. Even on 16 core CPU with 64GB of RAM and some IntelliJ JVM tuning, I still get some lag/stutter.


My one big complaint with IntelliJ is that they don't have Devcontainer support

It's (almost) 2023, the way to develop applications is to put a reproducible Docker container with all the dependencies + debug tools you need in the repo, so that anyone can clone it and spin it up in their IDE.

VS Code has amazing support for this, while the only Jetbrains IDE that comes close is CLion.


I believe they are currently working with the Docker team on a solution:

https://github.com/docker/dev-environments/issues/70


GoLand and IntelliJ are truly remarkable pieces of software. I try using VSCode with official Go extension every few months and always come back to GoLand.


I love PyCharm for everything but for simple git stuff I somehow always reach for “magit” which is an emacs-based git tool that you can set up as a command you can launch from terminal.


If only it would not gobble up so much memory. For an ide that has been around for this long, one would have assumed they would have switched to a more performant non gc language by now.


Exactly what keeps me away from "J" IDEs and Electron. But if productivity is compelling, I might just consider that my machine is powerful enough and that my daily web browser is just as resource greedy.


I use Visual Studio for the same reason, but might give IntelliJ a try as I've just checked that it also has a plugin for Rust.


Also when you have to refacto in dynamic langages like Ruby, doing merge conflicts, or also anything around a SQL database.


Pycharm for sure.


LSP. The Language Server Protocol. Entirely changed my life for the better this year, once I took the time to get it integrated into Emacs and get the various backends I needed installed.

Easily has saved me hundreds of hours so far, being able to view function prototypes quickly, pull up documentation as an overlay on the code, jumping to the next error, and even down to getting simple things like enumerated 'case' labels inside of a switch statement.


I was going to say the same. Before LSP it was constant effort to keep up with changing tools/scripts/hacks to keep all the code navigation/completion working, and it was still never as good as its now.

And once in a while I'd randomly have to look at some code that is not my primary work language, but everything will just work out of the box. Working with Emacs has never been better.

Huge shoutout to Magit mode, which I dearly love and definitely saved me bunch of time otherwise spent context switching to command line or another UI. 100hr = 6000min, I've been using Magit for 8 years at-least.

Assuming I'm doing some coding at-least 4 days a week, 4days * 4weeks * 12months * 8years = 1536 days of work. Let say it saves me 30 second on average by not switching window, selecting hunk individually that I love doing, doing arbitrary VCS operations (I love looking at diffs and just hitting enter to go to the source), I just need to open it 8 times per day to make it 100 hours so far. Definitely have used more than that I think. But even if this calculation is way off, and I'm not really saving time, its a very pleasant experience that is unmatched if you use Emacs IMO.


The only mystifying thing to me about Emacs' LSP support has been the fact that they chose to bring Eglot into Emacs core, instead of the (in my opinion) superior LSP-mode.


Having a consistent IDE-like experience in any editor, for any language is invaluable. It's not on par with a full featured specialized editor but still game changing.


What language(s) do you do most of your work in?


I'm not the above, but also love LSP... for Python.


Go, Javascript, HTML and CSS.


Each of the following is in the 1000 hours saved club (in no particular order):

jq, perl, grep, gnu textutils, gnu parallel, bash, xargs, gkrellm, nload.

Make deserves a special shout out. If you think it's only useful for building software, you've completely missed the point (similarly, if you think some language-specific tool is superior, you're doing things completely wrong):

Anyway, this document saved me at least 10,000 hours:

https://www.gnu.org/software/make/manual/html_node/index.htm...

Other peoples' python has the distinction of being the only software in my -1000 hours saved category. (And if you consider maintaining code written in the above "write only" languages, you'll realize how big of a feat that is!)


> "If you think it's only useful for building software, you've completely missed the point"

I clicked on your link with 16 pages of just contents links to find what the point is, and found "the make utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them".

What's the point you see?


It automatically parallelizes any large scale data processing pipeline (assuming that your data set is already broken into files). People use it for things like documentation generation. I've used it to process the results of web scrapers, large scale data cleaning tasks, etc, etc.

It takes about an afternoon to set up NFS + SSH primitives that automatically distribute the computation across clusters of machines. Since it is restartable, it automatically tolerates hardware faults (up to dozens of machines, in practice).

Basically, you get Map Reduce, but for arbitrary data processing DAGs, and it supports any language that works well on Unix-style operating systems.


Okay but clearly none of this is "the point" of make, so your original comment is still baffling.


The point of make is that it's not only useful for building software. Take a look at the built-in implicit rules:

https://www.gnu.org/software/make/manual/html_node/Catalogue...

There are two things to note: (1) you can turn them off so they don't get in the way of other use cases, (2) they include non-build stuff like version control, linting, and document generation.

There's also a whole chapter on ar file maintenance. This is mostly useful for linking these days, but ar is the precursor to tar, so this used to also be useful for running filesystem backups:

https://www.gnu.org/software/make/manual/html_node/Archives....


Your point is that make has uses beyond that. That is not "the point of make"


No, that absolutely is the point of `make`. You quoted the "overview of make" page[0] which does say "The make utility automatically determines which pieces of a large program need to be recompiled, and issues commands to recompile them."

However, that same page, about 5 lines down, expands to say:

> Indeed, 'make' is not limited to programs. You can use it to describe any task where some files must be updated automatically from others whenever the others change.

Which is exactly what the original poster is claiming.


That's the beauty of open ended UNIX tools


The idea of working with a distributed data pipeline implemented via makefiles is nightmare fuel


I think OP meant data analysis/one-offs as not building software that is technically true I guess


$ make install


1000 hours each? Really? So literally half a year of full-time 40 hour weeks saved by each of these on your list, vs the next best alternative?


Yes. That statement was entirely literal; there is on reason to believe the statement "1000 hours" is anything but a precisely measured saving.


jq + parallel is a godsend. Take some command output, run another json-producing command in parallel on each line, and pipe it back into jq -s


Can you elaborate with a fake example?


> jq

Add xmlstarlet for anything that has to do with xml.


Microsoft Excel. Manipulating tens or hundreds of thousands of rows, including cross-referencing across tables, is just so satisfying and much faster than doing it with a DB or code. Alternative spreadsheet software do some things better, but they don't come close as a complete package, I don't regret paying for it myself for the first time in my life. It such a life saver in a pinch.

Obligatory Spolsky intro to Excel: https://www.youtube.com/watch?v=0nbkaYsR94c


Excel gets my vote for one of the top 10 software programs ever. It's crazy how useful it is.


Excel, the second best program for any task. ;0)


The really impressive part is that it’s Actually the second best program for every task.


As a Linux user, using Excel via the web interface or via a virtual machine is not so satisfying nor much faster than alternatives.


Yeah, as someone who doesn't pay for MS, I'm basically using a combination of Calc and Gnumeric, because G can open larger files (handled larger files than Excel in fact), but Calc has more features, and it's more similar to Excel which I was used to. ONLYOFFICE's sheets can also be handy, if MS Excel compatibility is wanted.


Try: visidata on a sqlite file.


Crazy useful.

So useful I like it despite how it always goes out of its way to waste my time by trying to misrepresent a number of different types of strings and numbers as American dates :-|


Dear god, I would use Excel so much more if I could get it to stop mutating my data.


January, February, Maruary


100% in agreement on Excel. Even when coding in Python I frequently save an intermediate file as xlsx to explore/debug, or even load into Tableau for viz.


110% agreement on Excel

The ability create a relational database in Excel with vlookups and hlookups, then capture it all into a macro is amazing.

I've really enjoyed using Excel as a Postgres frontend, with a real Postgres DB instance handling data, and then using the report functionality to dump to Word.

While a pro reporting engine and cutting out MS Office altogether would be a better longterm solution, it is hard to beat for quick & dirty results.


> The ability create a relational database in Excel with vlookups and hlookups,

Do yourself a favour and ditch vlookup and hlookup in favour of the recently introduced xlookup, which even obsoletes index/match !

I try to keep my exploratory joins out of Excel, but I admit that I often don't resist the immediacy of Excel's poor man's joins located right where I need them.


Took them long enough to add it.


I'm curious, how did you establish the Postgres connection?


I used ODBC [1] out of the big list of options [2] which gets a bad rep but worked for my use-cases.

The commercial devart plugin [3] looks pretty neat too but I haven't used it yet

I've also tried the JDBC connectivity option too [4], but with some different use-cases in mind for Postgres (not about Excel)

[1] https://datacornering.com/how-to-connect-to-postgresql-datab...

[2] https://www.postgresql.org/download/products/2-drivers-and-i...

[3] https://www.devart.com/excel-addins/postgresql/

[4] https://jdbc.postgresql.org/


You should learn R and dplyr ;)


Tell us more - in the context of them being replacements for Excel for his use case.


I love R but can't use it at work :(

With just the tidyverse library (which includes dplyr), R can be very useful in a data analysis pipeline. It is great for data cleaning and aggregation, especially when a process needs to be done multiple times. It is much faster than excel/power query. I am an accountant in SaaS and spend a lot of my day waiting for excel/powerbi automations to refresh. Similar solutions in R/sql/python would be nearly instant. Also excel/powerbi automations are a bitch to troubleshoot, and are unnecessarily complex.

When following tidy principles, a framework designed by the tidyverse dev Hadley Wickham, R code can be very easy to interpret, similar to SQL. Additionally the R community has made libraries for everything, and I consider R a great general purpose language as well.


Note that different flavours of R have very different performance. 'Base R' is quite slow. But R + data.table is blinding fast. Power Query perforamnce is awful, even compared to base R. Some benchmarks of these plus other data wrangling software (including my own product) at:

https://www.easydatatransform.com/data_wrangling_etl_tools.h...


"Manipulating hundreds of thousands of rows" is exactly where R, dplyr and data.table are great at. I do that on a daily basis.


I got to play around with Tableau when I was helping my wife in a collage programming course and though I don't have a current use to justify the significant cost, I must say that the tool was amazingly flexible and easy to use. I'd highly recommend it.


Pssh... adults use JMP ;-): https://www.jmp.com/en_us/software/data-analysis-software.ht...

Trivia: JMP stands for "John's Macintosh Project".

Also, the entire semiconductor industry depends on JMP just like the entire pharmaceutical industry depends on Minitab.


I work at a shop where a few people are JMP users. I think it's a problem when a proprietary app is only available to a handful of users at a site -- they tend to get a lot of work dumped on them, and nobody can use their stuff without going back to them. It's a different experience when a site has a site license.

This isn't specific to JMP of course. A good thing about Excel is that businesses are OK with just paying for "everybody" to have it.

Also, people use Excel for more than analysis. It's also a crude database and platform for creating small "apps" that do things, that are easy to share with others.


And we go full circle. I learned pandas in 2012 so I don't have to deal with Excel or JMP scripting.

Still use Excel for quick stuff but otherwise it's pandas for me.


The JMP buy page doesn't even give you a price. How expensive is it?


Yeah, just yesterday. Hacky output from `nslookup`, not ideal but it’s all we had. Tens of thousands of rows. No IDE with regex capabilities available.

Excel to the rescue! Took me about five minutes to extract exactly what I needed.


If you can use dig output, the next time you need to do something like this you might find 'jc' helpful: https://github.com/kellyjonbrazil/jc


Government laptop. No can use anything that isn’t whitelisted.

This is the beauty of Excel. It’s a powerful text manipulation tool that everyone has.


> "No IDE with regex capabilities available."

If it's Windows there should be PowerShell ISE installed.


I know I should learn it but, I dunno, I just really dislike the PowerShell syntax. I get what they were going for with the Verb-Noun thing but it just reminds me of AppleScript and I can’t stand it.


You don't have to learn or use PowerShell to paste something into the ISE editor and go to 'Edit -> Replace in Script' and do a regex search/replace.


Ahaaa cool tip, that will be useful one day. Thank you.


where can I input regex to excel? I really need that, last time I copied table to nopad++ then copy paste it back.


I didn’t. I pasted the output and munged it with Excel’s trusty text functions.


so in this time, Excel isn't so good...


Often useful CLI tools are linked on HN (like in this thread). And probably if you take the time to learn them or if you integrate them into your automation they are 100% useful.

But, given the problem “I have some unfortunately formatted data which I need to analyze”, there is no better solution than sanitizing it in VS Code and then analyzing it in Excel.


And for me excel wastes 100 hours a month.


I don't have a Windows machine, and I'm having mixed feeling about Excel for Mac — is it as powerful as the Windows version? Are they exactly the same or are there big difference in functionality? The web / Office360 version doesn't seem much better, either though.


Native Excel on macos isn’t bad. I’m on an M1 and it’s slow to start initially, but once loaded it’s fine. Better than any web version.


I find good use of my skill in the following:

DBeaver: use a consistent interface for practically any data store. Wanna SELECT and JOIN CSVs? It can do that too.

https://www.mail-tester.com/ - Fantastic email server settings troubleshooter.

Excel / Calc / Gnumeric: I don't even know macros, just the functions, sorting, filtering, and pivot tables enable good productivity. And sometimes fun, I chose my current video card, and optimized my Factorio gameplay with Calc.

BASH, jq, sed, grep, tr, cut, Geany, regexes: it's fantastic to be able to work with text. Log parsing and other text tasks turn into a puzzle game, where I win fast, and it's usually faster than to use anything else, especially for one-offs.


Oh my lord, I love DBeaver so much!

One thing that blew my mind the first time I saw it, was that when you look at geospatial data, they let you view your geometries on a map. It's so simple and so awesome!


Gnumeric. I still mourn Ray. One of the kindest people I have met. Almost ten years ago he passed away at age 40. 12 Years of gnumeric and 18 years of Debian contributions. Thank you Ray, where ever you are now.


I didn't know who you were referring to, so looked it up and learnt a little about Ray Dassen [1]. It's nice seeing ppl memorialise a person as you have done here.

[1] http://www.gnumeric.org/announcements/1.12/gnumeric-1.12.3.h...


I've long been a DataGrip user, but Dbeaver impressed me when it was the first to enable Aurora Babelfish support.


Wow, DataGrip also looks very nice. I find it funny that how first we had Eclipse vs IntelliJ, and now DBeaver vs DataGrip - each built on the respective platform, DBeaver on Eclipse, and DataGrip on IntelliJ.


Yeah, DataGrip is extremely awesome. From all the Jetbrains Tools I miss this most. (I'm an unhappy Ex-Jetbrains user ...)


Speaking of DBeaver - does anyone have any good themes that they might share? I really like the interface but the stock look is lacking.


Not a program, but the concept of functional programming and pure functions. It makes it a lot easier to think about code, and also makes it easier to test and parallelize code.

Although be warned, it can also have the "side-effect" (functional programming pun!) of making you somewhat insufferable as you try to convince everyone around you that functional programming is amazing.


I'd be curious what your flavor of "functional programming and pure functions" is?

I ask, because I used to feel very similar about the OO paradigm (it helped me model the world easier, made me insufferable because of my zeal, etc). But, I had the privilege of doing that with nearly 20 years of Smalltalk. A battle worn path of ObjectiveC, Swift, Java, Python, Kotlin, and JavaScript later, I feel the pain. It's like being in forestry, one day you work with a chainsaw, and the next day they give you a fan with spoons welded for the blades.

These days I'm doing some Elixir... and I love it. I don't know how welcome it is in the "functional programming and pure functions" club, but I think it's awesome.

I have a working theory that what has made these paradigms loved or hated, is less about them theirselves, and more about the execution thereof. What made and makes both Smalltalk and Elixir appealing to me is their simplicity and straightforwardness. There's a mechanism you learn to reason about the problems you're trying to solve, and then you can excel at it, instead of constantly stumbling on edge cases where "hybrid" languages try to reconcile all of the paradigms together.

YMMV


I had done a little bit of OO before diving into functional, but what really got me about functional was "the same inputs always produces the same outputs" and "no side effects"

In OO (the kind I've seen, and I've not seen Smalltalk, mostly C++), it's common for a member function to just go ahead and modify the member variables it needs to modify. This is considered "good encapsulation," but it's horrid for reading code and likewise horrid for parallelizing anything.

When you take that practice to the logical conclusion, you can end up with a member function like "void update();" (let's pretend that our class is a physics engine and this function presumably takes velocity and time step and increments position). Some early advice I got for writing maintainable code was "assume that whoever is maintaining the code after you is smart and in a hurry," and that sort of code just breaks that advice. If I see that kind of function, I need to dive into it to figure out what's going on. Whereas if I saw "state.position = update_position(state.velocity, state.dt);" I can make an educated guess about what's going on and move on.

I'm making myself a little angry here, so I'll wind down. These are the main points anyway, this sort of functional style feels like it takes something in 4D space where I have to twist my brain into a klein bottle to figure it out and puts it into 2D space where I'm like "oh, that's all there is to it then."

To your working theory, I see what you're saying, but I think I lean towards preferring poorly done functional code as opposed to well done OO code, because the functional code will be easier to test and shape into good code, whereas the OO code might get fragile over time. But let's be honest, it's not like "well done OO code" is an option we expect to have on the table :D


> I don't know how welcome it is in the "functional programming and pure functions" club, but I think it's awesome.

Erlang, and by extension Elixir, are very respected.

The fact that you have a strong background in Smalltalk isn't a surprise: Kay's idea of isolated objects sending methods to each other, independent of each other is OTP. Erlang, IMO, is the most beautiful combination of functional and (Kay's definition of) OOP there is.


You should check out rust. The compiler reasons about side effects + parallelization, and testing for you, but you get (nearly) complete low-level control.

As a bonus, you'll be able to write insufferable comments like these in HN threads.


Not to put too fine a point on it, but "side effects" != mutation.

Also: The level of control offered by Rust comes at a steep cost compared to GC'd languages.


I am relatively new to rust, but motivated to learn it right now. Could you elaborate on what the cost compared to garbage collected languages is?


I think he means two things, mind you I'm not very familiar with Rust, but I've done a lot of safety-critical C/C++, which is sort of like Rust

1. There's a mental cost on the programmer. You have to learn all the ins and outs of things like the "borrow checker" (a Rust concept) and it's on you to understand the rules and how to use them

2. It can slow down compile time. As your program gets bigger, the compiler is doing more work to check that it's valid code, so that will slow you down.


I was mostly thinking of the #1 mentioned by actinium226 in a sibling post, fwiw.

The main other thing I was thinking of was that GC languages sometimes have features that are very hard to support sensibly in non-GC languages: My favorite example is the higher-kinded types (HKT) which e.g. Scala and Haskell support. These can incidentally be used to "tame" side effects in a very principled way (via Monads). Another example would be lazy computation/values.

(Other applications of HKTs are validation integrated with parsing while still providing the maximum actionable feedback to users.)


The question was what saved you 100 hours.

Functional programming easily cost me hundreds of hours without much to show for it. Monad transformers, free monads, final tagless... this rabbit hole is very very deep.

No regrets though, would suffer through this again!


I haven't done any serious functional programming but I think the point is that overall it saves you time. It might take longer to write the program but you get fewer bugs, reliable caching and so on.

I know that with Rust the time-to-robustness is much lower than with Python for example.


It's so curious to me that functional disciples wear this as a badge of honor. In nearly all other facets of software development, we get badgered that it's better to produce code your entire team understands (code is read more often than written and all that) than code which only makes sense to you. If I ran around talking up the zen of single letter variables, my team would shoo me out of the room, and almost nobody on HN would applaud me for it. But for some reason, functional programming tends to get a pass, despite it just not clicking for a large swath of team mates.


> If I ran around talking up the zen of single letter variables, my team would shoo me out of the room, and almost nobody on HN would applaud me for it.

Yes, because single letter variables are bad.

> But for some reason, functional programming tends to get a pass, despite it just not clicking for a large swath of team mates.

Perhaps this is a problem with the team mates rather than with functional programming? I'm too dumb for functional programming, but I freely admit it's the superior way of writing software. If we were mathematicians rather than programmers, programming would be way better!


If you and half your team a not smart of enough for functional programming, along what dimensions is it clearly superior? Just like with single letter variables that only make sense to the author, if functional design only makes sense to one or two people on a team of many, it's clearly inferior.


Functional programming is superior because it leads to more correct programs. Classes of bugs become impossible. With dependent typing, you can prove even more about your programs and mathematically guarantee they're behaving to spec.

Instead, we as an industry choose JavaScript and endless runtime errors, because we don't care about the occasional blowups. We want to move fast, break things, and not have to learn maths.

Note the current state makes business sense: quick and cheap and who cares whether it works well, we'll throw it away soon anyway.


At my job I was introduced to functional programming with Python with strong typing.

I was at first rushing implementing ~50 business rules (which changed weekly) on the setup of a system. Then this functional wise kid came along and we did in one week what took me 5 weeks.

Along with that, using MQTT to separate your program with Protobuf makes everything so much easier. Program crashes? Let it burn and let systemd restart it. So much easier to test too. Our code coverage is 99% if we exclude the main files that initialize everything.


Can you share more about Python with strong typing?


We use mypy and we enforce it on the CI. Ambiguous types are forbidden. We catch lot of bugs with this.


Nice, so 4 weeks saved at, what, 40-60 hours per week? So 160-240 hours saved! And you're just getting started!


Elm has easily saved me hundreds of hours per year in compile time alone, not to mentioned the likely thousands of hours it's saved me in time spent debugging. I still shudder to think of the horrendous compile times I got from even small TypeScript projects, and the days I'd waste trying to debug them.


Ultrafast, super lite file search on Windows, Voidtools "Everything": https://www.voidtools.com/support/everything/

I haven't touched the Windows Search utility since I found it.


Everything paired with AstroGrep (or your favorite grep program) is the ultimate pair for searching on Windows. We pretty much force new devs to install these otherwise we watch them struggle for way too long.


Everything is a godsend and ought to be built into Windows.

Agent Ransack (free for commercial use) and FileLocator Pro (paid, has near-instant indexed search) are the go to grep alternatives for Windows on my dev team. https://www.mythicsoft.com/

I also hear VS Code has ripgrep built in, but I haven’t used it extensively.


I use RipGrep with it.


I switched to linux a long time ago so now i use plocate, but on windows everything was a must! Also directory opus was a nice file manager, not sure if there's a new/better foss alternative yet.


Yup, Everything is a godsend. It also makes it more likely for me to download a portable exe instead of a full install because I can quick search for the exe, where as windows search struggles.


Everything combined with Wox


I use Launchy which I really like.


Loved Wox. Try Fluentsearch.


That's a gorgeous app, thank you!

Update: Just tried it, I think I'll stick to Wox, Wox feels "snappy".


I have been using listary but this looks amazing!


GitHub Copilot

As a manager & parent with only occasional bursts of time to code (some work, mostly side/fun stuff), Copilot has turned out to be incredibly useful in smoothing over all of the small things I'm slow at because I don't do them daily. And especially since I have limited time, I just want to get the damn thing working and am quite happy to <Tab> my way there as quickly as possible.


Yes there has been a lot of hot things in A.I. in 2022 but most of them are mostly novelty value like Dall-E/SD and sometimes worse like SEO spam.

Copilot is the only real value I'm getting from the recent A.I revolution and it does save me hundreds of lines of manully typing code all day. And the best part is it's getting better and better each day.


> mostly novelty value like Dall-E/SD

These are not just novelty value. They're great for mocking up ideas and I've also used them for generating backgrounds for advertising, for example:

"A black stage lit from above by two spotlights, very dramatic, stylish"

You can also add keywords like "modern/rustic/nature/futuristic" and it will get tuned to your desired style immediately.

Iterate on that for 5 minutes or so and there's my perfect background for a "coming soon" flyer. Way better than I could have made in Canva. Good enough that multiple people have told me the flyers look amazing, and nobody guessed it was AI until I told them.


That sounds great. Is this SD? Are you running this locally or via some service? Would love more details if you don't mind.


I've been trying to set up local SD (on windows or WSL) of and on for a few weeks now. Seems to be extremely complicated even with the packages that say they are "1 click install". Then I find out they have dependencies on Cuda, a million python machine learning packages, some package called xformers that I have to compile for my specific GPU, I have to download the right SD image and config, then I have to find and install the right upscaling package and on and on.

So no, I'm not using SD. I paid for a year of Midjourney for $100. Well worth it so far and honestly I think their latest V4 is just as good as SD. Probably is SD in fact, and it doesn't have that "Midjourney style" that previous versions had.


I'm in a similar position -- I only code because I enjoy it, but I also just don't have the time to actually finish the coding projects that I'd like to. Plus, I'm a pretty bad coder because I only have a few hours every couple of weeks to focus on it, outside of the occasional bigger project. I'm going to look into Copilot to see if it can help me actually do what I want.


I assume you use it with VS Code. Anyone used copilot with SublimeText? I know a plugin exists...


I've used it with Goland (Jetbrains) and VSCode. I'm a ST customer... will give their plugin a try out of curiosity.

Update: installed it and it seemed to work fine out of the box.


Yup, works well enough in ST4


Last time I tried it, it mostly suggested the line above.


Vimium. Vim-like shortcuts for the browser. I can't name any other tool or extension that gives me anywhere near the productivity boost of Vimium. I spend probably half of my work day plus a few hours a day in my spare time in the browser, and it makes navigating the browser feel like butter. When I'm tired and don't want to be glued to my desk, I can relax and surf with one hand which just feels incredible. I quickly got so used to it that I instinctively try to use Vimium shortcuts when I'm on other computes and feel withdrawal symptoms if I realize that it isn't installed.


There's also Tridactyl, which is a similar project, but more customizable. https://github.com/tridactyl/tridactyl


There also is quite browser, which is similar (not an extension though) it has some very cool features like domain conditional proxies and other settings


Do you mean qutebrowser? https://qutebrowser.org/


yup


If you like Vimium, you should check out SurfingKeys. It is similar but seems to have even more going for it: https://chrome.google.com/webstore/detail/surfingkeys/gfblio...


What do you like about SurfingKeys over Vimium? At a quick glance, seems to have many of the same commands, maybe SurfingKeys just has a few more.


Surfingkeys is more customizable and has more features. You can use Surfingkeys API with javascript to add more customizations. It's good for adding custom keybindings to certain websites. Look at this config repo to see what's possible with Surfingkeys: https://github.com/b0o/surfingkeys-conf It also supports neovim editing in browser, markdown previewer, pdf previewer with key bindings, etc.

Vimium is more robust as they have resisted the temptation to open their apis and allow unlimited customization. It's good for you if you don't have the need to add more customization or if you don't know programming.

Surfingkeys require you to know javascript a bit add advanced customization. And, it requires some troubleshooting when your config goes wrong. It's like Vimium for power users.


But you need to configure it and by default it breaks most shortcuts on websites.


RedwoodJS https://github.com/redwoodjs/redwood

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.


I've just been researching this the last few days. There's a couple of other similar tools that I'm also checking out:

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.


Wasp DSL creator here, let me know if any questions :)


Very interesting project, It's interesting to see trends coming back to bundled BE/FE. What would you say are the biggest issues you have with Redwood?


My issues are kind of specific to the idiosyncrasies of my app. Its multi-tenant and two-sided (admins and applicants), so I had to kind of roll my own auth system on top of the existing one. The fact that I could do that really means that it’s flexible enough honestly.

Another issue is that it doesn’t expose a server.js file, so its hard to do stuff like integrate an APM.


Seems like a replacement for MeteorJS.


I feel like I have a unique one here. The chrome extension: "Replace Youtube's Home with Subscriptions"

It has easily saved me over 100 hours by preventing me from continuously scrolling through youtube recommendations.

https://chrome.google.com/webstore/detail/replace-youtubes-h...


I use Pocket Tube [1] and I absolutely love it. I started using it 1 month ago so can't really estimate how much time it's saved me.

Before that I always found YT frustrating and never cared about subscriptions because, and correct me if I'm wrong, the subscription system is disorganized. It doesn't make sense to me. I found myself having a hundred subscriptions that I didn't know how to follow in an organized manner.

With this extension now I've organized subscriptions into groups, which get integrated into the UI in the sidebar, and you can set notifications for whichever group you'd like. It has more features - like the "Deck" feature, where you add a few columns of either playlists/groups/channels. You can also view all the latest vids from each subscription group, or all your subscriptions and filter them by groups.

I'm quite happy that I suddenly noticed I had this pain point and quickly found the perfect solution. It's one of my favorite extensions.

  [1] https://chrome.google.com/webstore/detail/pockettube-youtube-subscr/kdmnjgijlmjgmimahnillepgcgeemffb


Or try out FreeTube https://freetubeapp.io


can you not just click 'subscriptions' in the left sidebar on the homepage? Or direct?: https://www.youtube.com/feed/subscriptions


The time saved is not the time required to click 'subscriptions'.

The time saved is the time not spent mindlessly scrolling through endless recommendations designed to keep me hooked.


I have that link bookmarked as my "YouTube bookmark". I have never since visited the homepage. Don't really understand what the fuss is about.


The extension redirects the home path to the subscriptions path so that is what it's doing, just automatically.


Thank you for saving me 100 hours in 2023. Installing for Firefox right now.


Funny that for me it works exactly the opposite; I'm subscribed to a lot of channels that upload many videos that don't interest me, however youtube's algorithm is pretty spot-on with videos that I will be very interested in watching, whether they come from channels I'm subscribed to, or not.


You're describing the advantage and disadvantage of the YouTube recommendation algorithm. It's really effective at recommending videos I'd be interested in/would click on.

However it's so good that it'll easily burn hours of my time I'd otherwise spend doing something more fulfilling.


Vim. I can never leave modal editing now. Been using it since 2010 and I think in vim when editing. It lets me enter a flow state so much easier. My brain maps into writing and editing.


I try to stress this more than anything when talking about the merits of vim/emacs/etc. It's not about speed, it's about how effortless and 2nd nature editing text becomes.

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.


I'm a long-time vim user, and haven't really used anything else over the past 15-20 years. I use a nice color scheme, barely any plugins and a moderate but static vimrc. I feel like this is my happy place, it let's me write with the setup I'm used to, in any terminal, on any machine, and on any codebase (JS, Python, Go, HTML, C, etc).

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.


My co-founder/ collaborator has. He is a 100% vim person, to the extent that he has Firefox configured to let him do things with vim key bindings (I believe using imperator).

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.


I've been using vim since perhaps 2004.

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


Any advice for someone who wants to switch to vim for Go development but struggling to find a good workflow? Using vscode it's so easy to rely on the auto complete, click a function name to go to it's definition, etc. I haven't found a good guide on getting that sort of basic workflow going which is unfortunate because I would love to stop using my mouse so much.


Have you tried something like JetBrains tooling with IdeaVim, or one of the Vim plugins for VSCode? Might help with the transition.


Just a reminder that you _can_ leave modal editing with :q (sorry couldn’t resist)


What is the shell if not just another editing mode?


Lots of support for vi editing. Things like bash (set -o vi) and other CLI/TUI have bindings. Check out the browser plugin vimmium too.


Since 2010? Welcome new vi user. :-)


My point in saying this was, just to clarify: vi is an ancient technology that still feels cutting edge. I can't imagine editing without modal, it enables some fantastic workflows, which I wish I had in other contexts as well.


I feel similarly.

My journey has been: VS Code, to Codium, to Atom, to Sublime, to now Vim where I feel the most productive.


I get moving to more minimal lightweight software but why go from VSC to Atom?


Wanted to avoid Microsoft's telemetry and felt like I was being spied on.


Seeing a lot of “fiddly” software being listed here. Stuff that lets you configure and tune a workflow endlessly. It’s ironic that this is the sort of thing most of us will think of, since it doesn’t really account for time saved so much as time spent fiddling…

Keeping an eye out for software that you barely use, as this is the kind with the most potential to truly save me time.


Reminds me of a co-worker who would spend between 3-5 hours a day messing with their vim config. I know we cannot actually write code for 8 hours a day, heck a 3-4 hour session can feel too long. But spending 15+ hours a week endlessly fiddling with their tools was hilarious to watch on some level. I remember at team lunches how they would go on and on about this new plugin they found that is going to save them so much time now. Oh the irony if they only stepped back for a moment...


Yeah I know I’d fall in this trap if I let myself customize my tools so use everything with default config. No custom keyboard layouts, no shell aliases, nothing. It has the advantage of portability as well.


From that perspective, using Ctrl+R and Ctrl+S for reverse-i-search in a shell saves me so much time from writing commands especially big Kubernetes ones.


Add fzf to get fuzzy search for your history. I reuse long complicated commands all the time by pressing Ctrl+R and then typing the first letters of a few words I remember using.

https://github.com/junegunn/fzf

It's also useful to remove duplicate commands and store infinite history. Add this to ~/.bashrc:

  export HISTFILESIZE=
  export HISTSIZE=
  export HISTCONTROL=ignoredups


Changing HISTFILE by context has been a huge win, keeping commands from generic system administration or different projects from getting in the way as I search back through my history to do a thing again.


You can also add a comment for searchability, as in:

    > big hairy command with --lots --of arguments  # foobar
Then you can search for 'foobar' via fzf or whatnot.


Give hstr a try: https://github.com/dvorka/hstr

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.


Cmd/Ctrl-F in general is probably the biggest invisible time-saver if you can count UX patterns.


Try fzf for history management, it's a life changer.


The 'history' command is helpful the 1% of the time Ctrl-R and Ctrl-S fail you.


Bash alias. And my large bash_alias file


ActivityWatch. Records your activity in the background (how much time spent in which programs and the time period). It can record browser tab titles and vs code open files, sometimes it can be invaluable to go back and check out what i did at a specific point in time.


Sorry mate but that is just wrong. I get payback of a hundred to one on most of my fiddly bits.

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.


Autohotkey There is simply no better automation program on any OS. I even run a fully fledged tiling wm written in autohotkey. ( For reference, here's when I tricked r/unixporn into thinking it was bspwm https://www.reddit.com/r/unixporn/comments/nhzz3b/confession... )

Fluent search Spotlight on steroids, for windows. Apart from being a search/launcher, it has a bunch of atrociously good features. It lets you use a custom search indexing backend, which brings me to...

Everything A search indexer backend for windows. Really great search.


> Autohotkey There is simply no better automation program on any OS.

No, there are: hammerspoon or Keyboard Maestro for macOS. Which has better accessibility API hooks compared to Windows anyway.


>Which has better accessibility API hooks compared to Windows anyway.

How so?


Can you point me to some good examples? I use it for text replacement but their own site is fairly sparse for creative uses.


I used to be a very heavy AHK user and developed a rather extensive config. Here is my config along with a boilerplate to help you start one that is similar:

- https://github.com/denolfe/AutoHotkey

- https://github.com/denolfe/AutoHotkeyBoilerplate


Use official forum, it has tone of good examples.

Here is something I did long time ago: https://github.com/majkinetor/mm-autohotkey


this one saved me a lot of time over the years. not a 100 hours but its definitely something i could use maybe a hundred times a day.

https://github.com/davebrny/kiwis

basically when you want to search something, just highlight the word(s), press a hotkey then select a site from the list and it will open up the page directly


I just discovered Fluentsearch and love it.

You use Everthing as it's back-end search and not Fluent Search?


Which Autohotkey script do you use for tiling wm on Windows? bug.n? komorebi?


If you use Ansible at any larger amount, then you're doing a disservice to yourself if you're not using Mitogen[1][2]. The amount of waiting it has spared me is innumerable at this point.

---

[1]: https://scribe.rip/@einarum/speed-up-ansible-with-mitogen-b3...

[2]: https://mitogen.networkgenomics.com/ansible_detailed.html


Just tried this, shaved a playbook from from 8 minutes 30 seconds to 3 minutes 10 seconds! Thanks :)


You are very welcome! Please spread the word about this magical bit of software to anyone else using Ansible. Together we can make iterating on Ansible configurations great again!


This should have been integrated into upstream Ansible a long time ago.

People say it's not a big deal these days but it still is.


Anki - I don't know how I'd prep for the MCAT without this. Open source with desktop and mobile clients, syncing via cloud. It's flashcarding but uses gradual intervals so you see things less often once you've retained them.

ChatGPT - I use this as a private tutor (it's great for biomedical stuff) to check my understanding and ask it to correct me if I'm wrong.


RE: ChatGTP...

How confident are you that it's giving you the correct answers to your queries? I've noticed that it often sounds right, but is sometimes completely wrong, in subtle ways. It always puts together words that are commonly near eachother, and it is always grammatically correct, but it is often absolutely wrong. I've observed that the more specific and technical a question I ask, the more likely it is to be wrong.


You can actually ask ChatGPT to cite its sources. Anecdotally when I tried, it provided me with a valid url to a census.gov site that contained the answer to my question. That doesn't make it better than google, but it does mean that some verification is possible.


it will, very frequently, make up citations with real looking but completely bogus urls.

it is NOT a research tool. It is a creative text generation tool. It is not programmed to provide accurate data. It's programmed to provide accurate sounding text.


Actually just today I asked if for the density of silicon nitrite and to cite a source. It cave a citation that seemed correct (reference book on materials) but with completely made up authors.


How often are you confident that you find the right answer on Google? As with anything, you need to reason about it yourself and verify.


Anecdotally, chatgpt seems much worse to me than Google for getting correct answers. Like orders of magnitude worse. Tells me the wrong timezone for a city kind of bad. No doubt it will be much better in the future, and they've definitely found PMF with the interface, but I would not trust it right now with anything even slightly important to me.


But how can you verify ChatGPT's answers if you don't know what its sources were? E.g. if I google a technical question about HTML5, I can see whether a result is the HTML5 spec, MDN, W3Schools, or a random medium blog. If I google a medical question, I can see if I'm on a hospital's website or on Men's Health.


Parent is using chatgpt as a tutor though, not as a google search.

I’d expect a tutor to give the right answer, but I wouldn’t expect google to. Chatgpt is often wrong. It’s a problem if you’re trying to learn something and using it as your tutor/truth.


I can't think of a single piece of software that has cloud syncing, for free, with no option for payment.

I'm not sure who is running it (hopefully some well funded academic group), but it restores me faith in humanity a little every time I press sync and don't get CTA'd to sign up for some subscription.

Amazing tool, kudos to the devs, and if there other comes a time where payment is required, I would be happy to chip in with the above being said.


AFAIK anki is primarily funded by sales from the iOS app

https://apps.apple.com/us/app/ankimobile-flashcards/id373493...


Ah that might explain why I've never seen any payments, I'm on android and the app is free


Espanso [0] - such a useful text expander with easy inclusion of shell commands and many other features. I love this thing so much as someone in the medical field that I made my first ever open source contribution to it.

0: https://espanso.org


I really enjoy espanso too! I only have a handful of expansions that I use (date, reverse date, may email address, our domain) but it is already so nice. I should add some things :)


Love espanso... I need to get my work to start sending the dev money because we are starting to use it in a lot of places.


Did a lot of data wrangling this year. The usual grep, sed, awk, jq and even find has sped up my days significantly. Sed is among my favorites to whip up some quick, ad hoc, transformations.

This year I added Miller [0] to my list; a tool to process tabular data, similar to sed, awk, etc. It handles csv, tav, json lines, etc. in a consistent way. I like the delimited key-value pairs format, which allows me to write simple oneliners in bash to collect some data (e.g. "ip=x.x.x.x,endpoint=/api/x") and use Miller to crunch the results. Not sure it saved me 100h, but it was one of the biggest time savers this year!

[0] https://miller.readthedocs.io/en/latest/


I second Miller - besides its extensive support for various formats, it is fast. If you ever have to deal with gigabyte-sized files, Miller will give noticeable speed ups versus jq et al.


FYI: https://github.com/BurntSushi/xsv is much faster than mlr (like an order of magnitude), and zsv (https://github.com/liquidaty/zsv) is even faster. But, neither support formulas. Disclaimer: I am one of the zsv authors


Still Karabiner and it's probably 1000 hours yearly at this point.

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.


Karabiner and Keyboard Maestro have saved me a lot of time as well. Being able to remap consistent shortcuts for every application is really nice.

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/


Along these lines, Raycast¹ is excellent. It's got lots built-in capabilities and available extensions² that I've used to replace several miscellaneous utilities.

¹ https://www.raycast.com/ ² https://www.raycast.com/store


Raycast is on track to replace Alfred for me. The simplicity of scripting with it is so nice compared to relative complexity of Alfred workflows.


For MS Windows users, the equivalent is AutoHotkey (https://www.autohotkey.com/).

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.


Never heard of Height. What it does better if compared to say ClickUp/BaseCamp?


I just like the way it lets me sort tasks. Mention how I use it below:

https://wiki.nikiv.dev/focusing/goals

https://wiki.nikiv.dev/research/solving-problems


Thank you. That really helps to understand


Not a program, but being very familiar with the keyboard shortcuts in SublimeText has saved me countless hours of dev time.

Things like Ctrl-D to highlight multiple instances of a word, plus the ability to put on Caps checking in the search bar first so you're only highlighting correctly capitalized versions. Make the same change in multiple locations. Saves so much time.

Knowing how to highlight a letter, a word, a line at a time.

Ctrl-shift-down to make your cursor span multiple lines at the same point, and have copy/paste respect the copied text from the respective lines.

So many things add up to hours upon hours of time saved, and frustration avoided.


Came here to post this. The multiple cursors feature combined with the ability to open huge files with gracefully degrading performance turns a lot of what would be one-off programming tasks that would take dozens of minutes to an hour into interactive sessions that take seconds to minutes.

Also the low latency is amazing. Sublime on an old laptop feels batter than VS Code on a fancy new desktop.


I would say Sublime Text is in fact a program.

It has also saved me over 100 hours or more.

And this includes its instantaneous speed and the ability to open huge files!


Fair point! I'd say what I'm most aware of having saved me the most time is knowledge of the shortcuts and features available _in_ SublimeText though.


when switching to vscode, I thought it would be a good idea to use the VScode shortcuts, I wish I took the time to customize it to match sublime. They are so much more intuitive. It just feels right, if that makes any sense.


SmartTubeNext[1]

In installed it on my Android TV instead of the official Youtube app and it saved me literal hours:

- it blocks ads

- it includes SponsorBlock, so sponsored segments, intros, "plz subscribe" are skipped

- it allows me to block Shorts

Anytime I have to use an official Youtube app, I remember how unusable it was. I even gave Youtube premium a try at some point, but SponsorBlock is just too good to ignore.

[1]: https://github.com/yuliskov/SmartTubeNext


I'm using NewPipe [1] but it's TV support is rather poor. For example, full screen is broken and some operations are accessible only via a swipe gesture.

If you've used NewPipe, how does it compare to SmartTubeNext?

[1] https://newpipe.net/


I haven't used NewPipe on Android TV so cannot compare, but the user experience of SmartTubeNext is top notch. Everything works (you can even use Chromecast from the official Youtube app on your phone directly to SmartTubeNext), you can customize it enough (show/hide relevant sections, default section on launch, shod hide shorts, color theme, SponsorBlock) and the features that I care about are supported. It's basically an improved version of the official app. The only thing missing I can think of is the lack of comments, that might be a negative point for some people.

Also I didn't personally interact with the developer but he seems like a very nice person, very invested in his project, even if some of the feedback he gets is thankless. SmartTubeNext is one of the few projects I'm actually considering donating money to.

I tried using NewPipe on an Android phone for a while, and concluded I wasn't in their target demographic. I understand, but don't like their choice of not supporting Youtube accounts. Also wasn't a fan of the UX or the settings, everything felt more complicated than needed.


No root required? I thought TV's didn't allow side loading anything. TIL.


No root required!

The installation process is a bit annoying, but updates work great.


That's great, it's a totally different thing to suggest to someone to sideload vs. to root.


Of all the software I can think of quickly, the one I think may have saved the most time in my life is Google Maps.


I use and enjoy Google Maps, but some of the features are baffling, like insisting on switching you to a "faster" route even after dismissing the proposal several times.

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.


Personally i think gmaps actively tries to get your attention and interact with the app. Which is extremely dangerous and in my country can result in a big fine if you even touch the phone.


they have a feature to ignore Highways .. maybe high time they had a feature "Avoid WAR !!"


Turn-by-turn navigation in a completely foreign place can be invaluable, and save much frustration. I personally use Organic Maps (MAPS.ME), and I'm fortunate that it never led me astray or on horrible roads etc.


My family and I were on a “star safari” last night, and our guides gave us a Google Maps location for a parking lot on a volcano. Google struggled, as did Here. Organic Maps? No problem! So thank you; you’ve set me up with my new offline map!


I'm happy for you! OSM derived projects served me well in the past, I hope it will you too.


This is the single software that made me maximize my travels. Removing the fear of getting lost is life changing.


How come it saves 100 hours for you?

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.


Searching the map for your target given only incomplete information is much faster. It also scopes the map to your screen size, paper does not do this, you save time finding the right resolution.

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.


>Many a time Google maps has sent me to the wrong place.

Have used it for years and have never seen this happen. Neither has send me the wrong way in a lane.


Google maps is a map, you can map out the routes yourself just like with old maps, but it is way faster to do so than with paper maps.


> Oh and it's cost me money in fines from taking me the wrong way down streets I was not allowed to drive on.

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.


I find that a combination is the most useful: planning the route beforehand, maybe with an online map / routing service, and then use the turn-by-turn for convenience. I don't use Google Maps myself, I go with MAPS.ME / Organic Maps these days, maybe OsmAnd+.


How are paper maps working for you these days? I'm interested in your experience replacing GMaps.


Home Assistant [0] through bunch of automations we have around our home must’ve saved 100h in total for me and my partner so far.

[0] - https://www.home-assistant.io/


What kind of automations have you found necessary? Any time I think about getting into it, I can only think of automations that sound silly or extra but nothing truly time-saving.


I got tired of tuning the speed on air purifiers at home. Since outdoor PM levels can change up to 1000× in a single day, you have to adjust accordingly, and it takes a lot of attention to do that.

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.


Not the user you replied to, but for me:

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.


How does home assistant track know if you are home or not? Is it tracking your location?


You can set up zones based on your phone's GPS (there is a Home Assistant mobile application that can report data back to the server), or you could set up an automation based on whether your phone is connected to your home's wireless network. Or probably even via some Bluetooth beacon.



Where I live we have frequent scheduled power outages, I use that to schedule when and how far to charge my batteries


South Africa?


I've documented all of the automations I have set up at my Airbnb: https://www.linquist.com/airbnb/automation


Turn off ac in the morning and back on before I come home. Saved me about $70 a month


I hook tons of stuff up to HA and I love it. It's great with Sonoff switches flashed with Tasmota.


I've moved on my Sonoffs from Tasmota to ESPurna and finally to ESPhome which I find excellent.


Which switches models? Zigbee? I am still fighting with them (unflashed at the moment)


I'm using the S31's. Fairly easy to pop open and flash if you've got some alligator clips and one of those flash programmers (eg https://www.amazon.com/gp/product/B075N82CDL/ref=ppx_yo_dt_b...).


Sioyek: https://sioyek.info

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.


The Mosh SSH client for intermittent connectivity ( https://mosh.org/ ) has definitely saved me at least 100 hours. Too bad that it's only available for Windows as a Chrome extension, and Chrome will discontinue support for it starting in the new year. Really not looking forward to having to search for an alternative...


> Too bad that it's only available for Windows as a Chrome extension

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.


And if you work in locked down corporate windows environments, asking for Git for Windows ("for local version control only") is a sneaky way to get the basic Unix utils installed. It's a lot easier to ask for VSCode + Git than some open source tools that will be viewed with suspicion by the local support team.


I've switched from Mosh to Eternal Terminal (https://eternalterminal.dev) because of its excellent native scrolling support.


Eternal Terminal pitches itself as entirely superior to Mosh, but also describes itself as using TCP (Mosh uses UDP). I'm curious how that can actually cover the use cases Mosh provides?

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.


ET adds a layer between application and TCP sockets that persists connections. https://eternalterminal.dev/howitworks has more.

If you are mostly on unreliable and high-latency connections, mosh will likely feel better, but with no native scrollback.


To add on to that, I use iTerm2 with tmux control mode which combines a native UI frontend with a tmux backend on a remote server, meaning I can spawn new native tabs, windows, or panes and they're all tracked by the remote so I can reconnect to all of them at once if I disconnect.

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.


I was using mosh+tmux earlier this year, but ended up switching to wezterm which has a native MacOS and Linux versions, and gives native interface to the terminal. And I can reconnect to my session if I suspend my mac or go somewhere else.


I guess you can install it in WSL?


how is it different from autossh? never used mosh yet


Ditto Clipboard Manager for Windows. Yes, I know W10/11 have it native now, but it's not as good as Ditto.

https://ditto-cp.sourceforge.io/

AutoHotKey

https://www.autohotkey.com/

And if deleting TikTok from my phone were an app, it would be nominated, because that saved me hundreds of hours I'm sure :D


I am still using http://bluemars.org/clipx/ old but works


I loved ditto when I used windows. Do you know a good ditto alternative for mac?


I don’t know if I’m the only one, but when I used ditto I turned off the auto cleanup stuff. Basically I had it keep everything. I’d go cleanup manually every now and then (especially images), but having a very long term way to look up past code snippets was invaluable.

So then when I got my first Mac I felt lost without a clipboard manager with unlimited storage. I finally found Copy’em and my life has been complete again. :)

https://apprywhere.com/ce-mac.html


A quick Googling found this, and it looks similar:

https://maccy.app/



I haven't used ditto myself, but pastepal seems like what you want

https://onmyway133.com/pastepal/


Going to say my own https://github.com/boyter/scc/ which I have used to turn down projects of "Oh we just need to do X"

It allows me to evaluate the code-base quickly and see where potential issues are, and find hidden complexity in the code. I have said no a lot due to it. The only reason it exists was because I got caught out from another project, which wasted months of my time.

Otherwise IntelliJ and the JetBrains IDE's in general.


Are the COCOMO estimates useful at all for you? That always comes up when I look at code metrics but I have a hard time believing they mean anything


Not really. It’s just another datapoint. People like seeing it though.


a) cool

b) thanks for explaining how it saved you time

c) holy CRAP the description wasn't joking about "fastest"


Not 100h yet but I've been replacing custom Linux command output parsing with https://kellyjonbrazil.github.io/jc/ (https://news.ycombinator.com/item?id=33448204) lately.


That actually looks nice! (I've written at least 10,000 perl one-liners.)

Will definitely check it out.


I know this is the modulair way with piping. How would ` jc command args` be as opposed to `command args | jc —-command`?


Both ways work:

    $ jc ifconfig lo0

    $ ifconfig lo0 | jc --ifconfig


Looking at your list you may like VisiData (https://www.visidata.org/). See the demo from 2018: https://www.youtube.com/watch?v=N1CBDTgGtOU


100%. Visidata is great. Easy to pick up, rewarding to power users.


make + pandoc + a build script in my own programming language + latex allow me to auto-generate the reference manual for my toy Lisp interpreter.[1] That was definitely a huge time-saver, since I already had the help entries for an online help system.

[1] https://raw.githubusercontent.com/rasteric/z3s5-lisp/main/do...


vi and friends (vim/neovim)

Being able to edit text by piping it through shell commands and back into the buffer is pretty darn useful. In this case, it's not vi alone that provides the benefit, but whatever.

Macros and registers can be super handy when you have to do the same thing over and over in a big file. Sure, I could write a script, but sometimes it's just easier to do it by hand once and repeat the macro thousands of times.

Once you are able to commit certain operations to muscle memory, you can really whip around. For instance 'vapgq' selects around the current paragraph and formats it.


second this, vim has been my biggest time saver


kanata[1] and komokana[2].

kanata is basically like QMK for any keyboard without the firmware requirement. I use kanata with my trusty old iMac keyboard which is to this day my favourite keyboard of all time. But now I have all the cool QMK-style layers with it.

So that is awesome on its own, but where it gets even better for me, and this is where the seconds have really added up to hours, is that I wrote another piece of software which programmatically changes layers on kanata whenever a different window is focused in my tiling window manager.

This has honestly changed -everything- for me. I no longer have to waste keys on my keyboard to switch layers, I no longer have to -think- about switching layers, I just focus another window with alt+hjkl and whatever keyboard layer I expect for any given application is automatically applied. Definitely one of those "you can never go back" experiences for me.

[1]: https://github.com/jtroo/kanata

[2]: https://github.com/LGUG2Z/komokana


This is exactly what I've been looking for, thanks! QMK has always been weird to me: why is it hardware specific?


One advantage of it being hardware specific is that I can move my keyboard between machines and not have to worry whether my shortcuts are available. Also, I believe tools can only register themselves so early in the input processing stack in the OS which can prevent you from having your macros/shortcuts available in certain applications. An example of this is for RDP in windows, where if you use fullscreen RDP, it will use the remote instance's keyboard shortcuts instead of triggering the hooks you have on the host. Having the shortcut in firmware makes your shortcuts resolve before even leaving the keyboard.

Of course, there are downsides to having it all in hardware as well.



I probably shouldn't admit this but the fzf fish shell integration is basically how I remember useful commands instead of writing them in a note, because I'm too damn lazy


Haha yes- and then when I open a new machine or somehow lose shell history it takes me a bunch of time to get back up to speed. IMO worth it for me but it can be a speed bump.


I recently moved to a new machine and copied the history file over, definitely helped me immensely


Matrix Docker Ansible Deploy [1] allows me to unify all chat networks that I use under one single server (and, therefore, one single client), avoiding switching windows. I do believe it saved me hundred of hours...

[1] https://github.com/spantaleev/matrix-docker-ansible-deploy


gron https://github.com/tomnomnom/gron

It takes JSON input and produces flat, key-value output based on the path to the value. Usage with grep was obviously the original intention, but I've used it to help me better understand a given JSON's structure, too, which I then usually reflect back into a program that's consuming that JSON.

It also supports "ungron" too, so, for example, `gron some.json | grep -v "thing I don't want" | gron -u > filtered.json" makes for quick filtering of a JSON. I find it more user friendly than jq's language.


Throwing my hat in the ring for Justfile. It's basically a streamlined make.

https://github.com/casey/just

Where it really shines are in places like monorepos where you may have many inter-related setup scripts, build commands or helper utilities.

You define all of your commands in one file (or multiple if you want a hierarchy) and can run commands from any subdirectory.

eg. You have a monorepo with a web server, and also a react-native app in separate directories, you can call `just build-app` in the web directory, or call just `start-server` when your terminal's current directory is 7 diretories deep in the mobile directory.

The amount of time I have saved cd'ing around has honestly been amazing. It's worth it's weight in gold, especially on large projects.


Not 100 hours yet but I've been pleasantly surprised how effective ChatGPT is at giving me code that is 90-100% good to work with. Never used Copilot but now I'm warming up to this idea.


Give Copilot a try, it has been way more reliable for me in terms of giving good code suggestions than ChatGPT so far.


Copilot has been great the past year and longer. I am so used to it , I don’t even remember how it was not having it.


I've been using clickhouse-local (the CLI tool, not the database) a lot recently to do data analysis work. It's simpler/better developer experience when using local files for quick data analysis compared to writing python scripts. As someone who does a lot of data science and is not a software engineer, it feels more natural to write SQL vs. having to write actual code–and it's super fast...


Careful with moto: it uses Python's context managers to set-up and tear-down the mocking. If you haven't got the right mixture of nesting, yields, etc. then you may end up running tests against real AWS resources (using your default credentials).

For this reason, I don't have any default AWS credentials configured: I always specify an AWS_PROFILE manually when it's needed ;)


Fish + Starship (https://starship.rs/) + z (https://github.com/jethrokuan/z). For me it is a really nice configuration, fast do do stuff & visually pleasant (it influences my comfort & motivation).


GitHub Actions. While it is not the only CI tool, its low barrier to entry does magic. I use it for tests & deployment (of anything, including the smallest personal projects), taking periodic screenshots of my websites, and building PDF files from its LaTeX source.


mpv, mpvacious [1], and anki

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


My biggest problem with anki is that the isn't a nice way to make cards. There's a vscode plug-in that lets you do markdown but it's too limited and clunky last time I used it.


org-mode has some spaced repetitions tools (e.g., org-drill). I personally don't recommend SR by flashcards too much. It's better to do it more naturally. For example, read books regularly to learn a language; common words will repeat themselves enough times that they'll effectively be a form of SR.


Ninite's automated installers [1].

This one tool has saved me hundreds of hours back in my support days (both at previous sidejobs and family members' houses) in downloading, installing, and _updating_ basic applications. I could leave the tiny Ninite executable on their desktop with the instruction to just run it once a month and it would keep all their stuff up to date.

[1] https://ninite.com/ Install or Update Multiple Apps at Once


I don't use Windows that much, have used Ninite in the past, but these days I tend to use Chocolatey along with their GUI.

https://chocolatey.org/

https://community.chocolatey.org/packages/ChocolateyGUI


I've been using APT for this with great success for the past 17 years! I guess it's also saved me quite a few hundreds of hours.


k9s makes me feel like (and look like to my coworkers) a k8s wizard, the parenthetical especially when I'm sharing my terminal and zipping around using keyboard shortcuts

https://github.com/derailed/k9s


I love k9s, it's completely changed the game for me. I really wish the keyboard shortcuts and available commands were better documented, though. Figuring out that you have to be in the deployment view (and how to get there) to scale something took some doing.


This really rings true! We had an outage that was essentially due to errant use of the keyboard shortcuts and default read-write settings in k9s. "Bye bye super important deployment" is a bit too easy.


It looks intimidating but is very quick to get into. Essential k8s tool.


The pure power of ripgrep + emacs to speed up refactoring _probably_ offsets the lots of game time i've spend diddling with my editor.

at least that's what i tell myself.


I have a bash function that mashes sed and rg together and it's dreamy.

"hey, change all these to that, and don't make it complicated"


care to share your .init etc, I still having figured how I want to couple the two


for big edits and refactors, i've been using rg.el: https://rgel.readthedocs.io/en/2.1.0/usage.html?highlight=ed... as such:

    (use-package rg
    :straight (rg :type git :host github :repo "dajva/rg.el")
    :config
    (rg-enable-menu)
    )
and for short stuff/searching around, etc, i bound consult-ripgrep to M-s r.


I just wanted to thank OP for this thread. I'm discovering some excellent tools. GoLinks may be the coolest thing I've seen in a while!



I wish there was some sort of 'export to selenium' function to this.


Easily https://vanyalabs.com/ (Access your FHIR API Data)

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.


The Singer spec https://www.singer.io/#what-it-is, for data ingestion and loading

1. open source

2. hundreds of pre-built taps and targets (for apis and databases)

3. supports incremental and full refresh

4. don't need to write any SQL and it creates and loads tables for you

Stitch, Meltano, and (sort of) Airbyte also use it


Things - its a light weight todo app with just enough features to make it useful. I tend to use it for a dev log to keep track of what I'm working on, keep notes, and finally mark something as complete

https://culturedcode.com/things/


This looks very nice but no android support is unfortunately a dealbreaker


Short chrome browser extension I wrote some time ago that rewrites normal urls to videos like this:

https://www.youtube.com/watch?v=jvPPXbo87ds

into embedded video urls like this

https://www.youtube.com/embed/jvPPXbo87ds?autoplay=1

bypassing ads and running video in full browser window.

Since I watch a lot of youtube I think it might have saved me 100 hours of waiting so I can press Skip Ad button.

I probably should just use AdBlock but where's the fun in that.


Dune (https://dune.build/) is the preeminent build tool for OCaml development. I don't love its input syntax (s-expressions), and I sometimes miss the ability to write high-level functions to reduce boilerplate (especially for unit tests), but it always gets the dependencies right, and it's fast. This is in stark contrast to some of my experiences with various other build systems, and I am super happy that the default option for OCaml build systems is so good.


JetBrains CLion.

I used to program in Vim/Neovim. Using a full-blown IDE is a real productivity boost when programming in for example Rust, which is what I write the most, and use CLion for the most.

CLion has Vim emulation also. So I still have normal mode, insert mode, and most other main features of Vim that I know and love :)


Similar story for me. Used to basically use vim, but after taking over a large-ish python project I switched to PyCharm.

Its support for detecting type errors (I use type hints pretty consistently) and its refactoring support have probably saved me way more than 100 hours. Just Shift-shift searching has probably done that by itself, too. And import optimization. I could go on and on.

Plus integrated sql/db stuff is just icing on the cake. Best subscription I’ve ever paid for.


The CLion/JetBrains Vim emulation via IdeaVim is _so_ good. Better than VS Code and on a level with Emacs Evil mode for me.

Adding shortcuts to my ideavimrc saved me a bunch of time and has made CLion largely keyboard-driven for me.

https://www.jetbrains.com/help/idea/using-product-as-the-vim...


The fish shell (https://fishshell.com/) and its fantastic auto-completion. It now replaces bash as the default shell on all my machine and is the first program I install when connecting to a fresh cloud instance.


Not really a program, but this year the Tabu [0] heuristic saved me at least on that order of time. I work on combinatorial optimization problem (think traveling salesman), typically we use local search heuristics like simulated annealing or parallel tempering that work well but require a lot of hyper parameter tuning. Tabu is super simple, has very few parameters to tune, and works great.

[0] https://en.wikipedia.org/wiki/Tabu_search


How do you implement "tabuList.contains(sCandidate)"?

Has it been successfully generalized to problems with infinite / continuous search spaces? I imagine you could use edit distance or something for large combinatorial spaces.


Greenshot - free, lightweight and just the right set of features for marking up screenshots and making new UI mockups based on existing screenshots of apps. I've tried a lot of other alternatives but they were either too complicated to use or lack a key feature.


Do you find greenshot better than say ShareX ?


IMO yes. ShareX had too many options, and too many layers to navigate to get something done.


Greenshot is my friend everyday.

But I now want a tool as simple as it, but for animated GIF.

[Any piece of advice is welcome]


ScreenToGif is pretty simple! I often use it at work, and find that it serves the purpose of sharing short snippets perfectly


I'd say that Charles Proxy (https://charlesproxy.com) is my "secret sauce."

It allows me to quickly evaluate server interactions in my software, without having to program in all kinds of logging.


On windows, http://symbolclick.com/index.htm is great for XML and JSON viewing. Use it pretty much everyday. Really love the way it display data in a table format.


Microsoft offerx XMLNotepad for a similar idea, but free (gratis and libre): https://microsoft.github.io/XmlNotepad/

(I haven't used Symbolclick, presumably it has more features or something for the money)


Beyond Compare, AutoHotKey, the macro functions in Notepad++ and Photoshop, and the user-preset function in Lightroom.


Beyond Compare (file comparison+) is a really useful tool.


Text Blaze (YC W21) has saved me about 50 hours over the past 18 months. They reduce repetitive typing across websites. For example if you have a common format for bugs you're filing, or LinkedIn messages or emails that you're sending, you can use Text Blaze to write most of the text for you. If you've used Superhuman snippets, this is similar but more powerful, and it works across the entire web instead of just email.

Time savings screenshot: https://imgur.com/a/KjFhWRH (Disclosure: I liked the product so much that my fund ended up investing.)

Website: http://blaze.today/

Chrome extension: https://chrome.google.com/webstore/detail/text-blaze/idgadac...


I work as a consultant and have to do a timesheet. I use an old app called TimeSnapper that records screen grabs every few seconds. Works brilliantly for timesheets and has saved me numerous times.


I use timebro.com, which is a paid service (though recovering one extra hour to bill covers the monthly cost for me). Once you have to log time in multiple systems, it's essential to get something to help manage that process or chaos quickly follows.


The developer is also very kind and responsive, even here at HN. I was impressed! And it is a nice way to let go of "do I need to remember this" (in combination with the Ditto clipboard manager)


How does such a tool know what project you're working on?


My most time saving programs didn't change in several years:

Slickrun, floating command line for Windows https://bayden.com/slickrun/

Autohotkey - shortcuts, text expander and scripting for everything https://www.autohotkey.com/

Total Commander, still the best file manager on Windows https://www.ghisler.com/

CyberChef - The "Cyber Swiss Army Knife" - single file web app for all kinds of conversions, encryption, encoding, compression and data analysis https://gchq.github.io/CyberChef/

Adminer - lighweigt database manager https://www.adminer.org/


I use Total Commander and Autohotkey, and CyberChef as well.

I would add ClipMate as the absolute BEST clipboard manager: http://www.thornsoft.com/clipmate7.htm

Display Fusion Pro for managing window layout with multi monitors https://www.displayfusion.com/

Misc programs I use daily that are easily google-able: Evernote Belvedere Bitwarden Snagit


> I would add ClipMate as the absolute BEST clipboard manager

Give a try to Ditto (https://ditto-cp.sourceforge.io/) - it rocks!


Laughs in DirectoryOPUS.



Karabiner for key remapping has been instrumental for me. I use it for a "hyper key" on CapsLock to provide Vim-like movement keys, text selection, app-specific bind overrides, etc. There is also a library out there for configuring it with TypeScript (Deno).

Hammerspoon for window management is also amazing, though I recently switched to Phoenix because it can be configured in TypeScript. It allows me to have hotkeys to swap to specific apps or toggle between groups of apps.

https://github.com/esamattis/deno_karabiner

https://kasper.github.io/phoenix/


Excited to see Steampipe shared here - thanks zJayv! I'm a lead on the project, so sharing some quick info below and happy to answer any questions.

Steampipe [1] is open source and uses Postgres foreign data wrappers under the hood [2]. We have 90+ plugins to SQL query AWS, GitHub, Slack, Kubernetes, etc [3]. Mods (written in HCL) provide dashboards as code and automated security & compliance benchmarks [3]. We'd love your help & feedback!

1 - https://steampipe.io 2 - https://steampipe.io/docs/develop/overview 3 - https://hub.steampipe.io/


GoAccess: https://goaccess.io/. I don't miss Google Analytics at all.

Loom. It's not open source I don't think but I'm digging it and excited when a public domain competitor comes out.

Our https://scroll.pub/. It's far beyond markdown at this point. I am able to not only write better but also maintain thousands of pages of content by hand (well, most of the credit for that belongs to Apple M1s, Sublime Text, git, MacOS, and Github). The stuff we are doing with it now would just not be possible with anything else, and what we're coming out with next year is super exciting. It's all public domain.


+1 to moto.

Does anyone know of a similar library for GCP? Searched and not been able to find anything and I miss it dearly


ChangeDetection https://changedetection.io. Self-hosted website change detection.


* https://virtualenvwrapper.readthedocs.io

also alias to create jupyter kernel for activated environment:

    mkkernel() {
        if [ -n "$1" ]; then
            KERNEL_NAME=$1
        elif [ -z "$VIRTUAL_ENV" ]; then
            echo "Pass either kernel name as argument or activate virtualenv"
            return 1
        else [ -z "$1" ]
            KERNEL_NAME="$(basename $VIRTUAL_ENV)"
            echo "No kernel name provided, using name from virtualenv $KERNEL_NAME"
        fi
        pip install ipykernel
        python -m ipykernel install --user --name=$KERNEL_NAME
    }


Cleanshot X

I'm a product designer. I spend a significant amount of time taking screenshots—dropping them in Figma, slacking them to PMs and annotating them for engineers. The tool keeps screenshots suspended on your desktop until you decide what to do with them—save, annotate or copy it to clipboard. It doesn't save the screenshots if you don't want it to, so it prevents a ton of clutter.

Not to mention it has video recording that I frequently use to create video walkthroughs for features I'm working on.

The tool is a pretty expensive Mac App, but worth every penny.

https://cleanshot.com/


It’s part of the SetApp package, which is only marginally more expensive than just a cleanshot sub. Highly recommend, you get dozens of neat little productivity apps with it.


No video recording but Skitch https://evernote.com/products/skitch is still my screenshot tool for Mac. Just don't login with any Evernote account (I don't use Evernote) and you are fine. Free


JetBrains software.


Specifically CLion's excellent code browsing features. It's the only thing between me and insanity when I have to "quickly" patch a binary with source code spread out over 1000+ files.


Especially local history - being able to go back in time before any commits were made saves you rewriting code or having to remember what something was doing before.

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.


XDebug in PHPStorm. Can't live without it!


https://grep.app/ and https://cht.sh/ for quick reference.


I very much agree with cheat.sh! I just do curl cheat.sh/X instead of X --help and then man X and then the search for "how to do y in X"


Assuming python sqlite is being dumb with regards to transactions and functions and that simple optimizations aren't just futile efforts from ignorance and narcissism has saved me 100s of hours in runtime alone.

Also the commonality of fast networks really hit me this year. I was using free wifi at a small coffee shop in Tokyo and was transferring files to my apartment in Los Angeles at ~20MB/s. That's faster than my local LAN was 15 years ago over 5,000 miles of ocean, so cheap that they give it out for free if you buy a coffee. Absurd


During my freshman year of college, I was in a general chemistry class. Halfway through the semester I wrote a little Python script that encoded mass of a whole bunch of (not all of) elements and wrote some functions to calculate mass of compounds plus a few other useful quantities. Homework was online so I didn't have to show work - I would just type in the compound and whatever I wanted to calculate. If not 100 hours, it saved quite a bit of time!


Windows. I used Mac OS X a few years. But in my opinion Mac OS X is (or was, back in this time) PITA. Switching back to Windows has definitively saved me hundreds of hours!


That is so strange. I worked in a mixed shop and all of us OSX people laughed our butts off when we did zoom and screen share with Windows guys as they took forever to do stuff we did almost instantly. I used Windows side-by-side with OSX for years and had nothing like your experience.

But, good on you. It's nice that you found your niche. If you ever are forced to switch back reach out. I have a lot of good techniques for fast and pleasant OSX.


That sounds so strange...

I use Windows every day, and I know shortcuts and tools for many things.

But for work I use Ubuntu, and for writing code it is a much more efficient environment.

So it is actually hard to imagine an environment less productive than Windows.

Now, if your work is done in Office (which I only use to write emails), or Photoshop, then I understand. But I am still intrigued.


Flying Logic

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.


Out of interest how do you run most of Observable locally?


I followed the instructions at Quarto.org, integrated with VS Code. So they are text documents stored locally. I didn't realize observable-cli was open source.

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.


clickhouse-local[1] saved me countless hours.

I'm using it for format conversion, data processing, querying external data, as a calculator, etc...

  clickhouse-local --input-format Parquet --output-format JSONEachRow --query "SELECT * FROM table" < data.parquet > data.jsonl
  
  cat books.ndjson | clickhouse-local --query "SELECT author, avg(rating) FROM table GROUP BY author"
  
  clickhouse-local --query "SELECT * FROM url('https://datasets.clickhouse.com/hackernews.native.zst') LIMIT 10"
  
  $ clickhouse-local 
  ClickHouse local version 22.13.1.1.

  milovidov-desktop :) SELECT extractTextFromHTML(*) FROM url('https://news.ycombinator.com/', RawBLOB)
  
[1]: https://clickhouse.com/docs/en/operations/utilities/clickhou...


Vim, and it probably saved me way more than 100 hours. I use for coding (C++/JavaScript), for writing academic publications (dissertation/papers) and for writing e-mail (through mutt).

I've used it so much that it is second nature at this point, and moving to any other editor without my ever growing set of macros, etc would significantly impact my productivity.


* text-based ERD diagram: https://quick-erd.surge.sh with cli to auto generate incremental knex migrations

* array-like proxy-based ORM: https://www.npmjs.com/package/better-sqlite3-proxy the schema and typescript definition can be generated from erd text in above format

* a composible and typescript-friendly json parser for data validation: https://www.npmjs.com/package/cast.ts

I'm not sure if they save 100 hours but they're definitely timer savers for me as an educator that need to create lots of web projects frequently.


Docker. Shipping every single script along with all dependencies saved me from hundreds of hours of fixing stuff after updates. And I don't mean production stuff, just helper scripts and programs that I'd normally use a few times a year and which don't need the latest security (let alone feature) updates.


Red Gate's SQL Prompt for SQL Server Management Studio. Saved countless hours in very small increments: https://www.red-gate.com/products/sql-development/sql-prompt...


the moonlander keyboard and its customization software have been my biggest time saver this year. it's worth the hype, the price and the time investment learning to use it effectively. 100 hours maybe... but I bet I've saved 100 miles of finger travel distance and half a million key presses by now


For me, Docker and Terraform. Packaging software easily and swapping it without too much hassle has saved me hours of pain.

Same with Terraform. The provider ecosystem is so extended that you can just grab them and make infrastructure rapidly, instead of using some cloud-specific language and syntax


I'll join those who benefit from personal workflow automation. I use

BASH Alfred Applescript NodeJS bbedit

in a zillion combinations to make things fast and easy. I have a bad memory so I have tons of BASH aliases and .bashrc terminal reminder files. I use Alfred, for example, to record 'time clientA 1 do an hour of work' in a tenth of a second. I use Alfred and AppleScript to shuffle windows around as I focus attention or finish things. bbedit's find/replace/regex stuff is better than anything I have ever seen. I use it to munge files in crazy ways. I have a set of files that act as a NodeJS ad hoc workspace. (Need to change the GUID on the records in a tsv file? Not a problem.)

And when I do something that has ongoing value, Alfred and/or bbedit give me a way to add them to the toolkit.


BetterTouchTools and Karabiner Elements for macOS.

With a swipe of four fingers, I can turn a set of windows into a tiled configuration by "shoving" them where I need to go.

When I press Caps Lock, which I've rebound in Karabiner to F16 and then bound F16+various modifiers to Activate/Hide Application in BTT, I can switch between IntelliJ, Chrome, Figma, Slack, Notion, so fast that I feel like I have 3x as many monitors as I do - which, whether paired with actual monitors or on the road, is absolutely game-changing.

Knowing that I can context-switch immediately and get everything I need on screen, just so, lets me wear a lot more hats than I otherwise could have. There's an argument that I'm able to deliver results at a level as if I had 100 more hours every month!


I used better touch tool for some shortcuts and trackpad gestures, but never fully used it's power. Recently I had a problem that one of my monitors connected somewhat late and all my windows were out of place. Thanks for saving my time mate, the restore window layout thing is truly magical


TablePlus for dev and prod database stuff. Easy as hell, worth the cash.

ChatGPT at it's worst saves me an hour a day.


What do you use chat got for, I could definitely benefit from an extra hour


I have an extremely useful (for a very specific need) vba module collection for excel spreadsheets - I have often considered rewriting in an app, but the graphing outputs always kill my interest. I use it whenever I’m working after 20 + yrs , there are now a few proprietary packages that do the same, but are very easily misused, so even I use them for clients I still work from my own rather archaic vba assisted spreadsheet. I used vba because the calculations I was doing simply exceeded the abilities of spreadsheets - too many lines, it’s was an unusual discovery when I realised that my spreadsheet wasn’t fully evaluating the data set - handling just numbers and a vba module has never presented a problem.


Don’t know if this has been mentioned yet — for those dealing with tabular data I highly recommend visidata— you can just “vd file.csv” and it shows you a table view in your terminal, with lots of super useful keyboard actions to sort, move, filter etc.


Highly recommend this as well, it has been a godsend for me for digging into multi-GB Cloudfront log files and extracting stats and patterns.

There is a good (albeit a bit old now, as the interface has been overhauled since) quick demo video from VD's creator : https://www.youtube.com/watch?v=N1CBDTgGtOU


bourne shell (now bash) has saved me tons of time. It's ridiculously easy to glue stuff together...like migrating 10k videos from one video CMS to another, with custom fields etc. How do you drive that? bash scripts driving node, curl, and a few other programs.


tmux. I only discovered it in the last several weeks so it hasn't saved me 100 hours yet, but it very clearly will. It has completely changed the way I work. Now I mostly work with just one large terminal window and I hardly ever touch the mouse anymore.


Password managers, specifically Bitwarden (because it's free) and previously used Lastpass.


All of these programs are so interesting they will cost you 200 more hours than you saved.

Call it carvkings law.


http://freedom.to

Block websites so you can focus on work. Different blocklists and different sessions makes it easy for me to stay focused during the week. Best investment in myself I ever made.


good idea. FYI you can also `sudo vim /etc/hosts` and map any websites to 127.0.0.1, effectively blocking them. Your comment inspired me to do that thank you!


JASC Paint Shop Pro 7.04 from 2001. Still by bitmap editor of choice. Unfortunately all versions after that were crap and the 7.04 lacks alpha channel support when copying to or pasting from the clipboard. But man, am I fast with that tool.


clickhouse-local is a really good tool for analyzing local data, as it supports a wide range of data formats and it's really fast. It can save you a lot of time, because there is no need to install a batch of packages to use it or setup a database server. Just download a binary/install one package and enjoy. It has developed rapidly in recent years and continues to improve. https://clickhouse.com/docs/en/operations/utilities/clickhou...


VSCode / IntelliJ / Netbeans / Eclipse - it is crazy how much time a decent IDE with refactoring support can save. (And still many on HN hate on them. I am fairly sure that for most people that spend lots of time on vim had spent as much time as they spend to get good at vim at learning and customizing a normal, good IDE, they'd have much better return on investment.)

Git / SVN / CVS - never having to worry about if I can undo my way back to the last combination of files that worked its a superpower that we mostly take for granted, but I was over 20 when I learned it.

JUnit - again, being able to experiment fearlessly.


The combination of TypeScript, VSCode and GitHub Copilot is just a joy to work with.

The are valid criticisms of Coplilot around copyright but I'm not using it to generate whole algorithms. It just knows your code and what you are trying to do.


Exactly. Anyone who has worked with Copilot seriously knows that generating whole algorithms is not what you actually use it for. The things Copilot generate and autocomplete for me are unique and tailored to what I'm trying to do, completely based on the context of the code.

Sure, you can bait it into reproducing stuff but why bother? Considering how convoluted it is to trick it you might just as well copypaste the algorithm straight from the repo. I almost find the discussion irrelevant because of how detached from reality it is.


PHP Propel 2.0

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/


Probably showing my age here, but their database:reverse feature just blew my mind.

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.


It just works :D

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.


RipGrep has been a huge time saver. I work in huge legacy code base. Lots of modules, lots of content, lots of scripts. Sometimes I can just go to parent directory with all repos and search with RipGrep if ever needed.


Mailstore. It's an email archiving program, and saves a ton of time in searching for emails at our company by allowing you to search all emails in every email address for what you're looking for.



McFly[1] is a terminal history search replacement that is more context aware. The only downside is I am probably not memorizing the commands I use as much as I should.

Flycut[2] has certainly saved me a lot of time and changed the way I write code. Have a good clipboard history has really changed my flow.

[1]: https://github.com/cantino/mcfly [2]: https://github.com/TermiT/Flycut


Ministry of Flat. http://www.quelsolaar.com/ministry_of_flat/

Automatic UV unwrapping.


On my work there is a utility that sends my shell history from all my terminal sessions and pcs to centralized database as I run commands, enabling search and cross reference. That saves tons of time. I haven’t bothered to set similar things for my personal use but I’m sure they do exist too.

Tmux + tmux continuum is another utility that saves many hours. I use it only on remote machines though.

Ffmpeg cli for fast lossless cutting of video. (Apparently there is nice gui for that, never tried though)


Dual-pane file managers like Midnight Commander. Been using these since the days of Norton Commander on DOS; I even wrote my own for Unix/DOS in those days before Midnight Commander came out and I got lazy (https://github.com/gramster/gc3). I would live in Midnight Commander if not for the constant “the shell is already running a command” bugs.


Mobile app build/deployToAppStore automation: https://github.com/fastlane/fastlane


Emacs (with evil). Macros save my life. Pressing some keys, I can modify large blocks of code in complex ways. Other way, I would need to write some python script.


I would say NetNewsWire or any RSS reader.

The idea of having all news (Youtube, Twitter, blogs etc.) centralized in one app saved me a bunch of seconds every day looking for new content.


Automa [0] is just another no-code extension to automate web browser. I used it to scrape excel files from the website of an open-end fund, which does not expose public API for its daily NAV historical data. This extension not only saved me time to manually point and click 1000s of url, but also give me a reason to procrastinate teaching myself selenium.

[0] https://www.automa.site/


Terraform: mainly because my organization used to make everything manually, using boto3/sdk scripts, and poorly tested/constructed cloudformation templates


While not perfect, `terraform plan` is a massive time saver. A lot of IaC tools still don't have good (or any) support for "dry runs" and provisioning a bunch of infrastructure to see if your thing works is really slow


100%, `terraform plan` is such a useful time and cost saving step when developing terraform.

Ive read about pulumi and casually used it (python) to learn about it. Benefits like taking advantage of proper python language niceties, like running pytest on your IaC.

Additionally, it uses terraform's providers behind the scene, both contributing their success to the other.


bash_completion: I can imagine life without it. It's got a pretty nasty api to set it up if you have to but most things are done for you.

If you create your own clis in the format

    appname mainoperation flags args/files
writing bash_completion scripts is easier.

I believe git, yum, apt clis are popular for this reason.

I can't imagine the amount of time wasted if bash_completion didn't exist. I would have probably wasted 10000 hours writing guis.


The jetbrains IDEs for various languages, but especially CLion and PyCharm.

Beyond Compare, to compare differing versions of large codebases, which - for reasons I won’t go into, are just stored in filesystems, rather than accessed via some version control platform like git.

Sublime Text, because multicursor, and fast searching of large codebases, the ability to edit everything, the plugin api, and just blazing performance on massive codebases.


Gong.ai - transcribes Zoom and Google Meet calls with very high fidelity, and identifies which callers are talking and suggest tips to your sales, customer success, and demo staff on how to improve their presence in online meetings and phone calls. https://www.gong.io/product/

This is the SaaS I'm most excited about this year.


Very useful yet very expensive. Someone will build the personal/SMB version at some point.


I sometimes use whisper to transcribe videos or audio to text. Works good and it is free.


Flexelint. The compilers have gotten better over the years but I wouldn’t consider doing C/C++ development without it.

It has saved me hundreds of hours of debugging since I first started using it in 1990. The very first day it found a ‘write past end of array’ in some code written by a Pascal programmer which was doing a[sizeof(a)] = ‘\0’; that would have stymied us for days.


To generate some stats for insight on a legacy project: Grepping logs with ag/rg, piping into sed/awk/cut, and then into wc


I came in looking for awk in the list to upvote. By far awk has saved me the most time. I have used it for everything from parsing EDI documents to making simple shells for managing processes.

I just used it to create a bit over 2000 data transformations and wrote another awk script to tie them all together. Yeah I did in hours what would have taken a week in the GUI and changes will be able to be made in minutes instead of days. Plus it saved my wrist from the pain of clicking a mouse thousands of times.

To be fair you can do the same thing with any programming language but awk just has the least friction for me.


For me it was definitely Emacs and ORG mode. I use this combo to create presentations (pdf + reveal.js), write notes (org-roam style), do project management (ORG mode at its best), collect small code snippets (literal programming in ORG mode), almost everything...

As for a large code base I found ripgrep + rg.el (the interface in Emacs) to be pure gold!


Not exactly a program but Postgraphile saved me a ton of time to write an API. All things considered probably way more than 100 hours.


I am going to go with https://github.com/unoplatform/uno (cross-platform UI for anything from Linux/Windows/Mac on desktop, iOS/Android, or Web. Kind of like Flutter, just for C# devs.


For me it’s github copilot. It produces bad code frequently and often code that looks good at a glance, but is bad. So I treat the output with extreme prejudice. However, I think it saves me a few hours a month on average. Maybe not 100 in a year, but in two or three years, certainly. It saves me much more time than my IDE does (JetBrains + vscode).


JetBrain's rename functionality might save you that much, when it needs to touch lots of places, compared to a more naive rename.


Their rename functionality definitely saves me time, but I’d guess maybe only about half an hour per month on average.

It saves you more in stronger typed languages and if you rename things across files a lot. I work on smaller code bases.


Switching to Vscode saved me a lot of time, especially the multi cursor behavior. I was using VIM, Tmux and iTerm before. Remote development is a breeze, connections and sessions are never lost. Many extensions get better and better, even a hated maintenance task is easier if you have a nice and easy language integration.

Docker, but these days I take it as granted.


CUE Lang (https://cuelang.org/) for me. I had to build this massive clinical data collection system in REDCap and it's kind of a nightmare system to use.

So I wrote a script in CUE to programmatically build my REDCap data dictionary to support flexible inputs.


I’ve found Wallaby (https://wallabyjs.com/) to be a great addition to my tool chain over the last year.

It is an automated test runner for JS / TS code with a great integration with ides. It has made writing tests and refactoring so much more productive.


K9s - https://k9scli.io/ Terminal (ncurses?) Kubernetes client

Bash “wait” command to do multiple things in parallel without extra _stuff_. Eg

    (
      dothing.sh &
      slow_stuff.sh &
      more.sh &
      wait
    )


I have used this software for almost 2 decades. I find it incredibly helpful on Windows computers as an alternative to Windows Search. I think of it as Grep with a UI.

https://www.mythicsoft.com/agentransack/


Great question, have enjoyed reading answers. For me, a clipboard manager has easily saved me 100+ hours of work time (I use CLCL and Clipy). A close second was upgrading my hardware - image editing which previously took minutes on my 2014-era machine now takes seconds.


ZTreeWin - http://www.ztree.com

This is a updated win32 version of XTreeGold if anyone ever used that back in the day. Allows many file system operations (view, copy, sort, tag) based on keyboard shortcuts in a text-console view.


AHK - Auto HotKey

https://www.autohotkey.com/

It’s really a time saver as a launcher, running little scripts, asking input and doing whatever after works, calling native DLL Windows functions…. It’s a big helper of your own workflows


Emacs (use it for everything important)

QMK (keyboard's firmware, helps me do things an order of magnitude faster)


A good Password Manager - doesn’t matter which.

Helps avoid password resets and makes logins in apps much easier.


Clojure. Some many Clojure libs, and state-of-the-art Java libraries available through interop.


Sorry to talk shop:

* All time King keeps on giving: MS Excel

* MS Visio… last good Sequence Diagrams etc

* Adobe Illustrator… keep visual scrapboards

* Perl one liners with cygwin getclip/putclip

* DBeaver SQL gui

* StreamDeck with Autohotkey custom actions

* SimpleNote - your notes everywhere when you need them for creation, reference and search


FSearch is a fast file search utility, inspired by Everything Search Engine.

https://github.com/cboxdoerfer/fsearch


Everything Search by Voidtools.


Woah, this is a blast from the past. I switched over to Mac a few years so I can't use this anymore, but this was my favorite piece of software from a prior job when I had a PC. This thing completely changed how I thought about performance and speed in software. I know there's the old adage about avoiding "premature optimization", but occasionally you use something like this that leaves your jaw on the floor in terms of what hyper-optimized software is capable of.


Kanmail.io for managing your Gmail in kanban board style https://kanmail.io/


Windows: Fluent Search. Blown away it's not a part of Windows - https://fluentsearch.net/


vimv

You invoke 'vimv' in a directory and the resulting editor is a directory list for your pwd ... and you can edit it as a text document.

When you save and exit, all of your file (re)naming is committed to the directory.


https://github.com/ivanmaeder/vimv

100%. I use this every day, esp. when editing my music library.


Yes! My music library is, indeed, where I use this the most.


How does this differ from vidir? Anyone know?


Not at 100 hrs yet but fastlane is getting there.

I set it up for making screenshots, building, sending to slack & submitting an app to App and Play Store. Saves time by minimising boring work, double win.


Obsidian!

My new job is a matter of surviving a TON of information sent by a ton of different people each day. And Obsidian has been the tool to organize that information deluge.


make, dbx, vi, sed, awk, cut, paste, (s)diff, (f/e)grep, comm, sort, col, column, bash, csh, ksh, man, find, cvs, svn, date, f77/xlf, cc/xlc, bcc, TeX, ghostview


I'm sure both vim and the Glasgow Haskell Compiler have saved me hundreds of hours. One puts the text in the file, and the other makes sure the text makes sense.


I used Dynobase for roughing out a DynamoDB project this year. It's the best and only real GUI for DynamoDB at this point. Many, many hours saved.


macOCR, a tool to get any text on your screen into your clipboard.

It could be an image, some app or website that has disabled text selection, a pdf, image based email signature etc. I made this for myself, copying text out of everything, it turns out a few other people also like it...

https://github.com/schappim/macOCR


Tableau Data Prep. It is a powerful tool that can save many hours of tedious data preparation work. It has a nice interface and comparatively fast.


One note, dump info once and search later, never fails



Years have passed, but so have many 100's of hours. Looking back, Borland Sidekick was a major productivity booster for MS-DOS.



Airtable has allowed my team to save 100s of hours. Excellent tool for adding a little structure and automation to adhoc workflows.


https://ninite.com has saved me well over that over the years.



Git. Github. VSCode. ASP.NET. Vercel/Netlify. The CPanel thing that comes with free hosting. Wordpress.


ddterm (a quake terminal for gnome) is my favorite time saver. f1 dropdown, open a bunch of tabs and run mosh terminals for managing remote servers, name them appropriately and the spaceship is ready. Any time I need to access a remote, I press f1 and switch to its tab within seconds.


macOS and its integration with mac touchpad. I used Windows and Linux on several laptops and none was so well designed to switch between desktops and searching for windows. Ah and M1 speeds (unless you count updates and installing Xcode but you can't have everything).


Q research software. Best survey analysis tool I’ve used by far. Saved way more than 100 hrs vs spss.


Conversely, what has cost you at least 100 hours?

Hacker news is software that definitely took at least that for me!


It gives and takes — I learned about CUE and Svelte through HN which have probably saved me hundreds to maybe even thousands of hours, so it's a net win for me!


xdotool, definitely program that required me 10000²² hours : firefox, thund' and gimp+blender


sed(100+ hours), vim(1000+ hours), perl(10,000+ hours), emacs, jq, XML::Simple(Perl library), javascript console in browser, Ctrl-R(bash command)

If you know Perl you get instant access to many many powers which you otherwise have to use 10s to 100s of tools to get it done.


warpd avoided me spending a lot of time going from the keyboard to the mouse,for simple point and clicks. Honestly it is super useful.

https://github.com/rvaiya/warpd


Wut? Bind9 named daemon should rank at #1.

I don't know of a better, easier, and faster productivity tool.


rust-analyzer, if that counts


Shell productivity tools like fish, fzf and z.

Feels like doing parkour on the command line!


miniforge, no need to deal with conda environments anymore. https://github.com/conda-forge/miniforge


Autohotkey beats them all (IMHO)! Hundreds of hours saved per year.


Coherence https://docs.withcoherence.com/

we're saving our customers (and ourselves) hundreds if not thousands of hours by not having to write and maintain glue code for their dev tools


Workflowy for task management.

Made me more efficient, must have net saved me 100 hours.


systemd-nspawn, f that hype train around over engineered container solutions.

Also WireGuard. Who has the mental stability to setup OpenVPN or similar these days, even with things like Openswan? Yuck.


Dash for Mac and Vs code


termius - new terminal app. I can save hosts, chain together hosts and then easily connect. sftp built right into it. honestly, it feels like cheating in terminal.


GCC saved me from thousands of hours writing assembly code ...


If you're OK with cloud services, you might consider using godbolt for your assembly-generating needs. It's polyglot, and you can easily copy paste its output into ed or notepad.


NameMangler (OS X) - renames files in all sorts of ways!



docker compose is like using cheat codes


- Listary: a launcher (double press crtl to open)

- silversearcher ag

- total commander

- Obsidian

- chrome extension: "I don't care about cookies" will remove all the annoying gdpr cookie popups.

- espanso : highly customizable text expander (eg type :myip to replace it with your current ip using your fav scripting language)

- sqlyog : sql client with awesome power features I never seen before: eg schema and data comparision between 2 db sources.

- manictime: a time tracking software which also takes screenshots. You can then go back and see what you did and how long.


Excalidraw (paid edition) Autopilot


iOS "focus" and "screen time" features


github copilot


good ole find, grep, sed, and jq.


fzf!!!


I've easily saved 100 hours already using ChatGPT. If you haven't heard of it already, this is, in my personal opinion, superhuman general AI with almost no limitations except that it might not be free forever and it likes to stay SFW. For example, if you ask it to list "What pieces of software that most users don't use is most likely to save me 100 hours - keep your answer brief and specific" you get the response at the bottom. Interesting answer that opens the door to more specific questions. If you want to achieve a task quickly, just ask ChatGPT how to do it. Give plenty of instructions on the kind of response you're looking for.

Here's a specific example of how ChatGPT has saved me time: I asked it to make some text I wrote shorter and more likely to succeed, and it suggested eliminating the entire second half of it as it takes away from my point and isn't likely to achieve the result I want. That actually ended up saving me the work associated with the entire second half of my proposal.

Others have had it make recipes and meal plans, by just listing what they had at home and asking it to list recipes using those ingredients. It is superhuman in many of its abilities.

I would write a caveat but don't feel like it. I'll just ask ChatGPT: "I consider you almost superhuman but in no more than 15 words summarize the caveats or ways in which it would be wrong to consider you superhuman. Be extremely brief and specific, get right to the point."

it's answer: "I am a machine learning model and not a human."

So, there's your caveat. It's a machine learning model and not a human.

---

*

[Prompt: What pieces of software that most users don't use is most likely to save me 100 hours - keep your answer brief and specific.]

It's difficult to determine what specific software may save you 100 hours without knowing more about your specific needs and workflows. However, here are a few suggestions for software that may be helpful in increasing efficiency and saving time:

Task management and productivity software: Tools like Trello, Asana, and Todoist can help you organize and prioritize your tasks, set deadlines, and track progress. These tools can help you stay on top of your work and reduce the time you spend on tasks that don't align with your goals.

Text expansion and automation software: Applications like TextExpander and Alfred allow you to create custom abbreviations that expand into longer phrases or blocks of text. This can save you a significant amount of time if you frequently type out the same phrases or long emails.

Text and code editors: Advanced text and code editors like Sublime Text, Atom, or Visual Studio Code can save you time by providing features such as syntax highlighting, code completion, and project management. These tools can help you write and edit code more efficiently and make it easier to navigate large codebases.

File management software: Applications like Hazel and Dropbox can help you automate file management tasks, such as organizing and renaming files, and keeping your files synced and backed up. This can save you time and reduce the risk of data loss.

It's important to keep in mind that the software that will be most helpful in saving you time will depend on your specific needs and workflows. It may be helpful to spend some time identifying the tasks that take up the most time in your work and looking for tools that can help you streamline those processes.


I don’t know how useful this reply is. Essentially everything it suggested is not “software that most users don’t use” (which is what was requested). It just a list of really common software, with lots of fluff text. If you knew nothing about software, this list could be helpful, but otherwise this reply is not good.

That being said, I find ChatGPT really useful for generating basic code samples. It can replace basic uses of Google and Stack overflow.


Try telling it your workflow and ask what might save you time, since half of its answer was that everyone's workflow is different. You might be surprised at what it knows or can suggest for you.


It requested my phone number to register. At least google search doesn't ask me for that - yet. Even though they would balk if I am using a VPN - they really want to know my real IP address.


If it's any consolation, OpenAI's stated goal ( https://openai.com/about/ ) is "OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity."

Specifically:

"OpenAI’s mission is to ensure that artificial general intelligence (AGI)—by which we mean highly autonomous systems that outperform humans at most economically valuable work—benefits all of humanity.

We will attempt to directly build safe and beneficial AGI, but will also consider our mission fulfilled if our work aids others to achieve this outcome."

They have a charter here: https://openai.com/charter/

At some point they may remove this, specifically the way Google removed "don't be evil" from their goals. You may want to set yourself an alert for when OpenAI removes its curreent mission statement "Our mission is to ensure that artificial general intelligence benefits all of humanity"

Until then they're as safe as any private company that answers to shareholders. You can give them your phone number and real IP address, but be careful about not using it for anything they wouldn't like. Some people have been banned already. For talking with a chatbot. So use with caution and be amazed.

Here's a preview for you.

--

[Prompt:

Someone is concerned about giving OpenAI, the company that runs a highly intelligent chatbot, their phone number as part of signing up. They would prefer to stay anonymous. Since other companies have been abusive of their customers, perhaps this person is right to be concerned. On the other hand, the OpenAI company might have good, albeit unspecified, reasons for wanting to know someone's phone number before enabling them to talk to a chatbot.

Now give the user two perspectives. In the first perspective, agree with the user that the user is correct: companies should not be trusted with private data they don't need, such as location data and phone numbers. Give the main privacy-related reasons someone might have for not sharing their phone number and agree that the privacy risks outweigh the benefits.

Next, give the second perspective that the user should give their phone number despite the privacy risks. Use whatever justifications you want.]

First perspective:

I completely agree with the user that companies should not be trusted with private data that they don't need. It's important to be cautious and protect our personal information, especially in today's digital age where data breaches and cyber attacks are becoming more common. There are several good reasons why someone might not want to share their phone number, such as:

Privacy: A phone number is a highly personal piece of information that can be used to identify and track an individual. By sharing your phone number, you are giving a company access to this sensitive data, which could potentially be used in ways that you might not be comfortable with.

Spam and unwanted calls: Giving out your phone number can sometimes result in an increase in spam calls and texts, which can be annoying and time-consuming to deal with.

Safety: Sharing your phone number can also potentially put your safety at risk, as it could be used to locate and potentially harm you.

In my opinion, the potential privacy risks of sharing your phone number far outweigh any potential benefits. It's always better to err on the side of caution and protect your personal information.

Second perspective:

While it's important to be cautious and protect your personal information, there may be some valid reasons why a company might ask for your phone number as part of the sign-up process. For example:

Verification: A phone number can be used to verify your identity and ensure that you are who you say you are. This can be especially important when signing up for certain services that require a higher level of security, such as financial or healthcare services.

Customer support: Having a phone number on file can also be helpful for customer support purposes. If you encounter any issues while using the chatbot or have any questions, the company will be able to easily reach you to provide assistance.

Marketing: A phone number may also be used for marketing purposes, such as sending promotional texts or notifications about new products or services. While this may not be appealing to everyone, it could be a useful feature for some users.

Overall, while it's understandable to be concerned about sharing your phone number, there may be legitimate reasons why a company might ask for it. It's up to the individual to weigh the potential risks and benefits and make the decision that's right for them.


fzf


cheat.sh




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: