For those who are using Emacs, https://github.com/federicotdn/verb provides similar UX, I have been using it as a postman alternative for quite some time.
I have been using https://github.com/jacktasia/dumb-jump to quickly jump to definitions. LSP is hit or miss; in some languages, it works great, while in others, the implementation is not so good. I have been thinking about a middle ground based on Tree-sitter. GitHub uses Tree-sitter to power code navigation, but unfortunately, I can't find anything good that I can use offline. Why is there no ctags equivalent powered by Tree-sitter?
We have a similar use case. All Elixir code base, but need to use Python for ML libraries. We decided to use IPC. Elixir will spawn a process and communicate over stdio. https://github.com/akash-akya/ex_cmd makes it a breeze to stream stdin and stdout. This also has the added benefit of keeping the Python side completely stateless and keeping all the domain logic on the Elixir side. Spawning a process might be slower compared to enqueuing a job, but in our case the job usually takes long enough to make it irrelevant.
ES should be thought of as a json key value store and search engine. The json key value store is fully consistent and supports read after write semantics, refresh is needed for search api. In some cases it does make sense to treat it as a database provided the key value store semantics is enough.
I used it about 7 years ago. Text search was not that heavily used, but we utilized the keyword filter heavily. It's like having a database where you can throw any query at it and it would return a response in reasonable time, because you are just creating an index on all fields.
This is one of the things Elixir got right on day 1, all the libraries in the ecosystem use the standard library and it makes dealing with logs so much easier compared to other languages.
> For example, you don’t need sidekiq or Redis as Elixir/Erlang is a concurrent, distributed platform. This simplifies operations and is cheaper to run.
This is simply wrong. You need a Sidekiq alternative (There is Exq which is protocol compatible with Sidekiq, others like Oban are available as well) because Erlang processes are not durable, nor do you get retry, concurrency control, etc. Everyone loves to claim Erlang is distributed and you can connect them so Redis is useless? but this is rarely utilized in the context of the web server. I have been using Elixir for more than 5+ years now, and I have never seen a valid use case for connecting two nodes.
In reality, the tech stack of the Elixir web app is mostly similar, but it makes life a lot easier if you ever have to deal with any kind of concurrency. Making concurrent requests is as simple as doing a map over a list and they just work, unlike other languages where you have to double-guess whether the library you use is thread-safe.
It depends on the layer, some of the layers might be able to take advantage of how the data is persisted. For example, if you use avro/protobuf, the decoder will handle it for you. If that's not the case, you would have to implement the migration by yourself. There is a paper[1] on this subject called "Online, asynchronous schema change in F1", which explains how to implement it.
Salesforce has this model of development and it's horrible. They won't let you run the code locally since the environment is proprietary. Even to run the tests, the code has to be uploaded and run on their servers.
You can opt out by clicking Manage settings and then uncheck the green tick. I just realized I can enable reject button as well[1], should be available soon.
Nothing specific, I was even looking at adding support for beancount then realized it's much more strict and doesn't support some features like periodic transactions (which I use for budgeting)
The project comes with a flake.nix file, you can try that (you would still need to build it manually, I use the flake only to bring the dev environment, not to build the final package). I don't plan to submit to nixpkg myself or any other package managers. I will only focus on binary builds that's downloadable from release page. I don't have any experience with maintaining distro level packages, and I don't think I can figure out the details and keep it maintained. I will leave it to the community to figure that out.
> Not trying to be argumentative, but every time I've heard someone claim they do envelope budgeting in ledger without virtual accounts, I've always found a flaw in their approach.[1] So let me give you the standard scenario:
I fully understand. I spent some time looking into the details and if you do it via ledger command line, this is probably the only way to do Envelope method.
Now, Paisa is a bit different, I can process the info before presenting it to the user. The fundamental data that we require is
1) what is the actual spend
2) what is the budget.
Periodic transaction is a type of transaction which is completely ignored by ledger unless you try to forecast. So this fits my use case perfectly. When I export transactions from ledger, I will know whether it's forecast/normal transaction. Forecast is ignored everywhere, so your checking account balance will show actual balance everywhere. But if you go to budget page, it will take the forecast transaction into consideration. It will show what is the current balance, month end balance if the forecasted spends are done etc.
Again, the fundamental difference is, Paisa can process the output of ledger and it can get away with asking the user to provide the bare minimum data (actual, forecast in this case)