265 karma · joined May 25, 2018
Having used Graphviz for fairly complex visualizations I was initially shocked that someone would rewrite it themselves. Then I saw the breakdown of the algorithm and realized it may not be as complicated as I first thought.
All that being said, as a general rule it is hard to know what the hidden complexities may be until you are finished implementing the algorithm.
In the past I have also used it to generates quotes (in terms of finances, invoice etc.). It was neat because all of the logic for adding up the subtotal was written in the language (and was fairly easy to understand). I can imagine trying to do that logic in LaTeX…
While I do think that deleting the whole thing is extreme, I can imagine that there is a level of catharsis experienced by that.
Lately I have subscribed to Oliver Burkeman’s (author of “4,000 Weeks”) line of thinking where life, and subsequently thoughts, are more meant to be experience rather than optimized. For me, I have seen a negative drop in “life enjoyment” when I have tried to capture everything, and have yet to realize the results and even stick with it consistently (which may be the reason for not seeing the positives).
You need to renew the license every 10 years, but as long as you renew you don't need to take a test (which is maybe what you mean by "lasts a lifetime").
I agree that this is a tooling problem, but magit is a breath of fresh air in many ways (including verbose commit messages).
For the comments referring to examples more complex than Sudoku, his website is the best that I have found! Thanks Hakan.
We used it to create models of networked biological systems (e.g. the immune system, gene regulatory networks, etc.). The network topology was constructed from mined academic literature and then the model was constrained using data. The great thing about using MiniZinc was that it could propose multiple models with the same or similar “accuracy” to the data. You would then have an ensemble of models from which to make predictions (i.e. how does a drug affect the system).
We would have MiniZinc files that were 10s or 100s of MBs and would run for days. Sometimes they would be unsatisfiable within a few seconds, other times within hours. Many of the solvers are single threaded, and those that are multithreaded don’t seem to be much more efficient with more cores.
MiniZinc is very difficult to debug and the paradigm shift can be jarring coming from procedural languages. However, I am grateful it exists and for the work that many have put into it. Similar to the train yard comment, we used Python to construct the MiniZinc models and then submitted them to the solvers via the minizinc-python package which is well written and meek maintained.
- MiniZinc, https://www.minizinc.org/ a constrain set programming language that can also optimize an objective
- Picat, http://picat-lang.org/ a general purpose language that specializes in logic and optimization
Also, I have found Doom to be much quicker (takes about 2 seconds to load, not using server/client) and less buggy than Spacemacs. I would highly recommend giving Doom a try!