
Ask HN: Programs that saved you 100 hours? - zJayv
I learned about a ton of useful CLIs, desktop apps, and SaaS products from this thread (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13887237" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=13887237</a>).<p>But it was posted 3 years ago, and perhaps some useful stuff has emerged in the interim, hence my starting this thread.
======
dceddia
The Z command line utility has saved me a ton of time. It remembers the
directories you’ve visited and lets you jump to them with just a few
characters. Almost like Chrome’s autocomplete for recently-visited directories
(if you’re used to being able to type “g” to go to gmail or “n” for
“news.ycombinator.com”...). For instance I can run “z B” and it’ll jump to my
~/Business directory (and “z ss” would do the same).

[https://github.com/rupa/z](https://github.com/rupa/z)

~~~
lloeki
I prefer my own kd, which is 40 dead simple LOCs of shell and is predictable
since it operates only on dirs you added (which sounds like a chore but is
just fine in practice)

    
    
        kd foo $PWD  # stores as foo
        kd f         # jumps to foo
        kd           # in a Ruby project subdir, jumps up to where the Gemfile is
    

[https://github.com/lloeki/dotfiles/blob/master/shell/kd](https://github.com/lloeki/dotfiles/blob/master/shell/kd)

~~~
lloeki
Just updated _kd_ with a long-time feature I wanted: tty detection!

    
    
       kd f             # => jumps to foo
       echo $(kd f)     # => outputs foo's path
       # some creative, if nonsensical, examples:
       cp some/file $(kd foo)/app/controllers/whatevs
       cp $(kd bar)/Gemfile $(kd foo)/Gemfile
       kd foo && cd app/controllers && cp $(kd)/config/whatever .
    

This is useful and possible because kd's output is stable and predictable: it
always returns the _last_ prefix match of the kdrc file (or, without argument,
the project's top-level dir), and it returns non-zero rc on failure. Plus zsh
will even gladly expand the result on <TAB> for double checking.

------
opwieurposiu
VSCode, and/or Sublime Text have probably saved me a hundred hours I would
have spent waiting for Eclipse to start.

~~~
murukesh_s
Couldn't agree more.. People who say Electron (on which VSCode is running) is
bloated and is slow probably haven't worked on full fledged IDEs using Java..
they consume memory in Gigabytes, are slower, at least appear to be slower,
despite using native UI and takes a lot longer to open.

~~~
luckylion
How often do you open your IDE though?

I switched form VSCode to PHPStorm half a year ago, and while it feels a bit
slower, the improvements are so unbelievable worth it for me. It does have a
taste for memory, but then again, it easily saves me a lot of time each month,
so just throwing RAM at it was a no-brainer for me.

~~~
tracker1
Depends... I'll open/close a few times a day as I touch several projects. I
can use VS Code for everything from db/sql, react, node and c# (.net core)
projects. I also have used it for a little rust and golang.

As to the RAM, it's using around 1.2gb between vs code and the connecting
server (WSL2), multiple isntances vary... but with the number of containers
and VMs I'm running, I'm generally well over 16gb of use, and I have 64gb on
my desktop. So even without VS Code, I have trouble on a 16gb system.

~~~
luckylion
Yeah, IntelliJ-based IDEs are hungry, but even if mobile, I figure I'd just
spend the extra money to get plenty of RAM, it's that good (to me at least).

I usually run 3-5 instances for different projects and it'll hover around 3gb
RAM, but it appears that they share a lot of memory, closing one or opening an
additional project has no visible impact.

------
dorkwood
Everything[0] by Voidtools as a Windows search replacement. It makes search
practically instant.

Now that Windows search often fails to turn up even my most used files (what
happened to Windows search? Was it intentionally nerfed?), Everything has
become a necessity for me.

[0]: [https://www.voidtools.com/](https://www.voidtools.com/)

~~~
jkhaui
Wow, thanks for sharing this.

Also, to second your question: what the hell did happen to Windows search? I
always just assumed I'd done something to break it (and honestly, could never
be bothered trying to "fix" it... even after all these years), but apparently
it's inherently broken.

I know very little about OS software. Could someone explain at a high-level
how something as fundamental as file search can be rendered totally unusable?
Doesn't windows have the best engineers in the world working on it?

~~~
progfix
I also thought I broke something. Since a couple of months it is absolutely
unusable. It sometimes can't even find the calculator or even VSCode which I
use every day.

------
hombre_fatal
1) Any terminal that you can summon/dismiss with a global hotkey. Examples are
Guake for Linux and iTerm2 for OSX. I consider this a must-have for all
developers.

2) Anything that lets you resize/place windows with hotkeys. For example,
Divvy for OSX. Divvy is also nice because if you press the hotkey multiple
times, it cycles the application through each of your monitors. No need to
ever use your mouse to move/resize a window ever again.

3) Fuzzy file search in your editor. You know you want to open
src/components/user.js so you type "cu<enter>" and it appears.

Any tools like this that become so ingrained in your muscle memory that you
just kind of think things ("move this window and then summon my terminal") and
the computer responds.

~~~
pfranz
> 1) Any terminal that you can summon/dismiss with a global hotkey. Examples
> are Guake for Linux and iTerm2 for OSX. I consider this a must-have for all
> developers.

