When I first started programming, I didn't use a terminal multiplexer and finding tmux was a sort of revelation. I joked once on discord that "life before tmux was not life". It strikes me there are probably many other programs that I am not aware of that would be useful to know about. 

I've occasionally found Luke's The Best Textbooks on Every Subject thread useful, so I thought a similar thread about software may be interesting. 

Here are the rules:

  1. Post the name of a program for a given need.
  2. You must have tried at least 2 other programs designed for the same/similar class of problems.
  3. You must briefly name the other programs you have tried and why you think your chosen program is superior to them.
The Best Software For Every Need
New Comment
225 comments, sorted by Click to highlight new comments since:
Some comments are truncated due to high volume. (⌘F to expand all)Change truncation settings

Software: Obsidian.md

Need: Knowledge management system.

Other programs I've tried: Roam, dynalist, tiddlywiki, lightweight or physical note taking systems.

If you're not using a personal knowledge management system I highly recommend you read about what they can do for you, possibly under "zettlekasten" or "digital gardening". I wish I'd started earlier. Obsidian.md is sadly closed source, but it works entirely on standard markdown with locally stored files. It has a thriving thriving plugin community supporting things like sql queries of your notes, kanban boards, and spaced repetition.

7Rudi C
I have tried Obsidian, Joplin, Logseq, Notion, Evernote, Onenote, Google Notes, Apple Notes, and various other markdown editors. I have ultimately found emacs’ org-mode plus git (for syncing, backups, and, well, version control) plus ripgrep/fzf (for searching and quickly jumping to a file/section) plus org-super-links (which provides automatic backlink insertion/deletion) plus gpg (for encrypting sensitive files/sections; emacs and org-mode support for gpg is superb) to be leagues ahead of the competition. Its mobile story is pretty sad though (There are some options, but by its very nature org-mode shines when it is run by emacs. And emacs isn't too mobile-friendly. iOS also doesn't let us run emacs directly (Ask yourself how an OS could be allowed to exist that doesn't allow you to run GPL software.), and so SSH needs to be used.) Emacs (and org-mode) reward investment and self-extensions, so if someone is adamant not to invest in their tooling, I would recommend Obsidian. Beware that Obsidian is a closed source tool and any investment you do make in it is likely to become obsolete in ten years. Some examples of extended usages I have had with org-mode this week, to give you a taste of possibilities: * Managing my various irregularly recurring bills (no credit cards or any kind of auto money retrieval here) * Doing some NLP work, I marked up different words via a custom markup extension. This visualizes the words differently and lets me jump between specific classes of words (e.g., command verbs). Screenshot: https://files.lilf.ir/tmp/tmp.5L6JeSJoCw.png * Doing some other NLP work, I easily changed the execution machine of the code cells in my notebook to a remote machine. Did I mention that org-mode notebooks support multi-language, multi-session notebooks, and that you can use Jupyter kernels or code your own backend(s) to support a new language? * Whenever I like the music currently playing, I go to a playlist file, and type some keyword which then ge
2pjeby
That seems really unlikely to me, as several plugin developers who write open source plugins for Obsidian routinely reverse engineer Obsidian's internals (in order to improve our plugins). Obsidian, after all, is built as an Electron app (or Capacitor on mobile) in TypeScript, with AFAIK the only non-JS bits coming from open source projects (such as various Node modules and Electron/Capacitor themselves). Thus, the entire code base is merely partially obfuscated, rather then being a truly "closed" source app. It is only "closed" in the sense that it is against copyright law to create and distribute your own version. So for Obsidian to disappear altogether, it would require both 1) the end of the current entity with ownership, and 2) that end to happen in such a way that a successor copyright owner exists to actively stamp out any attempts to create a community build -- or an API-compatible clone. That could happen, I suppose. But it's hard to imagine what company would have deep enough pockets to do it, and yet also feel threatened enough by Obsidian to want to eradicate it.
4Tom
This is an important but tricky category. I liked Notion for a while, and it certainly has done well, but it has pivoted to the Enterprise market and away from individual consumers, and more importantly, it is just too slow.
6Dustin
I'm currently on Notion and have went through many off these different things. I'm always worried about getting too invested and then the company going under. However, the open source things are always a little too rough around the edges for my taste.
4Robert Miles
This is the factor that persuaded me to try Obsidian in the first place. It's maintained by a company, so perhaps more polish than some FOSS projects, but the notes are all stored purely as simple markdown files on your hard disk, so if the company goes under the worst that happens is there are no more updates and I just keep using whatever the last version was
3Tom
To address that concern, I think it is important that a service has good data export.  One thing that is good about Notion is that the data you are creating is fairly generic: markdown and tables, so now that they are popular and have a public API we are seeing lots of services for moving and sync'ing their data with other services. I've thought about trying Roam, but it is expensive and I worry that, if I use it for a while but then decide it is no longer worth the cost, how will I move that data elsewhere?
2Hans R
I'm currently using Notion and agree on the "slow" part.  However, what Notion does give you, which other, mostly markdown / flat-file based systems do not, is a form of "data-base", or more truthfully spreadsheet-like applications with light formulas, sorting, filtering etc. Also, the free version also includes sharing / "publication" and sync. I do not use it heavily, but those are the reasons I'm sticking with it for now.
5qazzquimby
Obsidian's dataview plugin might have all the database features you're looking for. Strongly agree with sync and publish though. The free solutions I out together for each are ugly.
2Hans R
Thanks for pointing me to it, if I make the jump in the future, that might come in handy. Although it does slightly take away from the appeal of pure markdown files.
1Tom
Yes, and having that database like functionality, as well as the usual note taking, is really a great addition. And sync is critical IMO. If they would just make the web front-end faster I would stop looking for alternatives.
2Nicholas / Heather Kross
For those worried about Obsidian not being FOSS (like I was), keep in mind that you can avoid paying for their Sync feature. Note-encryption, and even some Internet port-blocking/monitoring/offline-usage, can also probably prevent note exfiltration. (I mean, you still need your own good opsec. But you can do it with Obsidian I think, just as you could do it with a FOSS notetaker that, like Obsidian, stores files in a nice open format like Markdown.) There's also a FOSS(?) alternative to Obsidian, but it's harder to use and may also be a data harvesting scheme from China and may also not be open-source/updated any more???
1jellyfin
The things that are most valuable to me in roam (other than the obvious) are: * the daily notes page * phone2roam * each block is its own unit I assume since Obsidian has such a great plugin community, that the phone2roam functionality exists there. But last time I checked, there was nothing like the daily notes page in Obsidian and it also wanted to treat each page as a unit rather than each block.  Have those shortcomings been overcome yet?
2pjeby
Blocks can be linked and embedded; if you're not using a plugin, you need to begin typing a link like [[some page#^ and then you'll get a selection of blocks within that page. It's much easier with community plugins like "Copy Block Link" or "Carry Forward", though. Blocks can be linked or embedded/transcluded, as can page sections designated by heading text (e.g. [[My Page#Some Section]]) and autocomplete works for those as well as link hovering. (You can ctrl-or-cmd hover a link even in edit mode to see a popup of where it goes, and if the link is to a section or block the popup will just be that section or block.)
2usizu
There is a plugin called Daily notes and another called Periodic Notes (which also does weekly and monthly notes).  Also yes you can now transclude individual blocks/headers as well as whole pages.
1masasin
I'm using Obsidian as well. IIRC there is an open source alternative that aims to work with Obsidian markdown files (with features still being added the last time I looked). I forgot what it's called, though, and it doesn't have the same plugin ecosystem either.
1dajare
It's possible that you have Zettlr in mind? And possibly not! But given the high degree of overlap with Obsidian's approach (Zettlr's forums/discussion address this matter in several threads), it's worth noting in this curated post. It, too, is a Markdown based writing + note-taking + idea-connecting (Zettelkasten model) app which is open source and cross platform.
1masasin
I think it starts with (or contains) an F, so I don't think it's that. Maybe Foam?

Software: Anki

Need: Remembering anything

Other programs I've tried: Supermemo, Mnemosyne, Quizlet

Anki is a free and open-source flashcard program using spaced repetition, a technique from cognitive science for fast and long-lasting memorization. What makes it better than its alternatives are the countless plugins that can customize your learning experience and the fact that you can control the parameters of the algorithm.

I used Anki for 3ish years and SuperMemo for the last year, and have to say I've liked SuperMemo exponentially more because of it's incremental reading feature, where you put hundreds of sources to learn from (like lesswrong posts) into it, and go over them over time and can rank them by priority. Is far less of a pain to learn from things then making cards one by one.

2Morpheus
There is an Anki add-on that basically provides the same functionality with a pretty impressive feature set. Personally I found it a bit clunky to use and stopped, so I might look into SuperMemo.
6digital_carver
I used the other Anki add-on for Incremental reading enough to be convinced of IR's potential, but unfortunately that addon has enough issues that it's not really usable for me. I've had the one you linked to installed for a while (based on many recommendations on Anki website and reddit), but I never figured out how the UI actually works. For now, SuperMemo definitely seems to have a lead when it comes to IR.
1Raj Thimmiah
you might want to try dendro.cloud which is made by long-term SuperMemo users to be an easier alternative to SM. Unfortunately I think they're in the midst of a redesign though so they may not be accepting more registrations
3Raj Thimmiah
If you want to try it again, I'd be happy to teach you (and anyone else interested!). It took me like 5+ months on my own to even start incremental reading because I couldn't figure out the documentation. I've found with 1-1 teaching though that in ~1-2 hours I can get people to being able to do ok IR. Also: For people interested in either Anki or SM (or just learning/SRS in general), I recommend joining the SuperMemo.wiki discord server There's an anki discord server but the SuperMemo one tends to be more active/more interesting discussion
5charlesoblack
On the broader topic of SRS, how do you deal with ever-increasing workloads? I'm a user for 4 years now and have been struggling with my current workload, unable to add any more cards.
-4ChristianKl
To me this suggests that your cards aren't well formed or you try to memorize before understanding. Spend more effort on learning a fact before you put it into the SRS and work on making the cards clearer.
2charlesoblack
I don't quite think this is it. What I am learning is language (specifically, vocabulary) so there isn't a lot to understand before putting a card into SRS, and the card can't be much clearer than "biblioteca -> library".   What I mean about ever-increasing workloads is that at some point, even without adding new cards, you have long-tail cards that you have to review and give you a pretty consistent workload for a long time (because they're long tail cards and have long intervals and are spread out). Right now, without adding any new cards, I do ~250 cards/day; this is barely less than what I was doing when I was learning new material 2 years ago (~300 cards/day).
-3ChristianKl
Generally, if you follow the SuperMemo recommendations you first learn that library is the word for biblioteca and only after you have learned that you create a card and put it into SRS to avoid forgetting the card. You don't just put that card into a SRS without having learned the word first. Most of the time in SRS is spent because you forget cards. If you build a good foundation by learning before memorizing you reduce that time.
7charlesoblack
I have to be honest, your tone is coming off a little condescending. I am sure you don't mean it that way, but please make it explicit. These aren't new cards that I'm studying. Like I said, I've been using Anki for 4 years now; I have learned almost 20k cards, and have about 465k reviews. I have done my due diligence and read the 20 SRS rules several times. Perhaps I'm just not being clear. My current problem is that, out of ~250 cards I do each day, ~200 of them are mature, and that number doesn't seem to be going down. Right now, I have about 18.8k mature cards, and only 850 young cards. My time is increasingly being taken up by the mature cards, and the more I study, the larger that corpus will become. So how does one deal with that fact? The cards seem to accumulate over time, and not spread out to infinity in a way that you'd eventually only do a handful of cards a day and still remember everything.
4TurnTrout
Can you show us what your future card distribution looks like (# of cards vs days in the future)?
1charlesoblack
Sure. Caveat: I haven't actually done any cards the past 8 days (finding it hard to motivate myself...) so this is likely low on young cards, but accurate on mature cards. First image is desktop Anki, second is AnkiDroid simulations (which in my experience have proven pretty close to the truth). https://imgur.com/a/Swb6UjH The second graph has a large spike in the first week because of the past 8 days. I'm also not sure what new cards AnkiDroid is seeing since I don't have any new cards being added. The number of reviews drops in about 5 months, but even a year from now, I'm not even at 2/3 reviews of what I'm currently doing (which would be ~160 cards). It's a little unsatisfactory since it assumes I'm performing adequately during that whole time and my reward is being able to add maybe 8-10 new cards a day, after a year of strictly review.
5TurnTrout
This is really weird. Have you done cards regularly since adding them a few years ago? Or did you catch up from a backlog recently?  I had a deck with 10-13k cards and I was able to get down to like 40 cards/day after a year or two.
1charlesoblack
Yes, I used to be a daily guy. Over a graduate degree it got much more difficult to keep that up so I did have a backlog coming out of that, but I'm caught up. I do think partly it's my settings that I haven't touched much, but that doesn't really help me right now of course, just me in a few years. It also mostly just pushes the problem further into the future. Some advice I've seen thrown around is that at some point, one should just retire cards and rely on seeing the information naturally in the real world and not in SRS; that sounds like a risky thing to do to me, but when I looked back at the backlog I had and what my accuracy was there, I estimate I had ~50-70% retention even after nearly 2 years of barely any reviews. (there's a lot of issues with estimating that, since Anki doesn't tell you something was overdue - so I had to calculate it, but some cards are double counted, etc) So overall I think that that might be a viable option: to, at some point, filter cards out that have intervals greater than a certain length, as well as filter cards that you spend too much time/lapse too much on. I haven't found any good anecdotal reports of this approach, though.
1Ansel
It's possible you're in Ease Hell. It has been a while since I got into the weeds with my settings but there are pretty good reasons to change the default ease settings and reset the ease on old cards, as I recall. I'm also in the camp of only using the "again" and "good" buttons, since the other ones affect ease iirc. Anyway you've been at it longer than I have but maybe the ease hell thing is new info for you or other anki users.
4Gunnar_Zarncke
Anki decks by LW users points to http://www.stafforini.com/blog/anki-decks-by-lesswrong-users/  Anki on Android in 60 seconds
1milo
Did you try readwise? I found it more modern  with vast array of source recordinf
-5mb99

Software: Pycharm, and other jetbrains IDEs https://www.jetbrains.com/pycharm/

Need: Programming environment

Other programs I've tried: Vscode, atom, sublime, etc.

Jetbrains ides make so many things easier that I would have a pretty bad time if forced to work without them. In particular their debuggers probably save me hours of pain every week. I also appreciate the perpetual license, where any version owned for at least a year is kept for life.

3Darmani
++++  Anytime I try a new language, first question is "Is there a JetBrains IDE or plugin for it?"
2burrito
Strongly agree. As a relative beginner I've found the automatic code completion and method listing/descriptions incredibly useful.
4Sinclair Chen
github copilot is autocomplete on steroids and it's only available on vscode
2Tomás B.
NeoVim, too. I think PyCharm has it, too.
2Dustin
Strong agreement from me.  I really hope CoPilot and Codex or similar comes to their IDEs.  
2Maxwell Peterson
Seconded - I spent years in emacs then tried PyCharm for my Python coding and it's just so great. The static analysis is so useful. 
1Phoenix Eliot
Having used both PyCharm and VS Code for quite some time now, but working for a bootcamp that uses VS Code, I've switched to mostly using VS Code for things. It is certainly missing a few nice things from PyCharm, but here's a few comparisons I notice often: * Much less resource intensive * Much faster startup time (so I can use it for quick text edits with the power of IDE text editing) * Almost-as-good debugger (the interface arrangement is just a bit worse, but functionality is very similar for my uses) * Strong extension ecosystem * Especially well-tuned for web development languages (HTML/CSS/JS, and TypeScript, which has first-class support) It is not as good at working with Python as PyCharm, but it's passable. The advanced language-aware features (like smart refactoring / extraction of code) work OK but are a little crunchy at the moment.
0ThomasJ
+1, CLion is vastly superior to VsCode or emacs/vi for capabilities and ease of setup, particularly for C++ and Rust

Software: VsCode

Need: Code editor for Javascript + Python + Misc. file editing 

Other programs I've tried: Notepad++, Vim (I never became fully proficient), Sublime text,  Webstorm

I tried a lot of code editors over the years. VsCode isn't perfect, but it's been the best experience I've had so far. The plugin system seems the best of what I've observed so far. Some of the Jetbrains editors are also really good (like Webstorm), but I really liked how I feel quite comfortable making VsCode a good IDE for basically any language in a few minutes, and I like a lot of the remote desktop stuff that is built into the editor.

Bias: have been a regular Emacs user for 2+ years for org-mode and programming mostly in Rust and python, but not in js. Have used VsCode but not extensively.

VsCode looks extremely easy to get up and running in, but generally looks simultaneously heavier and lighter than I want out of my editor. If I wanted an elegant customizable standalone code editor, I'd use NeoVim. If I wanted a customizable organization layer on top of my operating system, I'd use emacs.  Eg, I see applications like Roam and Anki get mentioned reasonably often here. I use emacs packages for those tools, and so on.

5dajare
For those attracted to VS Code, but who wish to avoid its non-open "telemetry" tracking, there is VS Codium:
4Edward Pascal
Why would I used it over Sublime Text? You said you have some experience with ST, so I would like to know why VsCode wins.
5habryka
Sublime text was fine as a plain text editor, but it was never a good IDE, in my experience. Things like VSCode's git integration, jump-to-definition in a ton of languages, good hover-over definition support, automatic refactoring and automatic imports are things that have a big impact on my productivity, and don't seem to be Sublime's strenghts.
1dr_s
VSCode has generally better code hints, though recently Sublime improved in that respect. However, VSCode also has a bad habit of getting REALLY slow when working with extremely large files, because it tries to parse them all, I guess.

If you use cut (or awk or sed for cutting), try https://github.com/sstadick/hck

If you use less or cat for source files, try https://github.com/sharkdp/bat

If you can't ever remember the syntax for xargs (sorry, don't have a 2nd other program), try https://www.gnu.org/software/parallel/

If you're using standard command like tools for munging CSVs (like cut, grep, sed, etc.), try https://github.com/BurntSushi/xsv

If you use grep (or ag) try https://github.com/BurntSushi/ripgrep

Each of these programs only improves quality of life a little, but they make doing simple things without leaving the shell so much easier.

1Rudi C
If you use cut (or awk or sed for cutting), try perl. I have found it to be way more intuitive, powerful, and only a bit less concise.
1Jan Czechowski
* for ripgrep. This is my standard code analysis and config searching tool, I use it multiple times a day. Always feels like papercut when I work in a server with only grep

Software: excalidraw.com

Need: quick diagramming

Other programs I've tried: draw.io, miro

Miro is great for involved, collaborative diagramming with a team when you want to build out a design or idea in great detail, but sometimes you just want to quickly sketch something that looks good and share it with a co-worker.

My go-to software for this is excalidraw. It's limited to shapes, lines, and text (no fancy UML), but if that's all you need to get your idea across it's extremely quick and easy to use.

5Robert Miles
Holy wow excalidraw is good, thank you! I've spent a long time being frustrated that I know exactly what I want from this kind of application and nothing does even half of it. But excalidraw is exactly the ideal program I was imagining. Several times when trying it out I thought "Ok in my ideal program, if I hit A it will switch to the arrow tool." and then it did. "Cool, I wonder what other shortcuts there are" so I hit "?" and hey a nice cheat sheet pops up. Infinite canvas, navigated how I would expect. Instant multiplayer, with visible cursors so you can gesture at things. Even a dark mode. Perfect.
3Gunnar_Zarncke
Another very simple one (and easy to self-host too) is WBO: https://wbo.ophir.dev/ 
2NunoSempere
Oh wow, this is great.
1ambigram
It's been an absolute delight using excalidraw, thanks for the rec! Everything just works and it looks pretty:)
1JessRiedel
Does excalidraw have an advantage over a slides editor like PowerPoint or Keynote?
1tcelferact
I would choose it for very different use cases to slides; I've never diagrammed anything in a slides editor. I have historically drawn things in excalidraw, screenshotted them, then pasted them into a slides editor though.
1philip_b
I have a pretty good competitor - https://tableaunoir.github.io. Here's how they compare: * Excalidraw - is more polished. * Tableau Noir - supports LaTeX formulas. It's weird in that it requires a few additional key presses: (1) make a text field; (2) write a formula enclosed in single dollar signs; (3) with the cursor anywhere in the text field, press enter, then backspace (this step is silly, but otherwise it doesn't work); (4) press Esc. * Tableau Noir - has an eraser. * Tableau Noir - you can insert pages from pdf documents. * Both - no registration, no bullshit. * Both - work alright on ipad in the browser, although I have tried both only briefly.

Requests thread

I'd appreciate it if someone touched on differential equation solvers

5Gunnar_Zarncke
What level and type of application do you need? Wolfram Alpha can do differential equations for example: https://www.wolframalpha.com/input/?i=y%27+%3D+y+%2B+sin+x  At times I have used Maxima, Matlab, and Mathematica to solve differential equations but to give specific recommendations more input about the use case is needed.
2NunoSempere
As powerful as possible? In particularly, I'm trying to solve an infinite-horizon optimal control problem with restrictions on what the inputs can be (e.g., not lower than zero), and the resulting equations are quite gnarly. The premium version of Wolfram Alpha couldn't really deal with them.
2Gunnar_Zarncke
In that case, you are probably beyond what I can help you with. 
4qassiov
Have you used DifferentialEquations.jl? From my reading, it seems to be the most performant solver out there — and I personally love using Julia and its ecosystem. There are some really interesting talks by Chris Rackauckas about what's possible with DiffEq/SciML packages — ModelingToolkit.jl seems especially exciting for automating the development of scientific simulations.
2NunoSempere
Ohh, this looks quite nice, thanks.
1Sting
Did you end up using DifferentialEquations.jl, or did you prefer a different solver?
4NunoSempere
I ended up solving the equations either analytically (partially with the help of Phil Trammell), https://forum.effectivealtruism.org/posts/FXPaccMDPaEZNyyre/a-model-of-patient-spending-and-movement-building or through simulations https://github.com/NunoSempere/ReverseShooting https://github.com/NunoSempere/LaborCapitalAndTheOptimalGrowthOfSocialMovements
1Sting
Thanks for the update and links. 
3Tamay Besiroglu
Mathematica is the most powerful solver I’ve come across (it’s basically Wolfram Alpha with additional computational time).
7JenniferRM
Seeking: open source programs for editing and manipulating and displaying causal/bayesian graphs on a desktop with a mouse and keyboard. Sometimes I use Belief And Decision Networks (last updated in 2016) but I haven't found and used two others of similar or greater or lesser quality to compare it against.
3technicalities
I love Sketchviz for 10 second prototypes, but it requires the DOT language, and if you need very specific label placements it's a nightmare. For using a mouse, yEd is good. Exports to GraphML for version control.
2JenniferRM
Does yEd have the ability to: (1) treat nodes as having "states" with a default prior probability and then  (2) treat directional node-to-node links as "relevant to reasoning about the states" and then  (3) put in some kind of numbers or formulas inspired by Bayes Rule for each link and then (4) later edit the graph on the fly (with "do()" or "observe()" basically) to clamp some nodes to definite states and then  (5) show all the new state probabilities across all other nodes in the graph?
1technicalities
Ooh that's more intense that I realised. There might be plugins for yEd, but I don't know em. Maybe Tetrad?
6Elizabeth
Replacement for grammarly. It is definitely better than nothing at all, but it's aggressive about commas in a way I haven't been able to train it out of.
3Vlad Sitalo
I've been using and happy with https://languagetool.org/
5NunoSempere
I'd appreciate it if someone touched on shells
3Rudi C
I am now too invested in zsh to find any other shell worthwhile, but if I could go back, I would not use a traditional shell at all; I would code a custom shell using Common Lisp. If this is too much effort, I would recommend trying out both zsh (possibly use OhMyZSH if you don't want to waste time setting it up properly yourself) and fish, and sticking with the one you like better.
3niplav
Here's my attempt.
7NunoSempere
Cheers, though zsh is conspicuously missing.
4niplav
Yes, it's just that I haven't tried it yet.
2gilch
I kind of like Xonsh, but that's because I'm used to Python. It still has some rough edges.
1mdt
I've enjoyed using fish. The biggest thing for me is the autosuggestions, that alone has been a great QoL improvement https://fishshell.com/docs/current/interactive.html#autosuggestions
4yagudin
I am looking for text-to-speech tools for various contexts.  As of now, I am using * @Voice Aloud Reader (TTS Reader) and a custom script to extract articles from webpages for Android (supports .epub and .pdf as well); * Capti Voice on my desktop for everything.
4Emrik
Seeking: A program/framework to build models that can test social-epistemological hypotheses. Basically, I want to be able to run a visual simulation of little circles in a web where I code in the rules that determine how the circles interact with each other. I imagine something similar has been used in evolutionary simulations, but I don't know where to find it.
2KNakamura
NetLogo is the easiest entry point. Mesa is gaining support.
4Kinrany
Pieces for a general purpose personal computing system. Ideally: * Edit data by hand * Store as plain text * Self-host, access from any device * Write formulas to derive data automatically * Mix and match structured data (markdown, tables, nested lists, whiteboard) * Search and navigate, like any wiki * Automate through a web API and webhooks * Collaborate in real time
5Tyrathalis
Trivial answer is Google Docs and equivalents. Etherpad is one such equivalent that has some advantages in respecting privacy and self-hosting. Seems likely you've considered cloud-based office software and found it lacking, though. Personal knowledge management software like Roam, Obsidian, Logseq, etc., is generally trying to offer this level of generality. Many of these variants store data in simple data types, allow several different structures (markup languages, tables with formulas, nested lists, embedding of quick drawings, and so on, with OneNote as one of the most flexible on this point), and strong searching and crosslinking. Automation is less well-supported, both in running scripts internally and in interfacing with an API. Collaboration is very poorly supported, but this is a significant development area and several of the major contenders are competing to release it first. However, the gold standard in general purpose computing has got to be emacs. The only one of these things that emacs org-mode is bad at is real time collaboration. If you want collaboration in emacs you probably can't make it much faster than pushing and pulling git commits. For everything else, storing your contents in a git repo and accessing them with emacs is highly effective. The downside is that maintaining your emacs configuration in a usable state is difficult and requires significant expertise. Packages and distributions change rapidly and often break each other, so you need to be good at troubleshooting and keep up on the development news. Using a good distro like Doom Emacs or Spacemacs makes things easier, but definitely doesn't solve the problems. Not to mention the learning curve, which isn't trivial. It isn't worth it for most people, but it's certainly the closest you can get to a fully general computing system using modern software.
4Kinrany
Thanks! I wasn't aware of Etherpad. Other Google Docs equivalents seemed impossible to self-host and extend, so a non-starter. I agree with your overview: * Etherpad provides collaborative editing, but integrating it with other services will probably take extra work * Logseq has better structure, but worse automation * Emacs can do most things on one computer, but rapid sharing is even harder
2pjeby
Obsidian.md meets many of your requirements (using Dataview and other plugins), but not web API or real-time collaboration (unless you have a good+fast file sync tool and don't mind a 1-2s update interval). Obsidian stores notes as markdown text with YAML front matter, and the Dataview plugin allows you to define code blocks that perform queries and format data, using either its query language or embedded Javascript. You can also insert calculated values, and it can use fields from YAML or marked up values in the bodies of notes. With other plugins you can do drawings (including script-generated ones through an exposed API), kanban boards, mind maps, ebook annotations, etc. Full text search is built in, with a lot of search operators. Want automation? Macro plugins and user-scripting plugins. Plugins that provide local obsidian:// URLs you can invoke from other programs to fire off commands. Plugins that let you invoke external commands on a note or folder, or launch calculated URIs, on demand. Or write your own plugins in JS. (There's even a web server plugin, though it's currently limited to statically serving your repo contents.) Want collaboration or remote? Use any file sync tool you like. If a file is changed on disk while you're editing, the changes are detected and merged, and the autosave interval is about 1s, so at least in principle if you had a fast enough file sync tool you could co-edit different parts of the same file. If you're editing different notes in different panes, the other person's edits will show up as soon as the file is closed after sync. None of these parts can compare with something specialized in that area, but a jack of all trades, master of none, is still often better than a master of one. ;-) And it doesn't hurt that it's free and extensible.
1Kinrany
Hmm, I guess conflict resolution would be garbage, but simultaneous editing is rarely a good experience anyway. Otherwise storing and sharing text files using a file sync service is fairly good compared to other options. Thanks!
3Darmani
I'd appreciate if someone touched on HR software and CRMs for small businesses. Also, collaborative document editing that isn't owned by Google.
4Aryeh Englander
My wife specializes in this and she says that's like asking what clothing should I buy. It depends on a lot of factors plus an element of taste. If you want you can message me - my wife says she's happy to help you work through the options a bit for free.
2vlad.proex
Free, universal financial tracker.
1jonathanmoregard
I am looking for a way to filter/manage event invitations/potential things to do. So an aggregator where you can "plug in" streams of events, such as: * facebook group events * general facebook events * meetup events * etc Maybe with some way to train a filter what kind of things I like. Bonus if my data isn't sold :)

Software: Microsoft Edge

Need: Web browser

Other programs I've tried: Chrome, Firefox, Opera, Vivaldi, Brave

I've stuck with Edge for about a year. I tried it out because they switched over to the Chromium rendering engine and I wanted to see what the fuss was about.  I'll tell you my main reasons for continuing to use it but note that these can exist in other browsers but don't work exactly like I want.

  • Collections. This features lets you add web pages and snippets of information into persistent collections of info.  Good for when you're researching a specific subject. I use this either for small projects or as a lightweight interim step before moving stuff into my main research gathering tools.
  • Vertical tab stacks. Instead of tabs along the top of the window, I have it set to put them on the side of the window. The bar containing them collapses down into just the favicons and autoexpands to a configurable width showing the page titles when I mouse over.

Web browsers are kind of weird.  They're all incredibly capable and needs-fitting and I would be very happy using any of them. Because of this I considered not posting about it at all, but in the end I decided "web browsers are all really good, but Edge has these features" is useful information.

4Hans R
Great rundown of Edge! Used the one's you've listed as well and stuck with Edge for a while, too. Now I'm with Vivaldi, and I'll nominate it for a slightly different category: The Emacs of web browsing - it has everything, but it could be better at quickly loading web pages. Software: Vivaldi Need: customizable web browser for keyboard-centric power-users  First cons, why I would generally still recommend Edge: * Vivaldi is more resource heavy * Vivaldi is slower than browsers like Edge or Chrome * Vivaldi requires a more personalized setup Now, what makes it best for the power-user in my opinion: * Keyboard centric via "universal search" * hit F2 and search for everything in the browser, like  * Bookmarks * open Tabs * All Actions in the Browser * Navigate links on webpages with shift+arrow keys * Very customizable UI * Most UI-Elements can be repositioned, the Tab bar can reside on either edge of the screen, the address bar can be effectively turned off * Might replace some applications, especially if you spend a lot of time in a browser * included email client * included RSS reader * included notes-app * includes web panels like Opera * Powerful Tab management * includes tiling in-browser, akin to tmux or similar * tab-grouping per host * tab-grouping with "accordeon tabs" - group tabs horizontally next to each other * tab-grouping with "tab stacks" - stack tab on top of each other and gain access to a second row of tab bar just for the active stack * Misc * Can perform macro-like chains of actions within the browser
1Rudi C
See also Nyxt. I haven't tried it myself yet, as its macOS support seems to be immature, but it is one of those projects I have an eye on. It could one day be the emacs of web browsers. There is also https://github.com/emacs-eaf/emacs-application-framework, but the security might be sketchy. I am not holding my breath for performance either.
3qassiov
Edge's 'read aloud' is also excellent; I haven't found an alternative browser or extension that sounds as natural. The fact that it works with PDFs is helpful for proof-reading, too (especially when it highlights each word it reads).
3Yoav Ravid
Huh, it is quite good. My main gripes is it doesn't have a way to favorite certain voices, so you have to scroll through a big list to find the right one, it doesn't have automatic language recognition (like google translate), and when there's two languages in the same text, it just skips the text that isn't in the language of the selected voice. It makes it difficult to use it multilingually, But I expect it would work better for someone monolingual.
-2Tom
In a case like this where - as I think you are suggesting - the alternatives are very similar and any would do, I think there is something to be said for supporting the ones that are doing the actual work of building the product, ie. Chrome.  It seems like MS didn't do much more then copy Chrome, put their telemetry in place of Google's, and add some bonus features to promote - so Google keeping Chrome open source is being used against them by their biggest rival. It's the sort of predicament that caused a number of smaller companies to abandon proper open-source licenses when AWS did the same thing to their products.  That whole saga was sad and bad for open source, and it would be sad too if Google did to Chrome what they've done to Android - adding some closed source components to make it harder for rivals to simply copy - but at this point I guess understand.  (I would probably feel differently if MS open sourced Windows or Office.)
2Dustin
I have sympathy for this argument, and I do assign some weight to this factor. That being said, it doesn't overweigh the other factors in my choice. Part of that is down to the fact that MS is (I haven't actually checked, just what I've heard) making good and substantial contributions back to Chromium...which Google then merges back to Chrome. Google does add closed source stuff to Chrome. The open source stuff is in Chromium and then Google adds their own stuff to that and releases that as Chrome which is closed source. 
-1Tom
Yes, it is just one factor. My understanding is that MS's contributions to Chromium are minimal so far and are mostly to address their own issues and priorities, but I guess such judgements are hard to actually quantify so they end up being subjective. Yes, I probably should have said 'Chromium' instead of Chrome, but I had understood that the closed portions of Chrome & Chrome OS were just the telemetry and the media decryption module (and I like what they did to reduce that to a minimum and make it optional).  Nothing like what has happened on Android where Play Services and the Play Store are substantial elements. So, I still think of Chrome as effectively, truly open source and Android not so much.
2Dustin
I agree there's a large gap between Chrome and Android on this...though I do think they're on the same spectrum. Agreed that MS has made their Chromium contributions in areas that are important to them, but then that's always the case with all contributors to OSS, no?  As of a year ago they'd made 1800 PRs from 160 devs. Of course, as you say, what counts as "substantial" is hard to quantify.  A PR can be a small typo fix or a complete reworking of a core technology, so it'd take a lot of work to pin down substantial-ness, and then a person would still be arguing about if it was important or not.
1Rudi C
I doubt Google can "add closed source components" to Chrome with any success. MS will simply recreate the extensions in open-source, getting a lot of mindshare and PR in the process. Android became what it is because Google was ahead of the curve and other companies did not know how useful mobile OSes were going to be.
1Tom
I don't think Google added much closed source to Android until after Amazon - probably Google's 2nd biggest competitor - forked Android for their own tablets.  In that case, it kinda' worked and the threat diminished, but never-the-less I think I agree with you - it wouldn't work this time - and I don't think Google will do it. It does suggest though that they would have been better off making Chrome closed source from the beginning (WebKit is BSD), and while I hate to say such a thing, I think the whole market would be better off.   Then, instead of all these copies of Chrome being the primary alternatives to Chrome, Firefox would be doing much better.  Mozilla would then be in a dramatically better financial position and could continue to make great contributions to open source in spite of Apple blocking them on iOS.  Maybe their increased user base and significance would even force Apple to relent!

Software: Ommwriter

Need: Editor for focused writing

Other programs I've tried: Google Docs, Focuswriter, VsCode, Scrivener, Writemonkey, Evernote, Roam

Ommwriter's design is maybe my favorite design of any software application out there. I sometimes just go into the program to relax and destress from a busy day, even if I don't have anything in particular to write. It's a really incredibly immersive experience that makes it a lot easier for me to work on writing tasks that require a lot of focus and that I easily tend to bounce off of.

6Hans R
I feel like you might enjoy Typora? Well, at least if you like markdown. Edit to elaborate what it does: A hybrid markdown editor (type markdown, see it rendered inline) with beautiful theming, great support for local workflows with images, zen-like typing mode and good support for the additions often found alongside markdown (syntax-highlighting, extended tables etc.) Edit #2: see also this comment, I think they did a better job than my comment.
1Benjamin Spiegel
I second this! I love writing essays in Typora, great for note taking as well
4MondSemmel
Thanks for this recommendation! I very much appreciate the minimalist philosophy of this program. That said, to anyone who has, like me, strong short-sightedness, note that Ommwriter's largest font size option is ~18 pt, and there's no other option to zoom in, either. (In contrast, I e.g. browse LW on 150% zoom.) I ultimately requested a refund because I didn't find this font size comfortable.
3Kaveh-Sedghi
What would you say makes Ommwriter better than Scrivener? 

Edit: I have switched to Samsung's App "Reminder", due to it being better supported and having additional features.

Software: Notification Maker (Android)

Need: Get periodically reminded to do certain things / tasks (e.g. taking Vitamin D3 daily)

Other programs I've tried: Any calendar or To-Do List app

There are a lot of things that I have to do regularly, but are hard to keep track off. In my calendar they would drown out the important events and in my To-Do Lists, they were not salient enough. This app allows me to create recurring notifications and set them to appear at specified times. Its ideal for keeping track of which supplements / medication you should take at what time and also perfectly suitable to be reminded to switch out contact lenses monthly or wash your bed sheets.

4Tristan Cook
I use Loop Habit Tracker [Android app] for a similar purpose. It's free and open source and allows notifcations to be set and then habits ticked off. The notifcations can be made sticky too.
2jaek
Google Keep has this feature if you don't want to use a whole app for this feature. On any note you can click the bell to make it notify you at a set time and on a set schedule. (I really like Keep as a note taking app but haven't tried Apple notes, evernote or others so I didn't recommend it at the top level)
1ErickBall
I use Life Reminders for this on Android. One nice feature is that the notifications persist until you tell it the task is done (or tell it to sleep until later).
1FlorianH
Great! + helps prevent clogging my gcalendar when I abuse of if for similar purpose - so far only on android, no win desktop/browser interface (?)

Software: BetterTouchTool

Need: Keyboard shortcuts and window-size management for MacOs

Other programs I've tried: Alfred, Karabiner

I set up BTT on every Mac as the very first software I install. I basically don't know how to use a Mac without shortcuts than I can use to resize windows to the left or right half of the screen, or full-screen them on the next monitor. Doing that with BTT has always been a super painless experience.

More recently I've also used BTT for more advanced keyboard shortcut creation, like a keyboard shortcut that brings up our internal analytics page, or pastes my current clipboard into my Roam daily notes. It also has great screenshot-editing tools that are built in, as well as a clipboard manager, which are the other two pieces of software I would otherwise need to install separately.

1Rudi C
hammerspoon, phoenix.js are opensource alternatives that are more powerful and lightweight in their niches. (BTT still has more breadth and ease of use.)

Software: emacs

Need: Code editor (and personal information management system, and the only good git ui, and an email client, and...)

Other programs I've tried: Sublime Text, Atom, VsCode, vim

Why emacs is the best: Emacs can be whatever you want it to be. It can do everything and anything, all in one unified space where all your keybindings work, all your plugins work, etc. There is literally nothing you can't change about it, and people have created many "modes" for it that do a lot of things. In particular, org-mode renders all of those todo apps pointless, because it's way better, and really the only viable option for personal information management. If you would rather a ui for git than just use the command line, magit (an emacs mode) is also your only viable option.

Don't bother with it though if you don't have some time to invest in learning it (same goes for any powerful tool). I also use evil mode because more thought went into vim keybindings than emacs ones. Honestly, emacs feels kind of like an accident that's evolved over time to become amazing (think JavaScript), and so there are some terrible defaults and so on, but the roughness around the edges can be changed, so I'd recommend using Doom emacs to start, because they've already done the job of creating a good set of defaults.

9Hans R
+1 for doom emacs. I'm an emacs novice and doom makes it palatable to learn - not easy, but it more clearly showcases the power of emacs.
2Pablo
I decided to switch to Emacs 1.5 years ago, and I feel it's the most important computing decision I made since... starting to use a computer? I may write a more detailed post on what things I use Emacs for, but here I just wanted to endorse the above recommendation, including its caveats ("Don't bother with it though if you don't have some time to invest in learning it"), and emphasize that Emacs can fulfill many needs besides "code editor" (I am not a programmer myself).
2sudoLife
Doom Emacs is also about Vim's powerful tools like norm and :%s. It's basically taking the best from the both world (granted, that's subjective). Love it!
1ibid
I always struggle whilst using Emacs against this feeling I'm not using it "properly", and as such spend far too long adjusting my config to be just right. Although extremely powerful maybe I'm too prone to tinkering to use it as my primary editor, that and I was forced to use a windows computer for a prolonged period of time last year due to corporate reasons, and Emacs on windows is terribly slow, although I think the likely culprit there is git on Windows being slow also.

Software: https://www.autohotkey.com/

Need: macros and key remapping for Windows

Others I've tried: a number, but none recently.  Hardware/firmware remapping in keyboards is superior, but not universally available.  

Once I got used to layers in programmable keyboards (in my case, caps-lock and the windows key used as layer-toggles), so that I almost never needed to reach for nav keys or even the mouse very often, I found that I hated using my laptop in a portable fashion without my programmable KB.  AHK allowed me to remap these keys and key-combos to work the same way whether on my good KB or on my build-in one.

caps-HJKL for arrow keys, caps-F/B for pgup/pgdn, and a few others near there for ins/del/home/end is life-changing for a vi user. 

3Dustin
AHK is good. However, personally I'd recommend AutoIT over AHK.  It basically do what AHK can do, but it has a better BASIC-like syntax. (Not to say that it is a good language) I've used a bunch of different solutions for hot keys and system automation (I'm even writing my own solution) I wonder if I should make a separate recommendation for this or if this comment suffices...
3Tao Lin
I agree keyboard remapping is huge, and I use AHK, but I'm annoyed every time I mess with it - the service crashes sometimes, the config syntax sucks.

Meta-recommendation: https://suckless.org/rocks/ for "quality software with a focus on simplicity, clarity, and frugality". Likely to be most useful to command line users.

3kilotaras
Comma got picked as part of the link, here's a fixed one.
3NunoSempere
Thanks, fixed

Raise your monitor. This isn't software, but probably relevant to the same readers. Consider raising your monitor so that its center near-top is 20-27" higher than your keyboard, similar to how your head is 20-27" higher on your body than your elbows. I said "raise" instead of "raise or lower" because apparently 99% of people have their monitor too low.

I recommend buying something like this, which conveniently clamps onto the back of your desk and lets you set up your monitor at a good height. There are nicer desk-clamp moniter stands out there, but they don't seem to go up to 24"+, and you may need that much height if your keyboard is sitting on your desktop rather than a keyboard tray.

5ChristianKl
On what basis do you believe 20-27" to be ideal? It seems to conflict with common ergononic advice as found on websites like https://www.ergotron.com/en-us/ergonomics/ergonomic-equation that suggests the top of the monitor should be on eye level. In the past I remember having a monitor that high and I think it created bad posture habit involving overstretching the cervical spine and I now have it lower.
2Liron
I'm going off what it takes for me to sit up straight with my elbows 90 degrees and able to see my whole monitor without turning my head. I have a single high-res 32" monitor with important stuff in all 4 quadrants so I really need my eyes vertically lined up with the middle of the screen or close. I think even conventional ergonomics advice recommends boosting your monitor's height a little bit and using a keyboard tray. That's probably at least 20" from keyboard to monitor center, even if you choose to line up your eyes with the top of the monitor rather than the center. In your case, if you were overstretching your spine, I'd guess that lowering the monitor 1" or so would have been helpful, and that would probably still leave your monitor's height higher above the keyboard than most people's. In the website you linked to, I'm pretty sure the person in their video has not set themselves up right to optimally use the monitor. Imagine he often needed to refer to small text at the bottom of their screen where the MacOS dock is currently visible. Then I think he'd end up slouching.
2ChristianKl
I now have my 24" monitor in a way where the eye level aligns with the top of the monitor. I find that I can look at my whole monitor just by using my eyes without adding any tension. On the other hand looking 10 cm over my monitor is an act that does add tension around the atlas.  Evolutionary, I imagine that it works that way because it's quite important for hunter gathers to look down in front of them (you need to do that a lot when walking barefoot) but less often important to look up above themselves. The image does show what those people who make a living selling ergonomics equipment consider to be good. The best way to prevent slouching is to have some physical activity in your life and not try to force your body into looking up by requiring looking over the eye level. It's not just the website I linked. You find the same sentiment on all the top results for "optimal monitor height" on Google.
2Liron
Ok I agree that aligning your eyes to the top of the monitor is best as long as you can read the bottom section of the monitor without slouching. I edited my original post to recommend putting the near-top of the monitor at 20-27" above the keyboard instead of the center of the monitor. I use a 32" monitor, which seems to be the largest possible monitor that doesn't require much head tilting. I use in a small high-resolution mode, as if it's replacing an array of 4 monitors. I need my head to be somewhat below the top of the monitor in order to use the programming editor in the bottom half of the screen. I still think something is wrong with the first picture I posted. That picture looks like most people's default setup using the default Apple desktop computer stand. IMO the person in the picture above is most likely going to have a hard time with text near the bottom of their screen unless they slouch, use a keyboard tray, or lift their monitor. Here's a second picture that seems to me like a more realistic portrayal of the position associated with that setup: I believe that lowering the keyboard and/or raising the monitor would cause the man not to slouch. That would be consistent with my own experience.
1lpuerto
Yeah… I was reading the post you replied and I thought what kind of monitor OP had since now monitors are gigantic and the advice is to have to top at your eyes level, not the center. To you don't have to rise it, but to low it.
2ChristianKl
Here on LW a lot of people don't just follow the official advice and it's generally fine to recommend things that differ from the official advice. In those cases I however think it's important to explain why one considers the official advice wrong. I would be surprised if the advice came out of having a smaller monitor. I used to believe monitors should be higher too. Human biomechanics are complicated. This reminds me of one dance teacher I had you had a professional training in dance and who went to learn from other dance teachers in New York. After she came back she had the idea that the impulse during dancing should always go forward. Four months later all the women in her dance classes were a lot more tense during dancing.  From an naive point of view having a monitor higher exerts a force on being more upright similar to having the impulse being forward in the dance example which is also making the dancer more upright. I think that argument got me started to increase the hight of my monitor before I understood anything about human biomechanics. Unfortunately, I don't think I can easily explain the gear level of why it's that way in a comment, so I just point to the official advice and the problem having a higher monitor caused for my cervical spine.
4Dagon
+1.  And similarly - invest time and money in your keyboard!  You'll likely have to try half a dozen or more to know what suits you, but after the monitor this is the most important part of your computer-use experience.   I personally love https://ultimatehackingkeyboard.com/, but there are plenty of great non-split or even-stranger-layout keyboards that a lot of folks swear by.  
2Liron
Ah ya, it seems to me that good posture requires a split keyboard given how far apart people's arms are. I use Moonlander.
3Rudi C
(I simply use unused books to raise the monitor. Works like a charm.)
2Yoav Ravid
What about (tabletop) laptop users?
1Aay17ush
I put my laptop on a box on top of my desk and use an external keyboard and mouse to operate it.

Software: Yt-dlp

Need: Downloading videos from youtube

Other programs I've tried: Online webpages made for that purpose, torrents, ytdl.

Why its superior: It's actively mantained and it has integration with SponsorBlock.

An example command might be `yt-dlp -x --audio-format mp3 --audio-quality 0 --yes-playlist --sponsorblock-remove all`

[-]l0b0120

Software: Nix

Need: Package management

Other programs I've tried: Puppet, Ansible, Pip, Poetry, Virtualenv, Vagrant, NPM, Yarn, Gradle, Docker, Apt, Yum, Make, and many more I can't remember the names of.

It would be difficult to convince myself from ten years ago that Nix was even a good idea without trying it. The change is probably as fundamental as going from ./configure && make && make install to a package manager, or from no version control to Git. I'll give it a try

  • You can replace the vast majority of the use cases of the other programs above with Nix – it's not just another tool on the pile.
  • Do you ever work on more than one programming project? It's trivial to ensure they don't clobber each other, for example when they use different versions of NPM or Python.
  • Reverting to a previous version of your entire operating system configuration is trivial.
  • You don't need to write any rules to uninstall packages or disable services when you no longer need them, like in Puppet or Ansible - you simply remove the relevant line and rebuild.

Some arguments I can think of against Nix:

  • Builds can take a relatively large amount of disk space, but that's already really cheap and gett
... (read more)
3Leonardo Taglialegne
Strong endorsement. Having used ansible for work and Nix for my own computer, the experience is incomparable. As two additional "against" I'll offer these: 1. while Nix-the-idea and NixOS-the-operating-system are awesome and vastly superior to the alternatives (other distros I've tried: ubuntu, mint, arch, gentoo, debian, devuan, centos, ...), Nix-the-language is... suboptimal. Weird syntax, not awesome error messages (but at least if you get an error you don't get it halfway through an ansible playbook leaving your system broken UGH) 2. the documentation is... Not Great. A lot of the time I had to read the source code for nixpkgs which should not be needed? That considered, I still maintain it is architecturally vastly superior to the alternatives, in particular because error messages can be improved (for example, via the Nickel project), and the documentation can be fixed, without changing the architecture.
1Olivier Faure
As a counterpoint, here's my experience with NixOS: https://poignardazur.github.io/2021/09/08/nixos-post-mortem/
[-][anonymous]110

Software: Typora. Need: Markdown editing. Other programs I've tried: Boostnote, StackEdit, VSCode, Marktext

Most markdown editors have plain text on one side and rendered text on the other. Typora has a single Wysiwyg panel. You can edit it as if it were plain markdown, for example you can bold something by putting stars around it. But you can also edit it as if it were wysiwyg, by doing ctrl I, or through a menu. More importantly, it doesn't take up a lot of screen space and it's much more aesthetically pleasing to not have a bunch of plain text. The only other single panel MD editor I'm aware of is marktext, which was significantly less polished last time I tried it about a year ago.

Typora also supports custom themes, tree style notes based on directories, various exports, a gui for making tables, and a bunch of other features. I consider it to be a second generation editor and will never go back to the first generation dual panel editors.

2dr_s
Supported. I use Typora for all my creative writing, it's distraction free, does its work great, and helps me export to FF.net and AO3 really easily. 
1CraigMichael
Could you use it to make something like xpath-directed changes to an XML document? Like not just regexy things but if this tag or attribute in a tag does or doesn’t exist, add this.

Software: IDA

Need: Binary reverse-engineering

Other programs I've tried: ghidra, OllyDbg, Hopper

IDA is fast and well-featured. I've had multiple times where my process of having questions about a binary to figuring out the answer took minutes.

Hopper has a nicer UI, but works on fewer executables and does not analyze the binary as well.

IDA gets criticized for "having an interface designed by programmers," but ghidra is much worse in that regard. "A giant Java program written by the government" describes it well. ghidra supposedly has a collaboration mode, but I gave up trying to get it to work after much effort.

OllyDbg is not really comparable, being primarily a binary debugger. But IDA's built-in debugger is quite underrated. And their support is very good. I was among the first to use it for Android-hacking on Android 5.0, and found their Android debugger would not run with the new OS restrictions; they gave me a new version that would within a few days.

2PointlessOne
Have you tried radare2? If you have, how does it stack against IDA?
1Darmani
I've definitely looked at it, but don't recall trying it. My first questions from looking at the screenshots are about its annotation capabilities (e.g.: naming functions, identifying structs) and its UI (IDA highlighting every use of a register when you mouse over it is stupendously useful).
2oge
Just out of curiosity: what kinds of binaries do you need to reverse-engineer on a regular basis?

Bryan Caplan has been creating his "economics graphic novels" using an old "comic creator" software. He has a valid license, but they company that makes it went out decades ago, and the license server no longer exists. So I disabled the license-server check for him.

When I worked in mobile, I did it frequently. Customer would call us and say our SDK isn't working. I'd download their app off the app store, decompile it, and figure out exactly how they're using us.

It's also surprisingly frequent how often I want to step through a library or program that I'm using. If you link to that library as a binary, then (even if the source is available elsewhere) it's often easiest to debug it using a reverse-engineering tool.

Less everyday, but I've also done some larger projects involving REing. I started off in game modding 10 years ago. Last year, I did some election security work that achieved some publicity. https://www.nytimes.com/2020/02/13/us/politics/voting-smartphone-app.html

If you already know an example of the tool you are looking for, but it is not available for your operating system (or some other reason it doesn't fit your needs perfectly), then "NiceTool [best] alternative [YourOperatingSystem]" is often a good search. Alternativeto is also pretty great for that purpose. Lots of users list up- and downsides of tools which often makes it pretty easy to figure out if a tool would fit you or not. I've not yet tried another one, but alternativeto itself lists PrivacyTools and Product Hunt as popular alternatives.

If you are just searching for tips for software tools you didn't even know you wanted them, I'd highly recommend you look at the potpourri of this amazing course on tools for CS-Students/Programmers. I can't recommend this course highly enough. I've been going back to it again and again for helpful links on commandline tools or what to do if you messed something up with git.

1JessRiedel
Let me also endorse the usefulness of AlternativeTo.net .  Highly recommended.

Software: Omnigraffle

Need: Making figures and diagrams (e.g.: for scientific papers)

 

Other software I've tried: Sketch, Illustrator, tikz

 

Omnigraffle has beautiful defaults, and makes it very fast to create shapes and diagrams that connect. It can make crossing edges look pretty and clear instead of a mess. Illustrator gives you a lot more flexibility (e.g.: strokes whose width gradually changes, arbitrary connection points for arrows), but you can be way faster at making figures with Omnigraffle.

Use Illustrator for making art and posters. Use Sketch (or Figma) for mocking up UIs. Use Omnigraffle for making figures.

[-][anonymous]100

Selfcontrol for abstaining from visiting websites without expending your precious willpower. If you're a mac user.

Sorry for not following the rules but, I think discovering a whole category of software (like terminal multiplexers) is often higher value than discovering the best in that category.

EDIT: I've actually put in the effort to find the best software for this use instead of the first one I could find. Here are my findings:

- Cold Turkey, StayFocusd, Freedom all worked based on browser plugins, which took me 2 minutes to circumvent, so I found these (and others like it) quite useless.
- Focus is decent. It has schedules and it actually blocks on an OS level

The problem with blocking on the OS level, though, is that you cannot block sections of websites. Say you don't want access to Facebook except for a certain group that announces events you want to go to, or something. This fine-grained control isn't possible with an OS level block because it bases it on the IP address

I ended up choosing for FocusMe, which also blocks on the browser level but seems developed enough that it will still be hard to get around, even if you try to install or re-install a browser. It is the most cust... (read more)

6habryka
Freedom has served me a lot better here, and is also available on phones and I think Windows. Though Selfcontrol is also pretty decent.
8Matt Goldenberg
I personally have found FocusMe to be more flexible than Freedom and Self Control.
2[anonymous]
Looks like an upgrade. One problem is that it's not 100% surpassable, especially on phone, but for some use cases that's fine.  For my phone I use Scalefusion, by the way

Software: jq (https://stedolan.github.io/jq/)

Need: Process JSON on the command line  

Alternatives: grep/sed/awk, trentm/json, JMESPath

A lot if not most web APIs return JSON. data is nowadays provided in JSON format. Rapid prototyping and ad-hoc scripting often necessitate dealing with such data on the command line. Doing so with classical tools like awk/sed/grep is very cumbersome because the data is hierarchical and not line-based. Many people will prefer to process JSON in Node JS, Python or other scripting languages and that is totally fine. Noneth... (read more)

Software: fish shell
Need: interactive shell
Other programs I've tried: bash, sh, rc

fish is pretty good as an interactive shell. It has a quite intuitive search and excellent tab completion (e.g. including tab completion previews). The language is much simpler than bash, but less prone to weird substitution errors. fish is configurable, but I suspect that its package environment is not as extensive as for zsh. fish recently had a breaking language change which screwed up a couple of scripts I had written. I wish someone would write an rlwrap equivalent wit... (read more)

Software: Pluckeye

Need: Blocking certain websites during certain times

Other programs I've tried: StayFocusd, ColdTurkey, AppBlock

In a fight against procrastination, I've tried many programs to block distracting websites during working hours, but many of them don't have enough flexibility, are too simple to by-pass, or don't work on Linux. With Pluckeye you have basically any option you can think of, such that you can customize the blocking entirely to your own needs.

1[comment deleted]

Software: Vim

Need: Text editing

 

Other programs I've tried:GNU Emacs, Visual Studio Code, Atom, Sublime Text.

 

Vim allows powerful and ergonomic text editing and a lightweight and ergonomic environment that is able to be extended to infinity.

6nwmo
If you love vim, you will definitely love Neovim which is backwards compatible with vim but on steroids in terms of performance. 
  • Software: miro.com
  • Need: Remote collaboration, agile project management, individual ideation
  • Other programs I tried: Mural, Figma (online collaboration). Trello, Asana (Project Management)
  • Why it's better: Best UX and performance, ease of sharing with people outside your team, huge library of templates,...

Additional notes: I am a product manager and I had to transition a 30+ team in a highly creative industry (videogames) from working in the office to working from home. miro.com saved our life :)

Software: Newsfeed Eradicator + Leechblock NG

Need: Resilient self-control/anti-akrasia for web browsing.

Other programs I've tried: Stayfocusd, Forest

The problem with Stayfocusd and any website blocker is that, invariably, you have to navigate to a given tweet or youtube video or facebook profile, for legitimate reasons, and it means you have to go and deactivate the plugin. This is bad because 1. it trains you to do this action and 2. It incentivises you to avoid making deactivating the plugin too tricky.

Newsfeed Eradicator kills only the problem parts of ... (read more)

PythonDebuggerPlusPlus

Alternative: pdb, ipdb

Just pip install once into a venv and you'll get autocomplete in a pdb session and if you turn on sticky mode (which can be globally done via a config file) you'll get a proper display of the source code you're stepping thru.

Software: yabai + skhd

Need: window management for mac

Other programs I've tried: Spectacle, BetterSnapTool

If you're from a linux background and looking for an i3-like experience to manage your windows on macos, this (combination of) software is the best solution I've found. The other programs I've tried for this on mac are desktop apps, but yabai and skhd are configured in plaintext and are much more powerful and customizable.

Note: The yabai readme mentions a need to disable system integrity protection, but I have never done this and I can still resize/move windows just fine.

3madasario
Any xp with Amethyst for compare/contrast?  I'll be switching laptops soon and the biggest thing keeping me on linux is my very custom multi screen sway setup
2Rudi C
Why do you want to switch to macOS? The only thing going for it is having Adobe and Office software. On the other hand, it is likely to do explicit on-device scanning, it doesn't support Docker well, it is generally slow and can hang when the internet connection has problems. Hell, even its API for changing the background wallpaper doesn't work reliably for me.
1tcelferact
Haven't used Amethyst, but I do use sway on my personal machine, it's my favourite window manager! I prefer sway to my mac solution on my work computer, but that's mainly because macs are missing the $mod key, other than that I notice no real difference.

Software: The free version of PDF Viewer Pro by PSPDFKit (https://apps.apple.com/de/app/pdf-viewer-pro-by-pspdfkit/id1120099014#?platform=ipad) for iPad

Need: A program for iPad for reading PDFs and writing/making notes in them using apple pencil. I use it to attentively read math textbooks and solve exercises in them, read psychotherapy self-help books and fill in worksheets in them, read difficult academic articles and write notes for myself.

Non-needs (i.e., if you need these, maybe you should disregard my recommendation, because I don't use these): signi... (read more)

3Hans R
I'll add software for a similar need on Windows, i.e. touch enabled / pen enabled Windows Laptops: Drawboard PDF is by far the prettiest AND most functional PDF reader to use with a touch pen I've tried. It's a native Windows app designed to fit in with Fluent / Windows Store apps. Compared to Xodo, it's much more polished and provides easy radial menus for quick access to tools using touch, however it takes a bit longer to start up initially. (However, once it's loaded, opening more PDFs is quick) It's less powerful at editing than editing-focused PDF suites like Foxit or whatever, but also provides easy access to multiple PDFs at once and is great at research notes or studying. Drawboard PDF has served me very well during the research phase of my Bachelor's thesis.
[-]OPS50

Software: Roam Research

Need: Knowledge management and evaluation system

Alternative programmes I have tried: Obsidian, Athens Research (beta), Dynalist

A previous comment has listed Obsidian as the best software for knowledge management, however, I think it is necessary to provide an alternative view as to why I think Roam Research dominates this field of need:

  1. Roam Research has weightings assigned to the strength of relationships between nodes, meaning that this software can become an instrument for Bayesian inference.
  2. The atomic element of the software is th
... (read more)

I’m not sure if book scanning software is better now, but used to really like scantalior for books I’d scan from the library and share. https://scantailor.org/

I don’t know I can say that I remember much about the competitors. So… sorry if that’s cheating.

0Pattern
Upvoted. I don't see competitors being mentioned in this thread.
2ChristianKl
The rule in this thread is "You must briefly name the other programs you have tried and why you think your chosen program is superior to them". The comment does violate that rule.
5CraigMichael
People take thread rules pretty seriously around these parts.
-3ChristianKl
Why do you think you think one should take the wishes of other people seriously? In particular your comment doesn't really provide any use for someone who seeks a book scanning software given that your comment provides no useful information for chosing between the available options.
5CraigMichael
I did, and apologized in the initial comment for not specifically following the format. I'm not quite sure what the need is to point it out, again, when I initially acknowledged as much. If the roles were reversed I might have said "hey, I know you posted this in good faith, but was really hoping you would specifically follow the thread format and if that wasn't possible to not post?" It would give people a good starting place if they were looking for book scanning software.  I remember doing a pretty exhaustive search in 2012 when I did a lot of book scanning, and was impressed with scantailor. I could have listed the features I liked in more detail, but I couldn't have honestly or reliability reconstructed the search. So it's my experience for whatever it's worth and I didn't write it like it was anything else.  Other than specific feature by feature comparisons, a lot of this list is subjective experience with software.  In the future I'll take "must" on LessWrong as an absolute requirement. Normally Internet commenting isn't RFC-level strict. Thanks for the clarification.

Software: z, lf

Need: Navigating in Linux

Other programs I've tried: Nautilus, ls/cd, convenience scripts and aliases on top of ls/cd, nnn

lf offers a better interface than nnn, and z is just significantly more convenient than anything else, though I'm still using aliases for the most visited files and locations.

4Dagon
I'll make the pitch for ls/cd: universality.  I work on many machines, a lot of which are production hosts that I can't or don't want to customize even with my personal homedir and aliases.  Shared team-wide and project-wide aliases are fine - check 'em in along with the rest of production code.    Having my brain/fingers trained to quickly and correctly use the basic tools that are available everywhere is worth quite a bit.
[-]jsd40

Software: streamlit.io

Need: making small webapps to display or visualize results

Other programs I've tried: R shiny, ipywidgets

I find streamlit extremely simple to use, it interoperates well with other libraries (eg pandas or matplotlib), the webapps render well and are easy to share, either temporarily through ngrok, or with https://share.streamlit.io/.

Would be more useful if included OS and free/paid/subscription with the program name.

Software: OpenCPN

Need: Chart plotting software for navigation at sea; integration with AIS, radar and other NMEA connections; displaying GRIB files.

Other programs I've tried: Garmin, Simrad, B&G etc proprietary solutions (only sold with GPS plotter hardware); Navionics, Isailor, Nimble Navigator, ZyGRIB (only does GRIB files).

 

I do a fair bit of ocean sailing on small sailboats (between 1 and 3.5 circumnavigations so far, depending on how you count). Unlike on land with Google Maps or Maps.me, at sea most modern navigation solutions center around ... (read more)

Ag: the silver searcher, (grep replacement)

Alternatives: grep, ack

Ack has a better interface than grep and ag is like ack but faster.

2jellyfin
Give ripgrep a try.  I think you might find it to be even better than ag.
1Randomized, Controlled
...Interesting. Why do you prefer it?
5tcelferact
I also prefer ripgrep, because it's a lot closer to a drop-in replacement for grep, and sometimes I'm on a server where only grep is installed. I don't want to have to remember how to use 2 different programs for the same thing. ag does have some functionality for file-matching that ripgrep (and grep) is missing, but once I discovered fd https://github.com/sharkdp/fd (a drop-in-ish replacement for find) and xargs I never looked back. Typical command: fd match_some_paths | xargs rg match_lines_in_some_files (-l if i just want the matching filenames)

Software: SensorLog

Need: IOS app for continuously recording iPhone sensor data at all times.

Other programs I've tried: Toolbox - Smart Meter Tools, Sensors Toolbox - Multitool, phyphox, Physics Toolbox Sensor Suite, Gauges

I've tried many apps that let you see sensor data from your iPhone, but, SensorLog is the first that lets you log gigabytes of data in the background continuously for multiple days. Ironically, it's also one of the smallest apps I've used, at just 2.2 MB. My only issue with it is that the average audio dB logs seem to be bugged for long-term recordings.

1Rudi C
How is it that iOS doesn't kill it? I have yet to see any app that can run in the background continuously; Even apps that use the location API as a workaround will be eventually killed.
[-]Mor30

Meta-Comment: There is a whole site dedicated to this problem: https://softwarerecs.stackexchange.com/

I helped make it grow, but am no longer active there.

In case you don't know the StackExchange System: Its a Q and A format. You ask e.G. "Need a cartographing tool that supports non-spherical objects" and specify what you want it to do, how much it may cost, etc. and people who happen to know will answer it. It is acceptable and welcomed to provide BOTH question AND answer.

It is also a nice place to find questions you know the answer to and supply them.

Software: Godot Engine

Need: Game engine for amateur devs (especially for 2D and pixel art games)

Other programs I've tried: Unity, Game Maker Studio, Pygame, Love 2D


If you're looking for a game engine that's easy to get into and quick to produce results with, Godot is your best choice. It's free, completely open source, has a nice variety of functionality already provided and a lot of useful object types while still providing the flexibility of coding in your own scripts. It's lighter and more intuitive than Unity, not to mention, better suited to 2D develo... (read more)

Curated. The Best Textbooks on Every Subject is one of the most viewed posts of all time. With 107 comments and counting, this post is a worthy addition to the genre. We should have done this a long time ago!

Software: Trello

Need: To-do list

Other programs I've tried: Toodledo, Wunderlist [discontinued], Microsoft Outlook

I have a GTD-ish to-do list. The way it looks in Trello is that there's a "Work to-do list" Trello board, on which there are "lists" labeled "Today", "This week", "Waiting for..." "Done", "Next few weeks", "Not this month", "Probably never", etc., and on each "list" there are "cards" with individual items that I want to do. Trello allows each individual card to carry lots of useful information inside it, like links, attached google docs, text, c... (read more)

Software: https://onivim.io/

Need: modal code editor that works well for a VIM user

Others I’ve tried:

VsCode with VIM plugin – as any other electron-based app, it tends to hang every once in a while, and the plugins are the first ones to be suspended, so you end up not being able to navigate around the code until it unfreezes.

Emacs with evil-mode – actually my second favourite VIM mode in a code editor. I’d recommend using spacemacs, if you want a good emacs config with evil-mode. Does not work great on large enough monorepos though.

1jellyfin
Why don't you just use vim (or, even better, neovim)?  Is there something you think neovim lacks compared to those others (especially onivim)?
1Amateur
Fair enough, I don't think neovim lacks anything. It is somewhat easier to install additional functionality in onivim, since it supports VsCode plugins, but everything I use (some syntax highlight + tabnine) is also available for neovim. I guess the convenience of adding functionality with a few clicks won me over.

Software: Stremio+Plugins

Need: Watching movies online

Honorable mentions: vidsrc.me+adblockers, various torrent sites, Netflix, Amazon Prime, online websites.

Why its superior: It allows for watching movies from any platform, its integration with plugins (particularly the Juan Carlos 2, Torrent.io and ThePirateBay ones) is superb, and its tagging system is convenient. 

Software: Zenhub https://www.zenhub.com/

Need: Agile project management for multiple projects.

Other programs I've tried: jira, Monday, clickup, trello, etc

I use scrum to manage my general productivity (not just professional work) and other programs have tended to be painful when managing multiple projects, or have been fiddly in ways I didn't need. A downside to zenhub is it's only free for public projects, so someone inclined could read through your tasks. Zenhub's main selling point is github integration, but I largely ignore that and just use it for standard issue management.

Software: ffmpeg

Need: Converting arbitrary video/audio file formats into another

Other programs I've tried: Various free conversion websites

Not tried: Any Adobe products

Advantage: ffmpeg doesn't have ads, or spam, or annoying pop-ups

Software: pandoc

Need: Converting arbitrary document file formats into another

Other programs I've tried: In-built conversion for office-like products

Advantage: pandoc supports a lot of formats, and generally deals with them really well—loss of information through conversion is pretty rare

Software: archivenow

Need: Archiving websites to the internet archive.

Other programs I've tried: The archive.org website, spn, various scripts, various extensions.

archivenow is trusty enough for my use case, and it feels like it fails less often than other alternatives. It was also easy enough to wrap into a bash script and process markdown files. Spn is newer and has parallelism, but I'm not as familiar with it and subjectively it feels like it fails a bit more.

See also: Gwern's setup.

Software: Readwise

Need: Knowledge Reinforcement

Other Programs I'v tried: Anki , Evernote, Pocket

The ease of  copying and loading key references/highlights from various sources into a system which reminds of the key phrases every morning in a required pattern has been very useful. This is actually a project which i've started working and later gave up when i found Readwsie doing all of what i wanted and much more. It's ability to sync,tag,store and remind highlights from various sources (especially kindle, web browser) on a daily basis helped in a lot of knowledge reinforcement 

Software: Tasker, to automate everything Android. Alternatives: Automate, IFTTT, Llama

More details on this post, including a comment of mine detailing things that my setup does. I'll have some posts coming up as well, regarding Tasker and checklisting to drive.

But the point is, it's extremely powerful and flexible. There are also a bunch of plugins (some free, some paid), that expand it even more. With Termux, for example, you can even write regular Python programs to do complicated stuff as well. Pretty much anything I needed to do, I was able to do, and ... (read more)

Software: Fluent Search

Need: Navigating Windows with a keyboard / a Windows Search that doesn't suck.

Fluent Search does a lot of things, but at its core it aims to make you reach for your mouse less. 

The most obvious competitor is the Windows Start Menu or other launcher-type apps like Listary, but I haven't used the Windows alternatives too much. I'll say that it's much more powerful than KRunner or ULauncher on Linux though.

Features:

  • Search for lots of things on a quickly summoned search window:
    • Apps
    • Open windows / processes (will change focus / virtua
... (read more)

Software: Chrome/Chromium (Might work on other Chromium based browsers, but I don't use them, so YMMV)

Need: turn web apps into desktop apps.

Alternatives: I usually use Firefox (Desktop) or the DuckDuckGo browser (Phone) for daily browsing, but this is the feature that makes me use Chrome on a daily basis too. I've used this on Windows, Linux and Android so far.

See here for how to do this. Sometimes the best software for a need turns out to be a web app (Google calendar/Gmail for me). But I find it nicer to have them separate from my browser, if I use them ... (read more)

4Dustin
(Might Chromium based browsers, but I don't use them, so YMMV) MS Edge does this, and (unsurprisingly) compared to last time I used Chrome for it about a year ago, does a better job integrating the app with Windows.
2palcu
If you are on a Mac, a good alternative that I recommend for this use case is Flotato. I run a calorie tracker web app and as you said, it is so much better to isolate a specific app from the browser. The added advantage is that Flotato runs the Safari engine, so you don't get the battery drain from a Chrome instance.

PromptToolkitIpython [Python shell]

Alternatives: python, ipython, jupyter

Jupyter notebooks are great for certain workflows where you're doing exploratory analysis but also want repeatability, but they're also clunkier and heavier than a shell session. ptpython has really good autocomplete and UI widgets. Ipython is an acceptable substitute.

Software: Axios

Need: Making requests in javascript

Other libraries I've tried: fetch, isomorphic-fetch, request, maybe some others.

Why it's superior: It automatically parses outputs nicely (as opposed to be having to be fed to e.g., JSON.parse()), errors are ok. Overall much less of a hassle (though using "data" instead of "body" takes some getting used to). It of course has support for promises

3tcelferact
I prefer got to axios (and request, fetch): https://github.com/sindresorhus/got. I find the api cleaner (although that's a matter of taste) and it's built with typescript in mind.
3CraigMichael
I’m sad that I’m just now learning about this.

Notion.so for project management. Also a general replacement for google docs.

Tried: Trello, Jira/Confluence, linear.app (close second)

A simple and intuitive document editor with markdown-ish shortcuts that is powerful enough to handle task  assignment & tracking, meeting notes, and wikis.

Linear is also really good. Compared to Notion is has a command palette and search is better. However, it is not as good at anything beyond task tracking, wheras Notion is good for general purpose.

Software: Focus To-Do

Need: pomodoros and time tracking

Other programs I've tried: Harvest, Toggl

I really like Focus To-Do because it tracks how many pomodoros you spend on each task. You can create multiple projects or categories and then create tasks for each category. It has both a web app and a mobile app.

It also allows me to see how many pomodoros I do every day and see trends over time.

Software: Salesforce

Need: Customer relationship management (CRM)

Other programs I've tried: Hubspot, Sharpspring, Zoho

If you need a CRM for your business I would be hard-pressed to recommend anything other than Salesforce. It's the clear winner in terms of user interface design, flexibility, graphing, and integration. Competitors can be less expensive, and it's true that with all the bells and whistles Salesforce can cost something like $300/month per user, but on the low end the price is competitive and it comes with a host of features that you'd have to pay for on Hubspot and aren't available at all on Zoho.

I've long been fascinated by 'personal information managers'. I've started with DOS 'InfoSelect'. It had very fast search and flexible note taking with some calculation capability. In Windows, I've toured through a few shareware note takers, but currently concentrate on Evernote for more more serious use, but I need a document manager and annotater. Evernote will annotate PDFs, I want something with a different flavour. I'm dabbling with Zoot from Zoot Software. and InfoQube, a Canadian package; quite sophisticated and echoing the old EccoPro. Zoot is my c... (read more)