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.
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
Requests thread
I’d appreciate it if someone touched on differential equation solvers
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.
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.
In that case, you are probably beyond what I can help you with.
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.
Ohh, this looks quite nice, thanks.
Did you end up using DifferentialEquations.jl, or did you prefer a different solver?
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
Thanks for the update and links.
Mathematica is the most powerful solver I’ve come across (it’s basically Wolfram Alpha with additional computational time).
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.
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.
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?
Ooh that’s more intense that I realised. There might be plugins for yEd, but I don’t know em. Maybe Tetrad?
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.
I’ve been using and happy with https://languagetool.org/
I’d appreciate it if someone touched on shells
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 bothzsh
(possibly use OhMyZSH if you don’t want to waste time setting it up properly yourself) andfish
, and sticking with the one you like better.Here’s my attempt.
Cheers, though zsh is conspicuously missing.
Yes, it’s just that I haven’t tried it yet.
I kind of like Xonsh, but that’s because I’m used to Python. It still has some rough edges.
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
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.
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.
NetLogo is the easiest entry point. Mesa is gaining support.
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
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.
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
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.
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!
I’d appreciate if someone touched on HR software and CRMs for small businesses.
Also, collaborative document editing that isn’t owned by Google.
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.
Free, universal financial tracker.
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 :)