Years ago I saw someone using this (I think it was actually Yakuake) and ran
it for a bit. I really didn't like that it was a single session. However, I
later messed around with tiling window managers (which relates to your #2!)
and having a shortcut to pop up a new terminal is really what I wanted this
whole time.

Just to touch on #3, any time I'm writing a gui that's expected to have more
than a handful of items I push to add a search bar with fuzzy matching at the
top. Otherwise, search would get added after it's used for like a decade and
everyone is immediately enthusiastic and grateful. All of the non-fuzzy
solutions are too pedantic to use.

~~~
tomerbd
when you summon the terminal do you first then need to `cd` into the directory
you need?

~~~
Shared404
What I assume the parent was talking about was the ability to literally just
open a new terminal window with a keyboard shortcut (e.x. Mod-Enter in i3wm).
If that's the case then yes.

While using i3, you can also place a terminal in the scratchpad, which works
more similarly to Yakuake.

------
superasn
I would definitely say PHPStorm. The amount of productivity gains are
tremendous.

A lot of good editors have the issue that they are quite rigid when it comes
to operating between multiple languages. So while your editor may shine at
JavaScript, it won't understand vuejs templates or when you put Javascript
code inside a php file.

This is where PhpStorm really shines. It can even complete your SQL statements
inside php strings or go to a .vue file from a Html tag. I've never seen this
type of understanding from an editor ever.

P.S. My only issue with it is that writing plugins for it is kinda hard. Since
it is so extendable it's only expected that programmers would want to extend
it with their own plugins. And while I have been able to write one plugin for
it I found the documentation and tutorial for writing plugins all over the
place and sometimes very outdated. It is my request if anyone from jetbrains
read it to please make plugin docs more accessible and easier to understand,
esp the testing quickly part.

~~~
LeonM
+1 For JetBrains products. Possibly the only piece of software that I happily
pay the yearly renewal on.

I use PHPStorm and DataGrip on a daily professional basis. I use PyCharm (CE)
and CLion for side projects.

> P.S. My only issue with it is that writing plugins for it is kinda hard.
> Since it is so extendable it's only expected that programmers would want to
> extend it with their own plugins

Out of curiosity, what kind of plugins do you (want to) write?

~~~
superasn
> Out of curiosity, what kind of plugins do you (want to) write?

I wanted to write a plugin to enhance Vuejs (auto import mixins, etc). The
current vue plugin is good lacks a few features which I wanted to fix but I
couldn't figure it out.

There are tutorials done by the Jetbrains ceo himself but I think they are
outdated now. It was supposed to be a fun weekend project but due to the
disorganised nature of the plugin docs I really couldn't make any progress,
especially because i found testing my plugin really hard.

------
Ozlone
\- Emacs (with evil mode) and org-mode. The hours gained far outweigh the
hours put in (and the hours put in were fun).

\- Yabai on mac for not having to think about moving windows around.

\- Pomodoro (now through org-mode) for helping focus (and saving hours, in a
round-about-way.)

\- Removing as much advertising from my life as possible. (Ublock origin,
deleting social networks when possible)

~~~
wwweston
Anyone know what the best way to set up Emacs on macOS is?

~~~
dnhz
I just use this version.
[https://emacsformacosx.com/](https://emacsformacosx.com/) I have a one line
shell script that then lets me start Emacs from the cmd line. something like

    
    
        open -A [path to applications/emacs startup] $@
    

This supports emacs —daemon

~~~
m463
That is what I use.

Additionally in my .bashrc I have:

    
    
      EMACS="/Applications/Emacs.app/Contents/MacOS/Emacs"
      EMACSPOS="-g 140x66+655+23 --fullheight"
      e() { ( $EMACS $EMACSPOS "$@" & ) }
    

I also have it in the dock, but sometimes environment variables are not set up
properly.

For this case, I create a plist file ~/.MacOSX/environment.plist and can add
stuff to it like this:

    
    
        add_plist PATH "$PATH"
    

where:

    
    
      add_plist () {
        /usr/libexec/PlistBuddy -c 'Delete :'"$1" ~/.MacOSX/environment.plist >/dev/null
        /usr/libexec/PlistBuddy -c 'Add :'"$1"' string "'"$2"'"' ~/.MacOSX/environment.plist >/dev/null
      }

------
laurentl
BeyondCompare (cited in the original thread), especially the folder comparison
feature. Saved my sanity when our team's shared directory stopped syncing
silently on my laptop and I had to figure out which files I needed to sync
manually.

WizTree ([https://antibody-
software.com/web/software/software/wiztree-...](https://antibody-
software.com/web/software/software/wiztree-finds-the-files-and-folders-using-
the-most-disk-space-on-your-hard-drive/)) is a freeware Windows utility (man,
typing this took me back to 1997) that lets you quickly see which files are
hogging your disk space. Think "df GUI for Windows". Especially useful to
track down large application files hidden in the depths of system folders.

~~~
j1elo
Meld [0] (written with GTK so available on Windows, Linux, and possibly Mac
but I don't know about that last one) is another tool in the first category.

WinDirStat [1] (Windows) for the second. It is also available in the super-
useful PortableApps format [2], which is always nice.

[0]: [https://meldmerge.org/](https://meldmerge.org/)

[1]: [https://windirstat.net/](https://windirstat.net/)

[2]: [https://portableapps.com/apps](https://portableapps.com/apps)

~~~
Semaphor
WinDirStat is extremely slow compared to WizTree, give WizTree a try :)

------
firloop
Here's a couple (albeit macOS focused) favorites of mine:

\- Deliveries: macOS / iOS package tracking
[https://itunes.apple.com/us/app/deliveries-a-package-
tracker...](https://itunes.apple.com/us/app/deliveries-a-package-
tracker/id290986013)

\- Screenotate: OCR all of your screenshots with metadata like program/webpage
[https://screenotate.com](https://screenotate.com)

\- The Tagger: lightweight macOS utility to tag music / fetch metadata from
discogs [https://deadbeatsw.com/thetagger/](https://deadbeatsw.com/thetagger/)

\- youtube-dl: Download any video / song online [https://github.com/ytdl-
org/youtube-dl/](https://github.com/ytdl-org/youtube-dl/)

It was fun thinking of these, I actually put together a blog post a while back
listing my favorite software. Would love to revisit it soon:
[https://lukemil.es/blog/software-i-like](https://lukemil.es/blog/software-i-
like)

~~~
pimlottc
And for those who don't know, youtube-dl supports many, many other sites
besides YouTube, including Vimeo, TikTok, Dailymotion, Twitch, YouKu,
LiveLeak, Streamable and more.

Full list: [https://ytdl-org.github.io/youtube-
dl/supportedsites.html](https://ytdl-org.github.io/youtube-
dl/supportedsites.html)

~~~
RMPR
The youtube-dl crew really does a good job, when you have an issue with a
supported website, just picking the last commit generally solve the problem.

------
shivekkhurana
Hasura [[https://hasura.io](https://hasura.io)] Graphql API and Subscription
for any Postgres DB

Keycloak [[https://www.keycloak.org](https://www.keycloak.org)] OpenID Auth
Server

nREPL + Cider [[https://github.com/clojure-
emacs/cider](https://github.com/clojure-emacs/cider)] Clojure's Network Repl
and Emacs integration for live coding Clojure

Company Mode [[https://company-mode.github.io](https://company-
mode.github.io)] Emacs autocomplete mode

~~~
aklemm
Fascinating to see OpenID here. Where do you use it? I thought it was pretty
much dead, so implemented IndieAuth recently which does what I want, replacing
OpenID’s functionality.

~~~
tptacek
Keycloak is an IdP. It does everything, including OIDC (which is very
widespread) and SAML. I assume when they say "OpenID", they mean OIDC.

~~~
shivekkhurana
I concur.

------
jldugger
For better or worse, I find GUI git clients to be less useful than the CLI.
But like any CLI tool, it's productivity is limited by your ability to type
without errors. Git has an Autocorrect[1] that will help you out.

> git config --global help.autocorrect 1

Based on bash history data, I've also added a simple alias to my bash config:

> alias gti="git"

[1]: [https://git-scm.com/book/en/v2/Customizing-Git-Git-
Configura...](https://git-scm.com/book/en/v2/Customizing-Git-Git-
Configuration#_code_help_autocorrect_code)

~~~
hiq
"Based on bash history data" is an interesting point, because it highlights
that you can use your history to periodically check what you do inefficiently
in the terminal, and which aliases you still need to add to your config:
compute some statistics on the number of 1-word and 2-word commands you use
the most, and see if they are more than e.g. 4 letters.

With zsh: "history 1 | awk '{print $2}' | sort | uniq -c | sort -n"

With bash I think this should be "history" instead of "history 1".

~~~
m463
I make one change to every new .bashrc file.

I change this:

    
    
      HISTSIZE=1000
      HISTFILESIZE=2000
    

to:

    
    
      HISTSIZE=1000000
      HISTFILESIZE=2000000
    

You would be surprised how useful this one change has been, answering
historical questions easily, like how to generate that rsa key, or what
packages did I install for that project last year.

You can usuall answer questions with ^r instead of the man page. Or maybe:

    
    
      "history | grep -C 10 <foo>"

------
algorithm_dk
The golden recipe: neovim, tmux, rg, fzf, i3/other tiling wm on nixos/arch

Fzf all you can, not just inside vim, but also use it to switch between tmux
sessions in an instant. I have a tmux manager on top of tmuxp that is able to
start / switch to already started sessions via fzf.

Identify patterns you use a lot and make snippets out of them. Create project
templates.

Have a folder where you dump reference / things that need to be really easy to
find, and set up vim to search into that instantly, no matter where you are.

Keep an inbox file to throw things in, make a wm bind a script to prompt for
text and append it there via zenity. Don't throw links into it, it's gonna be
a bookmark dump.

Make sure your todo system is a keybind away at all times.

Review your way of working, challenge, and improve it. Be lazy, but only when
you afford it.

~~~
Kratisto
> Make sure your todo system is a keybind away at all times.

Can you access your todo system from your phone? I'm always torn on this, and
why I keep my todos in google keep.

~~~
bsmith89
I'm using todo.txt via the CLI [1] with my TODO files in a Dropbox folder
syncing it with Simpletask [2] for Android.

[1]: [https://github.com/todotxt/todo.txt-
cli](https://github.com/todotxt/todo.txt-cli) [2]:
[https://github.com/mpcjanssen/simpletask-
android](https://github.com/mpcjanssen/simpletask-android)

------
macobo
[https://fishshell.com/](https://fishshell.com/) for sure

Just having sensible defaults on a shell works wonders on my day-to-day
productivity.

Add a couple of aliases for productivity and off you go.

    
    
      abbr --add s "git status"
      abbr --add gap "git add --patch"
      abbr --add gco "git checkout"
      abbr --add gd "git diff"
    
      alias recent="git for-each-ref --sort=-committerdate refs/heads/ --format='%(color:yellow)%(refname:short)|%(color:bold green)%(committerdate:relative)|%(color:blue)%(subject)%(color:reset)' | column -ts'|' | tac"
      alias r="recent"

~~~
eyelidlessness
I absolutely love Fish, but it's worth warning anyone who's taking a first
look and excited to try it, that some syntax differences from more familiar
shells like Bash may cause frustration, both in terms of muscle memory and
anytime you need to copypasta. It hasn't been enough of a problem for me to
switch back (or to ZSH), the benefits far outweigh the frustration, but I do
think it's worth a small warning.

------
l0b0
Black, flake8, isort and mypy (with several type strengthening flags) have
together ensured that Python editing and code reviews are an absolute breeze.
The structure basically disappears, and all that I ever need to concentrate on
is the actual change.

Sure, you can use your IDE to achieve some of this, but this is where the
80/20 rule really breaks down: since each IDE differs in the details, at some
point auto-formatting the code is going to waste more time than it saves by
having to undo or work around mutually incompatible formatting rules. You
can't reasonably expect everyone to use the same IDE, but you _can_ expect
them to use the same Makefile targets and CI pipeline.

~~~
iamcreasy
Python beginner here. Can you please elaborate on how you use Black, flake8,
isort and mypy for code editing and code reviews?

~~~
l0b0
For sure!

Black and isort complement each other in _formatting_ your code, and both have
flags to check whether they would change anything in your code. You can do the
former either as a script or Makefile target, and the latter in CI to verify
that the code is actually lint-free.

flake8 is your standard linter - it checks for idiomatic Python. I prefer to
set it quite strict, with `max-complexity` starting at something like 4 and
only moving it up if I really can't figure out a way to make the code simpler.
And you shouldn't have to ignore any lints unless there's a linter or
formatter bug or conflict. The only place I've seen this is with E203.

mypy is a tricky one if you're not yet used to Python type hints. I would
recommend starting with no configuration and then introducing stricter rules
as you understand more of them. My current go-to configuration sets all of
check_untyped_defs, disallow_any_generics, disallow_untyped_defs,
ignore_missing_imports, no_implicit_optional, warn_redundant_casts,
warn_return_any, and warn_unused_ignores.

To list all the files in your project tracked by Git (because you don't want
to lint or format any third party files) NUL-terminated (because you want to
handle weird file names) run `git ls-files -z -- '[star].py'`. To instead list
only the files changed from origin/master (your typical target branch for a
merge request) except for those you've deleted locally you can run `git diff
--diff-filter=d --name-only -z origin/master -- '[star].py'`. You can then
pipe the result of either command to `xargs --no-run-if-empty --null black`
and similar. Use the first Git command in CI to lint _all_ the files, so that
you don't miss out on any changes for example when any of the linters change
their rules. Use the second Git command locally to format and lint your
changed code. And make sure you have some way to force formatting/linting
_all_ the code for when you update any of these programs.

Finally, running all the linters as part of a pre-commit hook is a great way
to make sure you never commit broken code. Having a bunch of lint fixup
commits is ugly and counter-productive.

~~~
iamcreasy
Thank you!

------
cgranier
Excel's Power Query just saved my countless hours last week in cleaning up and
merging two huge csv databases.

Learning the YouTube APIs saved me thousands of hours on editing video
metadata, organizing playlists, etc
([https://github.com/cgranier/pytube](https://github.com/cgranier/pytube)).

Everything ([https://www.voidtools.com/](https://www.voidtools.com/)) is a
wonderful file search tool for Windows.

Thanks for all the links and ideas... new things to try this week.

------
ivank
Overcast says its Smart Speed feature has saved me 30 hours (over the last ~5
months), so I expect it to save me 100 hours within a year. It is especially
useful for podcasts and language learning material with a lot of pauses, but I
have become used to it, and so I now keep it enabled for most audiobooks that
I load into Overcast just to get the dynamic playback speed.

~~~
pottertheotter
I'm at 173 hours! I've liked Overcast (I've been a premium customer for two
years), but I find myself wishing it has better features now. It feels like it
was the best a couple years ago but hasn't done much since. Smart Speed is the
one thing that has kept me from switching to something else so far.

~~~
slg
296 hours myself. I have also been pleased with Overcast until just recently.
Now that I am stuck at home, I went from listening to all my podcasts from my
phone to listening to most of them from my computer. Overcast's lack of
desktop app and pretty poor web interface are causing me to consider switching
for the first time.

~~~
hoistbypetard
I don't love its web interface. But its ability to do the smartspeed thing +
sync the played status to my phone for when I move from my desk to walking the
dogs has been enough to stave off the switch for me.

What are you thinking about switching to?

~~~
slg
I haven't yet spent much time researching alternatives. One podcast I used to
listen to is now a Spotify exclusive. I use that to stream music and I really
like how their desktop and mobile apps work together. I was thinking of giving
them a try for podcasts until I realized it didn't seem possible to import an
RSS feed. That would eliminate the ability to listen to Patreon supported
podcasts which is a deal breaker for me.

------
abhijat
Intellij IDEA and Pycharm. The autocomplete, search for symbols, quick
documentation and especially refactoring have saved me well over 100 hours,
especially at work with larger projects.

~~~
arbol
These IDEs are so powerful, I feel like I'm only ever scratching the surface.
Double tapping shift to search for any file in the project is a favourite of
mine.

------
bogidon
\- keeping all your configuration files (“dotfiles”: shell, git, etc) in one,
version controlled place. Makes setting up new machines so much less
stressful. Here are mine in case you’re interested, for macOS and Ubuntu:
[https://github.com/Bogidon/dotfiles](https://github.com/Bogidon/dotfiles)

\- setting up a personal vpn with a reserved IP if you connect to services
that require your IP to be whitelisted and you move often

\- for git cli: dashes take you back to your previous location (eg `git
checkout -` will take you back to the previous branch). On zsh: `cd -n` will
take you to n directories ago

Mac only:

\- the Paste clipboard manager has been a most delightful tool, though I don’t
know if I’ll ever upgrade to the new subscription version:
[https://pasteapp.io/](https://pasteapp.io/)

\- the workflows feature in Alfred.app as a convenient place to keep utility
applescripts / other kinds of little scripts that you want to invoke through
global shortcuts or through Alfred

~~~
AdamGibbins
Alfred has a clipboard manager built in, what does Paste offer over it that
justifies its fee for you?

~~~
bogidon
Mainly iCloud sync, tabs, and larger previews where more than one is visible
at a time

------
perceptronas
\- Windows. By not having to configure drivers and other compatibility
problems which I have on Linux it definitely saved me 100 hours.

\- Listary (windows) Not sure if its 100 hours, but I love its search in any
context of explorer. Default explorer search is terrible IMO. For example when
you open file - you can use search there instead of navigating by hand.

~~~
boramalper
I guess depends on your use-case but I find Ubuntu vastly superior for
development. Perhaps it’s just habitual. :)

~~~
m463
I have to use ubuntu sometimes (18.04) but my personal favorite distro is Arch
Linux.

\- you will run the latest software

\- from the very beginning you are involved and personally responsible for
your machine.

\- the wiki is very well written

\- no periodic upgrade hell, since it has rolling updates (everything is
always updating all the time)

\- if software is not in the repository, it has AUR, which will help you build
anything that is missing

Ubuntu is a necessary evil, but I don't like some things:

    
    
      /etc/default/apport
      /etc/default/kerneloops
      /etc/default/motd-news
      snapd
      unattended-upgrades
      ubuntu-report
      whoopsie

~~~
boramalper
I miss Arch occasionally but I don’t like being responsible for the operation
of my machine; I would rather delegate it to the operating system. ;)

The good thing about Ubuntu is that it’s the default “Linux” (distribution) so
whatever you are looking for, there is likely an AskUbuntu question, a .deb
package, a blogpost, or a mailing-list entry to help.

~~~
m463
I don't know if I agree about software availability if you take AUR into
account.

Also, it is dead simple to make your own PKGBUILD script for arch, but last
time I tried looking into making a .deb my eyes rolled into the back of my
head.

------
stared
Qbserve ([https://qotoqot.com/qbserve/](https://qotoqot.com/qbserve/)) when I
was on macOS, now RescueTime + Custom New URL Tab (Chrome extension) pointing
to
[https://www.rescuetime.com/browse/productivity/by/hour/](https://www.rescuetime.com/browse/productivity/by/hour/),
so I get immediate feedback on my productivity (motivates me to keep moving)
or slacking (motivates me to start working).

I cannot stress enough the word _immediate_. Delayed reports (after a week,
after a day, or whenever I check) sure give a bit of reality-check and insight
on what to change (usually only the first time) but were not useful for
actually implementing these changes. (I have ADHD if that matters. For some
people insight might be enough.)

Qbserve displays constantly the current productivity score. I had a love&meh
relationship with RescueTime (since it does not offer a way to display
productivity tracking all the time), but after composing it with a link to
report on a new tab (my most common way of procrastination), it was a game-
changer.

A small note - if you prefer something more private, and open-source, there is
[https://github.com/ActivityWatch/activitywatch](https://github.com/ActivityWatch/activitywatch)
(I use it as well). Not as polished, but clearly logging well, and it has Web
UI on localhost, thus can be used with Custome New URL Tab as well.

~~~
maccam94
Wow, thanks for the heads-up on ActivityWatch! I used rescuetime a bit a few
years ago, but I really couldn't justify using it on my work machine (where I
spent most of my time).

------
thewisenerd
\- IntelliJ IDEA
[[https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)]
(surprised no one mentioned it yet)

\- Spotlight - for quick calculations

\- Contexts [[https://contexts.co/](https://contexts.co/)] and chunkwm for
window management
[[https://github.com/koekeishiya/chunkwm](https://github.com/koekeishiya/chunkwm)]

\- Maccy [[https://maccy.app/](https://maccy.app/)] for a decent and beautiful
clipboard manager

~~~
drdrey
I feel like I spend all my time waiting for Intellij IDEA to start up and
reindex everything... Does anyone feel like it is snappy?

~~~
thewisenerd
neither of those two actions are "snappy" but I guess its understandably so.

reindex everything should be happening that often unless caches are cleared;
you might want to raise an issue if it's happening more often than you'd
expected

what I'm more bothered by is the regressions that creep in either IDE or
official plugin updates; I've spent some amount of time on every update I'd
deem wasted, just to find a YouTrack issue on it :\

------
fao_
1) Probably not 100 hours but, terminator is very, very good:
[https://blog.al4.co.nz/2011/05/getting-the-most-out-of-
termi...](https://blog.al4.co.nz/2011/05/getting-the-most-out-of-terminator/)

The saving layouts feature is an absolute gem.

2) dmenu
([https://tools.suckless.org/dmenu/](https://tools.suckless.org/dmenu/)) is a
lifesaver. I use it even on Ubuntu to launch custom scripts. The autocomplete
is good because unlike when I use alt-F2 I can actually tell if a command is
type correctly or not. Also it's a little known fact but you can type full
commands into it, complete with pipes, and it will execute it. For ages I had
a bind against notify send so I could examine data by doing `Meta-P foo |
show` which would dump it to a notification. Just really useful for getting
data without needing to wait for a terminal to start, just to show you one
thing or value you need for 2 seconds.

3) Also I'll go ahead and plug my filesystem tagger - koios
([https://gitlab.com/finnoleary/koios](https://gitlab.com/finnoleary/koios)).
It has a feature where it will autodetect (using libmagic) the type of a file.

So you can do something like: "tag all the files that have the mime type 'png'
files in the directory with the tag 'png'":

    
    
        koios auto image/png +png .
    

and then "give me all the files tagged with png that do not have the .png
extension":

    
    
        koios show +png | grep -v '.png$'
    

It binds tags to files so there's no background processes or databases needed
(aside from the actual 'tag name' database, which was done to save space), and
you can move them, copy them, whatever, without worrying and the tags stay
bound to the file.

------
dozzman
Probably a given on Mac: iTerm2 Terminal Emulator
[https://www.iterm2.com/](https://www.iterm2.com/)

Less of a given, still Mac: Rectangle Tiling Window Organiser
[https://rectangleapp.com/](https://rectangleapp.com/)

For Linux I would use Xmonad to achieve the same as the two programs above.

~~~
gh123man
I have been using Spectacle
([https://www.spectacleapp.com/](https://www.spectacleapp.com/)) for years
wishing it had mouse driven window snapping. I even once tried to implement it
myself but gave up. I just tried Rectangle by your suggestion and it is
absolutely amazing. Thank you.

------
lintuxvi
Charles Proxy (paid version) No need to insert logging into legacy codebases
with frontend, service, and monolithic backend apps while on local. Just load
up Charles and reconfigure provider URLs to route through the proxy, add a
filter or two, and boom, all comms are visible in one place, easily
searchable, exportable, replayable.

It can be a memory hog when left running ,and I wish I could "pop out"
portions of the UI to reorganize on my screen.

Otherwise, indispensable to my work the last couple of years.

~~~
loftyal
Try proxyman, the UI is so much better

------
yakshaving_jgt
Incremental compilation in GHCi with the -fobject-code flag.

Without this, I might have given up on Haskell a long time ago.

Also Cachix[0], as building lots of Nix packages from scratch takes an awful
long time, especially on my MacBook Air.

Also git, vim, etc.

[0]: [https://cachix.org/](https://cachix.org/)

------
enhdless
For writing HTML & CSS, definitely the Emmet plugin:
[https://emmet.io/](https://emmet.io/)

I still find myself in situations where I need more than Markdown but less
than React; as a result I just need to quickly get some HTML on a page. Emmet
lets you expand a snippet similar to a CSS selector into full-fledged markup,
complete with attributes.

~~~
andrei_says_
For writing and _reading_ HTML, [http://slim-lang.com](http://slim-lang.com)
hits the spot for me.

Elegant, clean, readable, an absolute pleasure to work with.

Compared to it HAML feels exhausting and writing/reading HTML... unacceptable.

------
jftuga
[https://chocolatey.org/](https://chocolatey.org/) \- The Package Manager for
Windows, similar to yum / apt

It has tons of software packages.

~~~
darkmighty
It's got a different philosophy, but I've had a nice time with scoop

[https://scoop.sh/](https://scoop.sh/)

The difference is that it (largely) stays confined within a directory without
even needing elevated privileges and such for installs (which brings peace of
mind for community installs). Repository is more centralized and automated too
it seems.

Not perfect in a few edge cases, like other programs expecting a certain
install location. Overall enormous time saver.

------
kmc059000
NimbleText [https://nimbletext.com/](https://nimbletext.com/) has saved me so
much time. I use it to generate sql from spreadsheets and other one-off code
generation from data.

~~~
voiper1
Oh, I've needed things like that before, but didn't even think to look for it.
I just messed with a full CSV for that. Thanks!

------
laurentdc

        # ci = clipboard in, co = clipboard out
        # xclip so this works in gui apps too
        alias ci="xclip -selection clipboard"
        alias co="xclip -selection clipboard -o"
    

Also: tig, Text-mode interface for git
[https://github.com/jonas/tig](https://github.com/jonas/tig)

~~~
pierremenard
Is that equivalent to `pbcopy` and `pbpaste` on OSX?

~~~
xzel
Those commands aren't exactly the same. These copy what you have selected. You
can use xclip just like pbcopy/pbpaste though. Xclip has a few more features
and you can get it on mac via brew and nix iirc.

~~~
hoistbypetard
The usefulness of xclip is the thing that's currently preventing me from
accepting fedora's urging to switch my default session to wayland.

~~~
opan
I've been on Wayland for over a year and I have had a good experience with wl-
clipboard (has the wl-copy and wl-paste commands).

~~~
hoistbypetard
I will have to try again. Last time I attempted, wl-paste did not work in my
terminal, which fully killed it for me.

------
gitgud
Github actions - Automated builds, testing and deployments. Saves tonnes of
time and allows me to quickly switch between repos with worrying about deploys
and testing.

Docker - Allows reproducible builds and caching, an indespensible and
composeable tool for development.

Shell Aliases - just using aliases for common commands in .bashrc saves tonnes
of time. Even better version control your aliases in a github repo like this
[https://github.com/benwinding/dotfiles](https://github.com/benwinding/dotfiles)

Flameshot and Peek - lightweight screenshot and screen recording tools

Linux - It's difficult initially, but Learning and developing in Linux really
is just faster, easier, and saves tonnes of time, mainly due to the unix
philosophy...

------
pierremenard
Spacemacs! Apart from the obvious evil mode navigation stuff:

\- Magit, to quickly organize hunks into commits and do general git things

\- Org mode, to organize TODOs, thoughts and even draft code snippets and
designs

\- Language-specific layers with great features (usually REPLs, support for
refactoring, autocomplete — stuff you expect from any other IDE).

~~~
JanMa
Definitely agree! I switched to Spacemacs about 1.5 years ago and the increase
in productivity was amazing.

If you work with Git a lot, it's worth looking at for Magit alone. The way you
are able to perform complex tasks with a few keystrokes is a huge timesaver
for me.

~~~
aryamaan
Have used Sublime Merge and GitKrarken for chunking-review-committing for git.

------
keiferski
Bit of a non-traditional answer, but: Spaced Repetition Software generally and
Anki specifically.

[https://en.wikipedia.org/wiki/Spaced_repetition](https://en.wikipedia.org/wiki/Spaced_repetition)

[https://apps.ankiweb.net](https://apps.ankiweb.net)

There are two ways in which it’s saved me hundreds of hours. These are of
course anecdotal, but the science behind Spaced Repetition is pretty solid.

1\. We naturally forget information after a certain amount of time. Much of
this information has to be relearned at some point; I’d estimate we end up
learning the same fact at least a dozen times over the course of our lifetime.
SRS can cut this relearning time to the minimum necessary.

2\. By optimizing for ‘daily maximum possible learning.’ This is related to
the Spacing Effect and it’s a crucial idea underlying SRS.

[https://en.wikipedia.org/wiki/Spacing_effect](https://en.wikipedia.org/wiki/Spacing_effect)

In my personal experience, there is a limit to the amount of information you
can meaningful acquire per day. After that point, it becomes a waste of time
and effort. So, by dividing learning materials into smaller pieces and
spreading them out over time, you can reduce the amount of time needed to
learn them.

This is particularly relevant for useful-but-not-urgent information, like
alphabets or geography. For example, trying to learn and remember the Russian
alphabet in a single day will probably take you a few hours, if not all day.
Learn one letter per day over the course of three months, however, and your
daily time requirement is perhaps a few minutes. The _retention rate per
minute of time invested_ is dramatically higher.

------
nikivi
Karabiner, Keyboard Maestro & Alfred for me. Probably more than 1000 hours at
this point. Need to update my macOS repo with more tools I use now.

[https://github.com/nikitavoloboev/my-mac-
os](https://github.com/nikitavoloboev/my-mac-os)

~~~
Graziano_M
I'm surprised I had to scroll this far down to find this.

I've been using my own version of 'hyper key'[1] for years now. I map capslock
to ctrl (in OSX), then ctrl-space to 'ctrl, command, option' in Karabiner, so
that I have a 'namespace' of my own hotkeys, which I assign to apps in
apptivate[2] to quick switch, and finally I make it so that if I tap caps
without hitting another key, it actually hits escape. I use a two-button combo
for hyper instead of just capslock so that capslock on its own is just ctrl,
and I can use all the default readline shortcuts.

[1] [https://stevelosh.com/blog/2012/10/a-modern-space-
cadet/#s14...](https://stevelosh.com/blog/2012/10/a-modern-space-
cadet/#s14-hyper) [2]
[http://www.apptivateapp.com/](http://www.apptivateapp.com/)

------
shriphani
fasttext : [https://fasttext.cc/](https://fasttext.cc/)

I am a hobbyist NLP researcher and have published 4 papers in the last year
just thanks to this library and the many life-saving tweaks. Honestly a world-
class effort from the team at Facebook.

~~~
enjoyyourlife
Seems much more comprehensive than GloVe
([https://nlp.stanford.edu/projects/glove/](https://nlp.stanford.edu/projects/glove/))

~~~
shriphani
it is a lot more comprehensive and it is _fast_. Text classifier with millions
of documents done in 5 - 10 mins on normal hardware.

------
notduncansmith
On the Mac:

\- Alfred App - helps with tons of things, but the clipboard manager alone has
saved me over 100 hours

\- iTerm 2, especially with a global hot key (and Guake on Linux before my
first Mac)

\- Prettier on npm (auto code formatting tool, like gofmt)

\- Jumpy on npm (my own CLI bookmarking tool, makes it easy to hop around
directories)

------
sooheon
Launchbar
([https://obdev.at/products/launchbar/index.html](https://obdev.at/products/launchbar/index.html))

Spotlight on steroids, along the lines of Alfred and Quicksilver, but the best
of the bunch, imo. It's a frecency based fuzzy matching searcher that adheres
to subject - verb - (optional) object grammar, and using it feels like a
global GUI terminal. A new mac without it feels completely gimped. Things I
use it for:

\- quick launch/switch apps

\- browse filesystem (like
[https://github.com/ranger/ranger](https://github.com/ranger/ranger)) and do
anything with item

\- take selected item (file, folder, url, text) -> open with X, send to any
search engine, move, copy, rename, start composing email with text, compress,
basic text munging, etc.

\- calculator

\- clipboard and snippets manager (incl. variables like current date/time)

------
amirathi
Quill[1] editor has saved me (and many others) 100+ hours. Imagine building a
rich text editor from scratch in your product.

Also - git, Django REST framework, VueJS

[1] [https://quilljs.com/](https://quilljs.com/)

~~~
equasar
tui.editor is another excellent choice, for me was the best one since the
handles Markdown as a source for writing out the content. Take a lot a it!

~~~
equasar
[https://github.com/nhn/tui.editor](https://github.com/nhn/tui.editor)

------
Seb-C
Using vim as my main editor has incredibly increased my productivity, but
learning to use it's macros saved me even a more tremendous amount of time. It
takes a while to learn to use it, but after that any kind of repetitive task
can be done easily with it. And if combined with some bash and vimscript
knowledge, it is even greater.

~~~
ornornor
I love vim and have been using it for years. However, I really struggle to
find a good config for writing typescript. I see my VSCode colleagues having a
blast with auto completion and type signatures lookups. But I could never get
this right in vim.

Is there a resource about state of the art typescript with vim?

~~~
Seb-C
Typescript works well using vim-polyglot. For the autocomplete I don't
actually use it, but the last time I tried, coc.vim was nice (it is actually
the VSCode completion engine in vim).

~~~
ornornor
I use coc.vim but the autocomplete for types doesn’t work well: if there are
several types by the same name you’ll just get a list of the identical names
and no way to tell their signature and/or what package they’re from. And if
you have a variable or a type, I also can’t get its signature. These are
things that VSCode does very well but I don’t want to switch!

------
paulgb
Forest [https://www.forestapp.cc/](https://www.forestapp.cc/) I've tried a
bunch of distraction blockers, but this is the one I've found most pleasant to
use.

Mosh [https://mosh.org/](https://mosh.org/) I'm a fairly recent user so it
hasn't been 100 hours yet, but it will be.

Not a program per se, but a few years ago I set up a cron job to back up my
shell history every night to a file named based on the date, and then aliased
'h' to grep them all and pipe to tail. This allows me to see the last dozen
times I used any string in a shell command. It comes in handy many times per
day.

------
blaerk
* pass, the standard unix password manager [https://www.passwordstore.org/](https://www.passwordstore.org/).

Instead of stopping whatever I'm doing, thinking about what password I used
last time something forced me to rotate, pass saves the day!

* AwesomeWM, [https://awesomewm.org/](https://awesomewm.org/).

Maybe not a program per se, anyway using easy-to-remember keyboard shortcuts
instead of clicking through a gui probably saved me a few minutes here and
there.

* Gentoo Portage, The Gentoo package manager.

Yea, something that compiles packages from scratch may not sound like your
typical time-saver, however, back when I had to track down every dependency
and compile it myself just to get whatever package working that wasn't in the
current distribution package tree, this saved me a lot of time. - This of
course goes for every package manager, however back then(tm) portage had the
most current releases and a lot of packages not in apt, rpm, etc.

* tmux (and tmux-cssh), [https://github.com/zinic/tmux-cssh/](https://github.com/zinic/tmux-cssh/)

synchronize ssh sessions, like clusterssh, not very elegant but this saved me
more than once, fast synchronized change on multiple machines at once \o/

* Ansible [https://ansible.com/](https://ansible.com/)

Make tedious boring tasks less so, specify stuff in yaml once, execute and
forget about them.

~~~
RMPR
Ironically enough, what made me use awesomewm is a ricing[1], but these days I
tend to use Sway because... well, wayland.

And for Ansible, I absolutely like sovereign[2] saved me a lot of time while
setting up my home servers.

[1]:
[https://www.reddit.com/r/unixporn/comments/a900p7/awesome_me...](https://www.reddit.com/r/unixporn/comments/a900p7/awesome_mechanical_love/)

[2]:
[https://github.com/sovereign/sovereign](https://github.com/sovereign/sovereign)

------
superdisk
IrfanView for converting images.

[https://www.irfanview.com/](https://www.irfanview.com/)

------
lyime
1Password - remove cognitive load and easy ass to all my secrets across
devices. Including sharing with family and coworkers

Rubymine - Ruby And JavaScript IDE with powerful SCM, test and debugging
tools.

Notion - Shared Knowledgeable and collaboration. Really easy to go from a free
form unstructured draft to organized, structured and easily accessible
knowledge repo.

Whimsical - My favorite diagraming and wireframing tool.

Notable mentions

Stoplight OPen API editor.

Sunsama - light weight and collaborative todo list with focus on Calendaring

~~~
anjanb
draw.io -- [browser based]([https://www.draw.io/](https://www.draw.io/)) as
well as [desktop drawing tool]([https://github.com/jgraph/drawio-
desktop/releases/tag/v12.9....](https://github.com/jgraph/drawio-
desktop/releases/tag/v12.9.9)) with many templates for flowcharts, UML, etc.
Free and very useful.

------
knbknb
The command line tools of the imagemagick suite, "convert", for batch-
converting images to thumbnails, "identify" for extracting basic metadata, for
instance.

[https://imagemagick.org/index.php](https://imagemagick.org/index.php)

------
tkainrad
This is a great thread, thanks for asking this question!

My blog post about setting up a Linux workstation has a few timesavers:
[https://tkainrad.dev/posts/setting-up-linux-
workstation/#boo...](https://tkainrad.dev/posts/setting-up-linux-
workstation/#boosting-command-line-productivity)

An important improvement for me was to switch from Bash to Zsh and use a
variety of plugins, such as z, zsh-peco-history (better history search), zsh-
autosuggestions, and zsh-syntax-highlighting.

If you work a lot with ssh, it is also worth the effort to create a proper
.ssh/config that contains the most used hosts.

------
ynac
I spent roughly three months late last year working on my workflow. Figuring
out what I was good at, not so good at, and what I'd forever found impossible
to do without fear of punishment or shame. Slowly, I learned how I worked best
and leveraged these lessons in design of the new work flow. Of course, the
solution was far simpler than before. The lessons were often exactly what was
exhaustively explained in books about habit and routine.

Anyway, my workflow is centered around directories and files accessed from
Sublime. Every directory is major subject area or project. One directory is
the Control Center - filled with documents that drive my work day and
planning. Things like Work Journal, Weekly, Master, Research Depot, etc., are
all referenced every day - sometimes dozens of times.

Table Editor package for Sublime to create logs, reference tables, checklists
(option v = √). Also great for tracking my micro workouts - calisthenics every
hour to keep the pump bumping.

Code folding works to hide "folders" of data within a text document so I can
access things quickly from their header line. This is particularly handy in
the Research Depot file. Exempli gratia, I have NPRs Music recommendations of
2020 folded up to one visible line with checkboxes of albums I've tried.
Another folded area is on Stinging Nettle uses.

My zettlekasten system was moved to Sublime as well. It got its own directory.
Added a time stamp package for naming the file from the first line with a
CMD-T, and some simple markdown, each file is a zettle. I use Zettlr for
exploring the notes - but Sublime for editing. Perfect mix for me.

It's not so much this all saved me 100 hours, but my productivity is up 1000%.
No hyperbole. My writing, projects, chores, fitness and client labor are all
up by extraordinary levels. My down time is more relaxing, work more
pleasurable, and creativity is like a real psychic adventure. And, it should
also be noted I've been on Sublime for maybe ten years, or so it seems.

    
    
      Sublime
        TableEditor
        Code Folder feature
        Tabbed directories - combined windows view
      Zettlr 
      Monodraw - but looking at the markdown diagramming tools...

~~~
wmichelin
Would you be open to sharing more about your workflow? 1000% increase in
productivity is a bold statement!

~~~
ynac
Heh...maybe less bold if you could have seen how terrible my productivity was
before!

But sure, I'm happy to share. It's now next up on the article hopper. To be
shared here and on my blog / gopher site soon.

~~~
bambambazooka
I'm very interested, what's the URL of your blog?

------
beefbroccoli
Git Bash on Windows. Things like this were always possible, but none of them
made the install as quick and painless. This has been especially useful in
Linux+Windows shops. You can simply state a requirement of "Windows users:
Install Git For Windows", after which you can script things more less
identically across both OS's.

------
vosper
Jupyter Notebook. And before that iPython (compared to the vanilla Pyton
REPL).

Though these are hardly secret tools :)

------
tptacek
The go-jira CLI probably comes close over the last 12 months.

[https://github.com/go-jira/jira](https://github.com/go-jira/jira)

~~~
Groxx
That is an impossibly good name.

Also thanks! I'm getting Jira'd, and some things are so slow that it can take
upwards of 30 minutes to set up tasks / reorganize / etc. Automation would
help a lot.

------
wdrw
\- 1Password password manager

\- PDFill Free PDF Tools - indispensable for dealing with any bureaucratic
tasks - cutting/rearranging pages, etc

------
quickthrower2
Git has probably saved me that and more by making branching so easy that I do
it for everything.

------
signaru
Stating the obvious, a web browser with a search engine.

Then custom scripts I made to do specific tasks on hundreds of files. So
familiar scripting languages, in general, such as those regularly used at
work. I had actually used MatLab for non scientific uses like batch
downloading, or batch image/audio format conversion.

And a modern IDE that prevents many errors in the first place. VS Intellisense
does it for me, but I guess there are equivalents in other development
environments.

------
Liwink
StackOverflow, if it can be regarded as a program.

Spectacle: Easily organize windows without using a mouse on macOS.

[https://github.com/eczarny/spectacle](https://github.com/eczarny/spectacle)

~~~
silentguy
Only limitation of spectacle is lack of spaces support. You can't create
spaces in spectacle. But I use it as my WM and have been very happy with it's
simplicity and reliability.

------
flipcoder
i3, vim, and vimium.

Not only saved me tons of time and increased my development speed, but allowed
me to recover from RSI and pains in my forearm, which in my case was caused by
moving my hands between the home row, arrow keys and mouse constantly, and
especially worsened when using the mouse scroll wheel.

------
cookiengineer
bash/shell knowledge helped me automate a lot of stuff with the 80/20
approach. I can't stress enough how often a simple 10 lines bash script
automated hours of manual work for me.

Also, `vim -` (stdin buffer edit mode) is absurdly awesome. It starts with `ls
-la | vim -` and ends up with `cat * | sed ... | vim -` and saves a ton of
time.

These bashrc aliases rescued my stupidness a lot of times:

> alias cls="clear; printf '\033[3J'"; # clear screen and scroll buffer

> alias cp="cp -i"; # confirm before overwrite

> alias df="df -h"; # human-readable sizes

> alias mv="mv -i"; # confirm before overwrite

> alias ns="netstat -tup --wide"; # show active program sockets

If I would have to choose, it's definitely VIM that automated the most.
Switched to VIM around 2004 and didn't regret it eversince.

Remotely debugging on an ssh server to figure out what's going on - with the
same editor configuration and setup as on your desktop computer - comes in
very handy in emergency situations when you have almost no tolerance for
mistakes.

------
node-bayarea
Node.js -- Can easily build a ton of server side and CLI tools with ease.
Saved me a ton of time!

~~~
BossingAround
Coming from a Java environment, I can't agree enough... A lot of my fellow
devs would think of NodeJS as a replacement for Ruby--inefficient and not
production ready.

When I first tried NodeJS, I was hooked... You can build simple CRUD backend
APIs within minutes! I'm aware you can do the same with Java, e.g. something
like Spring Boot streamlines the process a ton as well, but the feedback loop
of just writing a line or two and having a server automatically reload within
seconds is amazingly addicting.

I am not sure I would use Node for production... I suspect a lot of the Java
world might switch to Go as being much faster yet much safer than something
like Node.

~~~
BrandoElFollito
Wouldn't the fact that Go does not have exceptions be a deterrent to move from
Java?

(I am an amateur Python dev and tried Go but could not live with the error
handling boilerplate and the lack of exceptions. It looks like a nice language
though)

------
Endlessly
Google Search Operators:

[https://ahrefs.com/blog/google-advanced-search-
operators/](https://ahrefs.com/blog/google-advanced-search-operators/)

~~~
pricci
There was a time when this worked great.

Now I feel like many doesn't work on Google

~~~
Endlessly
How so?

Sure, it’s true some of the operators come and go, but I assure you some of
the most important ones still work fine and Google one a daily base asks me if
I am a bot.

Happy to answer any questions if there’s something specific you’re having an
issue with.

~~~
DanBC
Here's an example that I don't quite understand yet.

[nhs inurl:mcusercontent.com] = 2 hits.

[covid-19 nhs inurl:mcusercontent.com] = 90 hits.

[covid-19 "nhs" inurl:mcusercontent.com] = 90 hits.

I'd expect that first one to include all the second, but it doesn't. I thought
maybe the second is ignoring the NHS word, so I wrap it in double quotes to
force it to be included and it returns the same results.

~~~
Endlessly
Google has always had variations between the [query keywords] results of the
“Google indexes” AND the “literal website keyword instances/indexes”; that’s
not new, unrelated to search operations aside from the fact that advanced
search operators make this more easy to see.

(In fact, the article I linked to references this as a way to do quality
assurance on Google’s indexing on content on your own domains.)

———

Note that the sum of the counts for the following three queries:

[“aaa” AND “bbb” site:domain.com]

[“aaa” AND -“bbb” site:domain.com]

[-“aaa” AND “bbb” site:domain.com]

...in theory should equal count of this query:

[“aaa” OR “bbb” site:domain.com]

...in practice though, they never have; by never, since Google first released
their search results.

——

Further, while counts frequently are over 1000, only the first 1000 search
results are viewable, and vast majority of searches only pull the first 10
results and review an even smaller percentage of those 10 results.

------
baggsie
\- WallabyJS - makes writing tests almost feel addictive, and being able to
run and debug the JS directly in the code has saved me hours.

\- Jetbrains IDEs - the refactoring and debugging tools are second to none.

~~~
joshschreuder
If you’re in the .NET world, NCrunch is basically Wallaby. Saves me a huge
amount of time and helps me write better tests by identifying where I’ve
missed branches or setup test data incorrectly through the line indicators.

------
na85
Omnisharp for emacs: troll your friends and co-workers by writing C#/dotnet in
emacs! Omnisharp enables "intellisense" or whatever it's called nowadays, in
emacs, via Company mode or similar. The code completion is a huge time saver.

Also, honorable mention for magic wormhole, a finally sane way to move
arbitrary files between devices.

------
simplify
Ruby on Rails. Still nothing better for getting a high quality product out the
door fast.

------
tdy721
I wrote a prime number finding function in coffee script and python just for
fun. Saved me a lot of time, factoring numbers is hard. I’d also like to
mention javascript again, I can say I’ve played millions of hands of video
poker. Without those programming environments I’d still be shuffling cards or
dividing numbers.

------
adventured
Since nobody else has mentioned it: Steam, over a long period of time.

It makes purchases easy, it makes reviews / researching games easy, it makes
updates very easy, it often makes finding mods easy, it makes installs easy.
And it reduces issues of lost games / keys after many years go by, as they're
all in the library.

------
seltzered_
For desktop workflows I've started a spreadsheet documenting various utilities
and os defaults I've depended on across mac/win/linux:
[https://docs.google.com/spreadsheets/d/148zTJUwfVv9xfDcpSoH3...](https://docs.google.com/spreadsheets/d/148zTJUwfVv9xfDcpSoH3mF-c4vqV3CqyEWXuqaAiXoA/edit?usp=sharing)

Intent was to explore if I still could be as productive doing a variety of
things (general administrivia, writing, design, code) outside of MacOS. So
it's organized less around a specific app but rather a workflow/concept.

Ideally I'd love to see a git-backed static website around this so people
could fork/collect/share their workflows across environments visually.

------
anotheryou
(mine are all not particularly new)

ShareX (windows): screenshot > optionally annotate > upload to ftp > copy url
to clipboard

But I can also paste from the clipboard:

\- if it's a file: upload to ftp, copy link to clipboard

\- if it's text: upload to ftp, custom URL makes it load in my org-mode or
markdown web-render

~~~
anotheryou
SikuliX: last resort for automation when AHK can't do it. Finds where to click
or type visually. (e.g. good for android emulators)

~~~
anotheryou
java fueled pain in the ass to run though, nothing for day-to-day helper
scripts

------
ybahubali2018
Create React App saved me about 100 hours

[https://create-react-app.dev](https://create-react-app.dev)

------
sumanthvepa
Emacs. 1000s is more appropriate. Simply could not have done what I do without
it.

------
shaklee3
Vscode remote plugins. Being able to have the full-fledged editor remotely on
a Linux development machine is a game changer.

~~~
shaklee3
Nope, that's the one. Not sure why it's slow and buggy for you. It's almost as
fast as vscode is for me locally. What bugs did you have?

------
unnouinceput
One word - Cygwin .

Having those utilities available in Windows saved me not hundred but ten of
thousand of hours.

Also learning PowerShell when dealing stuff in Windows is saving a lot more
hours then the ones you put in learning it.

------
vectorboost
Windows:

Vivaldi browser - Amazing for productivity, custom search engines,
configurable, can be controlled by keyboard. I can search in company
ishare/OneDrive via URL bar etc.

Total commander - I use quite minimal interface, it actually looks more like
fman. I use the folder jumplist a lot which saves a lot of time. I have some
custom buttons (open in gVim for instance) and lynx like movement.

Linux:

Terminator - Terminator with splits, nice font rendering, easy GUI
configuration

Arch - I can also put it to the cost me 100 hours list :] but AUR definitely
saves time compared to Ubuntu dependency hell.

------
TeddyDD
Kakoune: multiple selections, interactivity and powerful editing primitives
makes text editing a breeze.

[https://kakoune.org/](https://kakoune.org/)

~~~
ewired
There's a VS Code plugin for Kakoune-like editing called Dance. I was looking
for a quick way to put multiple cursors over a given word in VSCodeVim;
Kakoune (and therefore Dance) is more focused on multi-cursor editing and
searching which made it possible for me to do that. Dance is also a much
lighter layer over VS Code's built-in commands, making it easier to write
custom keybinds and have better compatibility with other extensions.

[https://github.com/71/dance](https://github.com/71/dance)

------
arikr
Can you copy the description from that old thread into your post, so that
people don't need to click through for the full context? I think it'll still
be editable at this point

~~~
joshschreuder
Here you go

[https://news.ycombinator.com/item?id=13887237](https://news.ycombinator.com/item?id=13887237)

------
mszcz
AltDrag for Windows. Allows you to move and resize windows by pressing alt and
left/right mouse button and drag anywhere on the window, not just title bar.

GridMove to arrange windows (with multiple monitor support) by keyboard
shortcuts according to a grid I specified.

AutoHotKeys script that replaces 'dddd' with current date, 'ddtt' with date
and time, 'dtdt' that outputs date and time with underscores (think filenames)
and 'tttt' for just time.

------
whoisjohnkid
Goland - an IDE that specializes in Golang projects.

The following features have saved me 100s of hours:

    
    
      - Being able to run tests/benchmarks directly in a test file via either clicking the play button or using a keyboard shortcut
    
      - It’s refactor support
    
      - automatically getting imports ordered and code formatted on save
    
      - multicursor support
    
      - and even more!
    

One of the few IDEs I would actually pay for if my company didn’t already pay
for it.

~~~
wtfishackernews
vscode supports all of these and is free. The go language server has been
buggy in the past but it's been improving quickly.

~~~
whoisjohnkid
Yeah I keep hearing great things about vscode. Need to give it a shot one of
these days.

------
DeathArrow
Code related:

Visual Studio, ReSharper, Notepad++ (I did many tedious tasks with ease just
by using regular expressions), Git, generic To Do list software (Microsoft
ToDo, Todoist, etc.) - not everything is to be kept in Jira so this kind of
software helps with organizing other tasks.

Not code related: Adobe Lightroom, Adobe Photoshop

Web browser is a piece of software that saved me time but also helped me waste
a lot of time. So it's not only software that matters but the user, too.

------
hellofunk
Emacs. I probably lost at least 100 hours initially learning to use it and
optimizing it for my personal workflow. But it’s certainly a net positive by
now.

------
guybedo
Oh My Zsh:
[https://github.com/ohmyzsh/ohmyzsh](https://github.com/ohmyzsh/ohmyzsh)

~~~
imjasonmiller
I recently learned of the many git shortcuts and others such as “take”,
combining “mkdir” with “cd” [1].

1\.
[https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet](https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet)

------
krysp
Fzf. Fuzzy completion is a godsend for working in the terminal, remembering
commands is a thing of the past.

As a nice bonus there is also a wonderful vim plugin :)

~~~
sk5t
Also, Oh My Zsh has a nice little fzf plugin that marries shell history search
(ctrl+R) to fzf.

------
lbill
I work as a tester for a some websites: I test the GUI and the REST APIs used
by the smartphones apps. These tools make my work a lot easier (they might not
be the best for your specific needs, they are just the ones I use):

\- Talend API Tester: a Chrome extension to test (you probably guessed it)
APIs! I can automate many things with it and use regex in my tests. If I had
to do all that manually, I'd have become crazy by now. \- Watir: a Ruby
library that is essentially a wrapper around Selenium. Watir is easy to use,
and I found Ruby very easy to learn _. Also, bundler makes the process of
keeping my libraries up to date really painless (when my webdriver tells my
that it can 't communicate with the browser because it has become outdated, a
simple 'bundle install' fixes the issue)

[_] Note: I don't need to do a fancy program, I just need to write some farily
simple scripts that automate actions a verify a few things on web pages.

------
tommyage
For me it is, 100% XFCE.

I'm working on a single monitor, so managing workspaces is crucial and xfce4
lets you set these up in seconds.

I am very happy to now can brag about it to someone:

You can allow your desktop to react to your mousewheel to change workspaces.
Combine this with a one pixel border on any site of your maximized windows and
you can circle your workspaces by just pulling your mouse to the edge. In
practice, with an full-hd monitor, one does not see that there is one pixel of
your desktop visible. In the few cases where the hand uses the mouse, this is
the most convienient feature one can possibly experience.

I also can click in the same area with the right mouseclick and access my
applicationmenu.

Another neat trick: xfce4 has to default application finder, alt+f2 and
alt+f3. The latter appears to be unusable, because one has to tab to often to
select an application.. But you can just resize the right pane far most to the
left and the finder will always remeber this behaviour. The latter also
includes user generated menu icons.

Since I rely on maximized windows, I also excluded all window borderings to
maximize the viewport. simply delete all contents of your selected theme and
reapply it.

One Terminal is configured as a dropdown, so it is permanent accessible over
the entire worksession until you force close it, also, built-in.

Hotkeys for circuling workspaces and circle the current window within them as
mentioned above.

Different backgrounds for each workspace plus a translucent panel, so I can
identify on which workspace I am via perceptual cognition.

alt-rightclick lets you resize an window to any size.

It is the perfect workstation and i highly recommend it. Everything is builtin
and works on all major distros out of the box.

------
sriram_malhar
perl, used in command-line mode. This is my data munging superpower.

~~~
hoistbypetard
`perl -pie` all by itself probably falls into the "saved you 100 hours" bucket
for me.

------
xallace
total commander .. orthodox file manager, I dont understand why this is not a
built-in file manager for any os. I just want to find and organize stuff, I
dont want to manage windows.

~~~
sandreas
For terminal there are ranger (pyton) and lf (go) which i prefer over mc

~~~
hoistbypetard
+1 for ranger for me

------
centur
Wox ([http://www.wox.one](http://www.wox.one) and Everything
([http://www.voidtools.com](http://www.voidtools.com)) - two fantastic tools
for keyboard focused workflows on Windows. Wox is an equivalent to Alfred
probably.

------
seanwilson
Plugging my own tool, but I wrote a Chrome extension that checks websites for
SEO, speed, and security best practices (it's a crawler so it can check 100s
of pages in a few minutes):

[https://www.checkbot.io/](https://www.checkbot.io/)

It saved me a lot of time and caught tons of mistakes before they got to
production while working on multiple websites as a contractor

For example, I was assisting a team on one sprawling dynamic website with a
lot of SEO and performance issues - the site had been hacked together over the
years such that editing one page would usually break groups of unrelated pages
in unexpected ways. My extension helped me get on top of which pages were
dependent on each other, to prioritise what was worth fixing, and to confirm
improvements had been made without breaking anything.

------
altmind
Maybe not 100hrs, but ~40 Regex Buddy $40. regex tester, debugger and in a
lesser extent, regex applier.

~~~
hoistbypetard
Regex 101 has probably saved 100 hours for me:
[https://regex101.com](https://regex101.com)

(Back when I was looking for something like this, Regex Buddy always popped up
in the search results but it didn't look good enough to fire up a windows VM
just to use it. The auto-generated explanations based on your regex/test data
from regex101 have proven to be tremendous debugging aids.)

------
rajlego
Probably the spaced repetition application SuperMemo [1]. Beyond normal SRS
like anki it has a feature called incremental reading [2] which makes studying
at least 3 times as easy for me. I have ADHD so IR helps a lot by taking care
of 90% of the complexity of (managing) studying so that I can just focus on
what's in front of me.

[1]
[https://www.supermemo.com/archives1990-2015/english/smintro](https://www.supermemo.com/archives1990-2015/english/smintro)
[2]
[https://supermemo.guru/wiki/Incremental_reading](https://supermemo.guru/wiki/Incremental_reading)

------
NaOH
Keyboard Maestro for Mac. Its unlimited customizability and incredible amount
of capabilities make me dread ever moving to another platform.

[https://www.keyboardmaestro.com](https://www.keyboardmaestro.com)

~~~
proverbialbunny
Oh man macros. I remember using them in the OS Classic days before
aliases/shortcuts were a thing, so you'd have to click into a pile of folders
to open an application, but not with macros. Macros would do it for you.

------
postify2
A very big pain we've been having for a while is debugging our app that's been
running on Kubernetes for the past year. The local debugging tools are great,
but attempting to debug certain issues in a remote environment is a major pain
that probably wasted hundreds of hours of waiting for tests, redeploying etc.

To mitigate that, we've been using a tool called Rookout
([https://www.rookout.com](https://www.rookout.com)). We no longer need
console.log statements in our code - We just set non-breaking breakpoints via
their Web IDE and it just works - we get all the data we need, and without
redeploying ¯\\_(ツ)_/¯

------
maxdeviant
WorkOS ([https://workos.com/](https://workos.com/)) if you need to support
single sign-on (SSO) for your app.

SSO is free, and they offer other enterprise-focused features, like directory
sync and audit trails.

~~~
znpy
How would that compare to keycloak?

~~~
maxdeviant
I'm not familiar with Keycloak. I glanced at their docs briefly, and it looks
like Keycloak manages your users for you?

WorkOS only handles SSO, so all of our users are still stored in our own
database. This is one of the big reasons we went with WorkOS as opposed to
something like Auth0 or AWS Cognito.

------
wx196
Groupy to add tabs into programs that don't have tabs for documents. Use it
mostly with Axure.

TouchCursor to enhance keyboard, mostly as arrows, "Start" and "End" buttons.
Allows to deal with text without moving hand to arrows.

------
yekuta
We're very pleased with ASP.NET Zero
([https://aspnetzero.com/](https://aspnetzero.com/)). The best starting point
for web applications I've ever found that enables faster time to market. It
helped us to build web applications very fast and not dealing with repeating
tasks (like user/role/permission management, localization, audit logging,
multi-tenancy, UI components, exception handling system..). Its feature
richness, ease of use, comprehensive documentation and good support has saved
us tons of time&money.

------
emersonrsantos
Zsh, mainly because of shortcuts, shared history, autocomplete that works

------
glaberficken
Microsoft Windows Script Host (WSH) has saved me and my teams over the last 2
decades probably hundreds of hours. It has allowed me to deploy small VBScript
and JScript scripts that automate day to day repetitive tasks in the office
without worrying about installing runtimes/dependencies etc. You write it once
and it just works for everyone (provided you work in the typical MS only
office space, which I'm aware many here don't). Security is obviously a
concern as the tech is quite legacy these days.

------
momciloo
Not a program, but using SCSS instead of CSS saved me 100s of hours

~~~
andrei_says_
For me it was SCSS + Suzy Grids + Breakpoint. Effortless complex responsive
grid systems on all browsers (IE10 included!)

------
BrandoElFollito
GitLab CI/CD.

Once it is in place it saves plenty of keystrokes and routine tasks.

------
john4532452
Microsfot teams app - While working in office most of my colleges would come
to my desk for trivial things if they wanted something but don't know what
they want. During discussion they would figure it out what they wanted
exactly. Since the corono outbreak everyone is WFH and now if they want
something they figure out what exactly they want and then message me. This is
a huge time saver. Now i can focus a lot at the problem and respond to the
messages async.

------
Yhippa
Delver Lens has saved me tons of time scanning Magic: the Gathering cards:
[https://delverlab.com](https://delverlab.com).

~~~
cassedsj
Oh, dude! I'm very glad you enjoyed my app!

~~~
Yhippa
Of course you'd be on here. I know you mentioned this was a tool for primarily
store owners but a lot of my friends and I use these to scan our old
collections.

------
znpy
I started writing custom yasnippet snippets (in GNU Emacs) to write kubernetes
yaml files.

If you ever had to write a non trivial deployment by hand you know what I'm
talking about.

------
Spooky23
Devon Think.

Having a local search engine with annotations is incredibly useful.

~~~
rufugee
I’ve been looking at Devon Think but finding it a little hard to understand
how best to leverage it. Would you mind sharing how you use it?

------
Groxx
Probably git, 1password (though I'm planning to shift to Bitwarden), and entr:
[http://eradman.com/entrproject/](http://eradman.com/entrproject/)

Having a simple standard way to automate _all_ of my modify->"do x" runs has
been wonderful, and (with a bit of care in your project structure) being able
to near-livecode in almost any language is an incredible productivity boost.

------
theconstantium
\- iTerm2 saved a lot in many ways [no need to use `git branch` and annoying
full directly structure] \- CI/CDs saved from the manual builds and testing
commands

~~~
jlebar
How does iTerm2 accomplish this for you?

------
kabacha
* vim probably saved me thousands of hours alone.

* qutebrowser is close second as a lot of time on the web - the more efficient my web browser is the more time I save. Scripts, quickmarks and keyboard shortcuts just save a lot of time.

* spotify, music collection takes a lot of time. Finding music, buying music or even downloading music illegally is very time consuming. I maintain catalogs of obscure vaporwave subgenres and it's really really time consuming.

------
geocrasher
Windows: 1) Autohotkey 2) Ditto Clipboard Manager 3) ShareX

~~~
n2j3
Second Ditto, and adding Q-Dir to the list.

------
quintonish
This isn't a program, but the document shortcuts (mostly the ones beginning
with the control key)[0] on OSX have saved me heaps of time while maneuvering
through text.

I learned them from Emacs on Linux and was pleasantly surprised to find that
they work in almost every app on OSX.

[0] [https://support.apple.com/en-
us/HT201236#text](https://support.apple.com/en-us/HT201236#text)

------
chucky_z
TamperMonkey! I've dealt with some monstrous websites which needed in-browser
user-friendly automation, and TamperMonkey is that tool for the job.

~~~
anjanb
can you share some examples please ?

~~~
chucky_z
I cannot, as it was for a past employer and the code is not open-source.

I used TamperMonkey to include
[https://www.papaparse.com/](https://www.papaparse.com/), then injected a
button into a web page. The user would navigate to the "start" page, and a
button would appear, it was just a normal form button. They would upload a
CSV, which I slurped into a cookie, webdb... and something else. That would
then walk a known set of URLs to scrape the unknown URLs and click the
required buttons to trigger javascript calls by the website itself, before
building a further set of URLs to navigate. It would visit the "final" set of
URLs, gather the info into a secondary CSV, then walk back up to the
entrypoint before going to the second entry.

At the end, it would download the secondary CSV to the users disk in a format
that was uploadable to another system.

The entire thing was in a single if statement because I was just learning
JavaScript and did not know any other way to get around async problems at the
time. :)

It was ugly, but worked awesome and since writing it several years ago has
probably saved 10s of thousands of hours.

------
spacechild1
Sibelius - I don't have to manually create individual parts from my orchestra
scores or put a page into the trash bin just because I did one mistake.

REAPER, Pure Data and other - I don't have to slice and glue magnetic tape to
create electronic music

Thunderbird - I don't have to handwrite letters and bring them to the post
office

I think the more interesting question would be: which computer program _hasn
't_ saved me 100 hours...

------
alperonline
[https://aspnetzero.com/](https://aspnetzero.com/) \- Application startup
template for ASP.NET Core

It has tons of useful features that should be in a line of business
application. It saves you more than 100 hours with pre-built pages
(authentication, permission management, localization, multi-tenancy, SaaS
features, CRUD Page Generator (RAD Tool), themes etc.)

------
babuloseo
[https://kodi.tv/about](https://kodi.tv/about)

If you are not using Kodi, you should already be using it :)

PLEX is a meme.

~~~
captn3m0
Plex/Emby/Jellyfin are a media-server, while Kodi. Not saying Kodi isn't cool,
just that comparing it to plex is apples/oranges.

------
will_lam
RescueTime. Hands down. Have been a proud customer for 4 years. Saved me
months of my life being frittered away. Except right now.. I guess :)

------
panorama
Stripe Atlas has personally saved me as a bootstrapped startup founder more
than 100 hours over the past 3-4 years we've worked with them. It's just so
relieving knowing I'm covered on anything regarding incorporation, legal,
taxes/accounting, and I won't have to spend a ton of my own time researching
vendors and googling esoteric topics.

------
justaminute007
'The Clock' for OS X is the best out there if you need to do anything serious
across time zones. Featureful but not bloated. Ability to rename clocks to
something more meaningful is genious. If you ever do the 'that person starts
at 9am in Tokyo, what is the time then in Seattle' or Sydney, or Hyderabad
that app is worth the $5.

------
Narann
Not sure if it saved me 100hrs but Clipman[1], a simple clipboard manager.

This combined with a Super+C shortcut means you can copy multiple things in
once and paste them in the order you want.

* [1]: [https://docs.xfce.org/panel-plugins/clipman/start](https://docs.xfce.org/panel-plugins/clipman/start)

~~~
BrandoElFollito
I use ditto and it is fantastic as well [https://ditto-
cp.sourceforge.io/](https://ditto-cp.sourceforge.io/)

------
chadcmulligan
I use Appcode over Xcode for swift development mainly for one single feature -
bookmarks, ctrl-shift-1 to set a bookmark, ctrl-1 takes me to it.Maybe not 100
hours but its a feature I can't live without. I don't know why Xcode doesn't
have bookmarks. There's also a plugin for Visual studio which does the same.

------
capableweb
vim + vim-fireplace + only work on clojure/script projects. A real-time
interactive development environment is hard to beat and after 10 years of
experience programming and only around 1 year programming clojure/script, I
have never before been this productive and carried the same confidence in my
code.

------
mister_hn
Docker. Just throwing aways entire environments and recreate them in a bunch
of seconds is something really worth it

------
nickreese
Postgraphile - Automatically getting a graphql API from a Postgres connection
is amazing.

Plex - We have munchkins and they love watching the same stuff off youtube or
movies over and over. We simply download them and Plex will sync them to all
of our devices with easy offline support. (We run it on a synology NAS)

------
lloeki
fzf, integrated with:

\- shell's ^R (history), ^T (args), ^P ($EDITOR)

\- vim's ^P and <leader>p (open), <leader>b (buffers), <leader>r (tags)

and small little tools of my own like kd (mentioned around here), or vim's -
to go up from file to dir in netrw, that allows to jump to any place of my
filesystem quickly.

------
caleblloyd
File watchers that rebuild a project when code changes are made. Lots of
language SDKs come with these built-in, for those that don't I have found that
the `chokidar-cli` npm package can be paired with a shell script to add auto-
rebuild to pretty much any project in any language.

~~~
RMPR
entr[1], from their main page

    
    
        ls *.css *.html | entr reload-browser Firefox
    

Is a simple example of things you can do, it is also very lightweight.

[1]: [http://entrproject.org/](http://entrproject.org/)

------
mikorym
I wrote a couple of VBA scripts for Excel that has probably saved my team 100
hours.

Prior to that, we would have templates being opened and copied over. As much
as developers often don't like Excel, the problem that Excel has always
directly addressed still exists: Not everyone wants to program.

------
harel
When I was maybe 12 or 13, I wrote a program in Amos on my Amiga that did my
algebra homework. For a while my homework consisted in typing inputs, and
writing the output in my notebook. I suppose that saved me a good amount of
time, which was then used for games most likely.

------
mikeomoto
[https://github.com/clvv/fasd](https://github.com/clvv/fasd)
[https://github.com/nvbn/thefuck](https://github.com/nvbn/thefuck)

------
will_lam
Also, SizeUp. Let's you customize your desktop windows to fullscreen, half
screen etc with hot keys.
[http://www.irradiatedsoftware.com/sizeup/](http://www.irradiatedsoftware.com/sizeup/)

------
arunc
Double Commander[0] without a doubt. Works like charm on Windows and Linux.
Saved me multiple hours when compared to Windows explorer.

[0] [https://doublecmd.sourceforge.io/](https://doublecmd.sourceforge.io/)

------
golergka
First vim, and then all the vim emulation plugins in all the IDEs and text
editors, as well as Vimium plugin for browser. I'm far from a true vim ninja,
but text editing and basic macros still saved me so much time on navigating
and editing.

------
rrggrr
Hazel... File organization. Bitbar... Menubar status of everything.
Amethyst... Window manager. Cloud9 IDE... Cloud based Dev and deployment.
Integromat... Blows the doors off zapier. Mixmax... Gmail enhancements incant
live without. Hellosign.

------
xerosanyam
Apart from vscode & copyclip

I find Remfo very useful:
[https://rememberforever.web.app/](https://rememberforever.web.app/)

It helps me take notes & memorize things. It is currently in beta but still
very stable

------
sweeetland
Not a program as such but learning to touch type

zsh & ohmyzsh plugins

Clipboard manager - built my own because I wasn't happy with the ones I had
tried... [https://nellyapp.com](https://nellyapp.com)

~~~
hoistbypetard
Had you tried klipper, and if so, do you have a short version of why one might
like Nelly better (other than being cross platform)?

------
tracker1
WSL2 (Insiders, but should be out this month) has probably saved me as much as
I've spent getting it setup so far.

Linux proper on windows, the Docker Desktop integration and the WSL Remote
(and SSH Remote) extensions for VS Code.

------
jamaicahest
Visual Studio, not VS Code. All the way back to Visual Studio 2003. The
debugging features in Visual Studio are brilliant and have saved me countless
hours over many years of developing .NET applications.

------
rasikjain
Fiddler - Saved me lots of debugging and troubleshooting time.

Easy to see the traffic flow between apps/apis. It helps to read the raw http
req/resp, debug and replay the request with modified parameters.

------
silvether
Alteryx Designer for ETL

[https://www.youtube.com/watch?v=A2PaLZRpWdY](https://www.youtube.com/watch?v=A2PaLZRpWdY)

Likely more than a 100 hours saved using this tool for DWH work.

------
buraksarica
Excel itself saved may be tens of 100 hours for me. May be it's about my lack
of knowledge for other tools, but I find myself generating sql or some other
code for many types of data.

------
dingdong3
Scala repl- takes a few secs to start because it's jvm but after that you have
a very powerful langauge with huge stdlib. No time to open and editor and
compile and run for small stuff.

------
chinathrow
Ctrl-r in bash. Still meeting devs using a terminal and not using it.

------
gentleman11
Unity. The alternative to using a premade game engine is to be Jonathan blow,
writing your own engines (and programming language these days), spending up to
7 years on a (great) game.

------
renaudr
The "Screen Time" program on my mac & iphone :-) I give the password to my
wife and set it to lock my computer and phone at midnight. It probably saved
me 1000+ hours.

------
nandkeypull
zsh-autosuggestions has definitely saved me more than hundreds of hours. When
you type part of a command, it auto-suggests previous commands you've executed
and then lets you expand to them, cutting down on your typing, on average, 75%
or more.

For example, typing "scp" could expand to "scp -r myself@servername
/home/myname/.logs/logfile ."

It's a concept that originated with the Fish shell, but is useful if you want
to maintain some semblance of bash compatibility.

------
sa3dany
WindowsKey+Shift+S for taking screenshots for a part of the screen.

~~~
e_proxus
You can also change so that PrtScn directly opens the snipping tool which is
far superior by checking “Use the PrtScn button to open screen snipping” in
Settings > Ease of Access > Keyboard:
[https://cdn.discordapp.com/attachments/398094200710889482/68...](https://cdn.discordapp.com/attachments/398094200710889482/688459999051251786/unknown.png)

This equivalent to the new macOS Mojave shortcut Command+Shift+5.

------
ashtonkem
jq, the command line json processing utility. It makes dealing with very large
json streams palatable, and it plays nice with other command line utilities
like awk nicely too.

------
palashkulsh
cli for creating bitbucket pull requests has saved me so much time
[https://www.npmjs.com/package/cmd-
bitbucket](https://www.npmjs.com/package/cmd-bitbucket)

It pulls source and destination branch merges them locally and then pushes the
source branch and creates a pull request if not already there. Reviewers are
configurable per repo.

Disclaimer - I have used this every day for past 3 years and i maintain it as
well.

------
kissgyorgy
zsh fuzzy search in command history. Just a couple of characters from a
previous command, pressing up/down and you can modify and run a previous
command.

~~~
silentguy
I use zsh fuzzy search as my poor man's command bookmarking tool. Any command
I want to bookmark, I add `#b <description>` at the end. This way I can get
the command with a description and get all the commands using `#b`.

------
quaquaqua1
For my specific workflow, Notepad++ and UnrealEd. Mastering bsp is a really
fun skill to have and for the most part UnrealEd is intuitive with some
practice.

------
bourlas
There are a few free alternatives but beyond compare is the first prog I
install on any new laptop,windows or linux I get.

------
hackerbeat
Chrome plugin "News Feed Eradicator for Facebook" \- haven't seen my news feed
in years and just use FB for messaging.

~~~
fragmede
Facebook runs messenger.com for this purpose

~~~
hackerbeat
True, but I also need access to pages and events.

------
dshacker
That's my blog post! Glad you enjoyed it :)

~~~
zJayv
I learned about some great tools thanks to you. Appreciate it!

------
ggregoire
Uber Eats

~~~
kkarakk
Mealprep blows uber eats out of the water. plus no chance of someone spitting
in your food

~~~
ornornor
And less exploitation of your fellow humans.

------
madsvj
Very niche, but some companies both save a lot of money and can reallocate
multiple employees by using patentrenewal.com

------
brailsafe
My most useful tools on macOS: Klokki Slim 1Password Bear SelfControl
(Definitely saved me some time) SpotLight PyCharm

------
bullen
[http://github.com/tinspin](http://github.com/tinspin)

------
mtmalla
Vimium for Chrome. Using vim hotkeys + EasyMotion in place of most clicking
has saved me a lot of time.

------
grayclhn
“git bisect“ on its own. Magit is getting there, just for incremental and
partial staging.

------
sc4les
Emacs. Automate all the things :)

------
gnicholas
clipMenu, a pasteboard manager for Mac. It doesn't work as well as it used to,
likely due to OS upgrades, and I've not been able to get the snippet function
to work with hyperlinked text. But it is still super useful.

------
jhiggins777
Webflow. But more like 1000 hours. The first low-abstract, clean code
generator.

------
Rallerbabs
The 'copy all urls' and 'bulk open urls' Chrome extensions.

------
sharjeel
\- tmux

\- bashmarks

\- zsh-autosuggestions

\- yasnippet/emacs

\- awk

\- explainshell.com

\- ansible scripts for setting up new dotfiles and my commonly used tools on a
new machine/VM

------
winrid
Clipy on OSX, bound to CTRL+SHIFT+V. Also multiple cursors in any editor.

------
emidln
Bazel. The reproducibility and caching saves me hundreds of hours a day.

------
mineP
Do not sure why no one mentioned any RSS reader. It saves hours for me.

------
kiliancs
lnav ([http://lnav.org/](http://lnav.org/)). Give it hundrends of thousands of
lines of logs and query them with SQL.

------
HugoDaniel
Vim macros and Turbo Pascal 3.02 (it is only 39,731 bytes).

------
BaudouinVH
aText [https://www.trankynam.com/atext/](https://www.trankynam.com/atext/)

------
amiga_500
Magit git interface on emacs. It's a joy.

------
billylo
fastlane.tools saved me hours clicking through AppStore publishing web UIs.
Indispensable for all mobile developers.

------
cryptozeus
Textpad ++

Autosave feature.

Countless hours saved by not loosing information.

------
ynarwal
pulumi for devops.

[https://www.pulumi.com/](https://www.pulumi.com/)

------
blendo
Make, then Maven after moving to Java.

------
dplgk
Watching YouTube videos at 2x speed

------
emrahcom
spectrwm - a tiling window manager

fzf - a command-line fuzzy finder

tmux - a terminal multiplexer

bash / zsh and the console tools (grep, sed, awk et al.)

python

------
masteruvpuppetz
UIPath RPA has been very useful for automating what ppl like to call donkey-
tasks (repetitive/time consuming mundane things)

------
sbmthakur
OS Clipboard and Google search.

------
ceceron
ffmpeg - if I were to trancode all my video-library by hand, it would never
end :D

------
nopcode
scoop for windows is the biggest performance gainer for me in the last 3
years.

------
AzzieElbab
Docker for non prod installs

------
bitofhope
sed, along with grep and awk

------
sergiotapia
iterm 2

vscode

alfred

prettier for js

mix format for elixir

github actions

okta logins for my employees

aptible for server management

render.com for personal projects

------
tetek
alfred app on OS X, finding stuff and clipboard history

------
nullc
valgrind, assuming you mean _at least_ 100 hours.

------
xiaodai
Search Everything

------
_emacsomancer_
TeX and Emacs.

------
Antoninus
Tmux.

------
BiteCode_dev
autokey

it's a linux clone of autohotkey, meaning it lets you script your
mouse/keyboard/windows using python. It can trigger the scripts using a
keyboard shortcuts or by watching keywords in regular text. I use it to kill
emai/phone/date quickly, or to automate combinations of actions in GUI that
don't have macros.

youtube-dl

I travel a lot, with plenty of downtime. Downloading conferences from many
video sites, or music, turns those otherwise wasted hours into learning
experience, relaxation, etc.

dynalist

Favorite life organization app, that I use for shopping, restaurant idea,
todo, etc. Basically half of my GTD is in there. It's much more productive
than any system I tried before, and I tried a lot of them.

thunderbird

I have 20 email addresses, and this varies depending of my clients. Web base
email are not up to the task, and I need offline search/archive capabilities.
Thunderbird is the only mature cross platform app that does that correctly.

pulsesms

I have a rich social life, and this means organizing groups of people. Of
course, they all have their different chat apps, social account, preferences.
Some are using an old 3310. Some don't want to be on facebook, etc. SMS is the
only things that works with everybody, but typing it on the phone is a pain. I
have an android phone, so no imessage, but no google account, so no android
message. Pulsms allows me to write message from my computer comfortably.

fdfind and ripgrep

I search stuff all the time, and since they are way faster type (because
easier to remember), faster to execute, and have an output that is faster to
read, cumulatively it saves a lot of time.

tilix

I don't use a tiling windows manager or tmux-like software, so I rely on tilix
to provide a terminal a the press of a key, and to provide tabs and split
screens.

black

Automatic formatting for python code. No parameters.

bitwarden

Or lastpass, or 1password. Any password manager really. But bitwarden is the
latest I'm using. I'd also say "tetripin" for otp on the command line but it
would not really make it up to 100 hours.

meld

It compares files or directory. It's not the best out there, but it works
everywhere, so I don't have to wonder. I just install meld. I'd say reggexer
for search and replace as well, but again, not saving 100 hours.

\--

Of course I could say GNU/Linux, python, firefox and vscode, but it's a bit
obvious. Probably the most productive softwares I use though.

------
_eht
Bash

------
yodelinghambone
ctrl-r in bash.

------
hiq
A lot of these are not so much about saving 100 hours, rather being faster
when it does matter, as well as doing something interesting (automating a task
by writing a script) instead of doing the same thing over and over again. This
is also why you shouldn't take
[https://xkcd.com/1205/](https://xkcd.com/1205/) too literally, although it's
good to keep in mind.

* frequent (automatic) backups (saves time and mood when things go wrong)

* i3

* fd (alternative to find)

* ripgrep

* keynav (don't use your mouse)

* !bangs on duckduckgo

* calcurse (terminal calendar)

* readline: C-h C-b C-a C-k M-b M-f C-u etc.

* howdoi (get SO answers in the terminal), especially useful for things you somewhat know but just forgot the syntax of.

* youtube-dl as already mentioned somewhere: you get out of youtube ASAP to prevent their algorithms from tricking into staying there. I also use it to watch videos later when I don't have internet, using a syncthing folder on my mobile which only syncs up to 10% remaining space (so that it doesn't fill with 100s of videos, just a few, enough for some trip). Videos are also rather inefficient in terms of communicating ideas, so better to keep them for when I really don't have better to do.

* in the same vein, adapt the speed of (technical) videos you watch, to skip the fluff and focus (even rewind) the difficult parts. Skip all ads, everywhere.

* uBlock Origin, for the same kind of reason: just block any annoying, time-consuming parts of website. If I need to go on some website regularly, and they happen to have a news section I don't care about (like their twitter feed), I just block it to get it out of my way.

* even use a text-only browser (I currently use w3m, which could show images in theory) for things like HN. HN itself works well, and its good links as well. You just trim a lot of the fluff, ads, etc.

* an easy way to sync files between your mobile and your computer (I use a combination of "Notes to Self" in Signal with an auto-destruct of 1 week for temporary stuff so that I don't have to delete it manually, and syncthing for longer-term things)

* script your way out of any repetitive task: if you need to register periodically to something, either use their API if they have one, or use selenium to automate it. I was really surprised how little time it took me to write my own script and learn how to use selenium.

* in general, rely less on proprietary software: it has the potential to break ("introduce new and shiny features and somehow make some old ones disappear" or just change the pricing-model) more regularly, and you'll have to switch which can be a burden. If some free (libre) software breaks hard for a lot of people, chances are that a fork will happen and the transition will be easier. This also applies to SaaS.

* try to avoid desktop apps: they don't compose well, you cannot easily script them compared to a CLI. It's also better than having a full remote desktop when you resort to SSH (especially on bad connections).

* try to learn the default keyboard shortcuts of software you use, unless they're really crazy: less config (which you'd have to sync and maintain), easier to use a computer which is not yours if need be

* regularly check that the commands you write in your terminal are not too verbose (use aliases / functions): [https://news.ycombinator.com/item?id=22853646](https://news.ycombinator.com/item?id=22853646)

* check what's possible with frameworks like [https://github.com/sorin-ionescu/prezto](https://github.com/sorin-ionescu/prezto)

* some dotfile repository to get you started in 5min on new computers with the same setup you're accustomed to.

* mutt (mostly to easily write emails in vim and grep emails from the terminal)

* cronjobs and reminders (I get new music albums on my phone regularly from my music library, so that I don't have to choose them manually (it's my library so I know I like them anyway). I used to actually spend time choosing music from my own library.)

* typing from your phone is inefficient, avoid it if possible. Batch your (non-time-critical) messaging. Most modern messaging apps have a desktop version these days.

------
2019-nCoV
Docker for local dev environments. Easily 100s of hours saved from needless
tinkering to get n services × packages working in harmony, all to have to do
it again 3 months later after an OS update.

~~~
nsomaru
I wonder what OS and stack you are programming that an OS update can break
your dev env?

~~~
caleblloyd
I use Ubuntu as my daily driver and apt packages are updated when upgrading
versions. For example moving from 14.04 to 16.04 with `do-release-upgrade`
made the default PHP version move from php5 to php7.

~~~
input_sh
To be fair, 14.04 to 16.04 is two years worth of upgrade.

Skipping from one LTS to another should probably include some breakage.

------
abinaya_remote
\- Remote Leaf - Saves hundreds of hours in the job search.

Remote Leaf collects remote jobs from 40+ remote job boards, social media
feeds & 1200+ company career pages, LinkedIn and sends the ones that apply to
you.

------
MisterTea
Anything networking that isn't plan 9.

Here's how easy it is to remotely play audio on a stereo hooked to a raspberry
pi:

% rimport -a -u mrtea pifi /dev/audio /dev ; play music.mp3

oh, you also wanted to play the mp3's in Shelley's music directory (provided
shelley lets us...)?

% rimport -a -u mrtea shelpc /usr/shelley/mp3 mp3 ; play
mp3/shelleysfavorite.pls

That rendering job is going to clog up your cpu but you'd rather play doom.
instead, run the job on many core server cerberus:

% rcpu -u mrtea -h cerberus -c rendercmd -args

compile and install a program for arm64 so you can also run on raspberry pi
3/4:

% objtype=arm64 mk install

The above commands require little to no configuration or external tools to
work. You dial a machine and ask for resources; if you have permission, you
will be granted access. If you want a windows domain like network auth you
point your systems to a single machines auth server instead of the local auth.
The c library is so streamlined that it makes c fun to use again, Go is
directly inspired by it. compiler tools kept simple and cross compiling is a
non issue, just change objtype. Even system libraries such as tcp
communication is dead easy:
[http://man.postnix.pw/9front/2/dial](http://man.postnix.pw/9front/2/dial). No
shared libraries. Instead you write programs called file servers which provide
services as sharable resources. Every other OS by comparison is horridly is
broken.

Unix is broken. OSX is built on broken. Windows took broken to new levels. And
every "new" OS is a copy of broken written in fad language du jor; e.g. Redox
OS. You want a sane computing platform built by hackers for hackers? Run plan
9.

