Live data from Hacker News

Ask HN: Programs that saved you 100 hours?

news.ycombinator.com

301–310 of 531 posts

Re: Ask HN: Programs that saved you 100 hours?

#302

- 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.

Maybe it’s gotten better, but that same reason made me switch from windows to macos(with some Linux in between, which was not great indeed). That plus not having to reboot every time you sneeze.

I literally never rebooted my Windows 10 laptop other than for rare updates or driver installs that required it.

OTOH I have to reboot Ubuntu from time to time (once every week or two) because I can't solve a problem (eg. the suspend getting in a snit).

Re: Ask HN: Programs that saved you 100 hours?

#304
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...

Re: Ask HN: Programs that saved you 100 hours?

#305
post #158

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-for…

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

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.

Re: Ask HN: Programs that saved you 100 hours?

#307
post #95

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 wireframin…

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

Re: Ask HN: Programs that saved you 100 hours?

#309

- 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.

Odd. Completely the opposite experience here. Windows requires searching and installation of drivers and configuration via GUI. Linux has drivers built in so just works. I haven't had to install a driver manually since ditching nvidia a year ago. And all my config lives in text files on Github.

I'm guessing you haven't tried Linux in 10 years or so, but even then I don't understand how Windows does any better on the drivers front.

Re: Ask HN: Programs that saved you 100 hours?

#310

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/resiz…

I wasn't aware iTerm2 supported this and now I'm very pleasantly surprised. It's not possible to overstate how thankful I am that you pointed this out.
Post reply on HN