The parent poster's comment about redis being crash safe to 1s is just the default.
149 karma · joined April 25, 2014
The parent poster's comment about redis being crash safe to 1s is just the default.
The last medical bill my family had was something like $3500 and the longest term the hospital offered was 6 months, at $580/mo.
I'm sure they're not all the same, but I could certainly see an unexpected $580/mo being able to cripple a family living paycheck to paycheck.
For example, Go's err != nil pattern is often cited as being ugly, but good go code will often remove errors by design.
There's a good post by Dave Cheney about this; https://dave.cheney.net/2019/01/27/eliminate-error-handling-....
I think this is equally true of Java. Most Java code I've seen disgusts me, but I've also seen some beautifully written pieces.
Pretty neat stuff.
Usually theres a handful of people that tend wiggle their way into more backend, architectural things (libraries, in-house tools, etc.). If you're bored, try to be that person.
I don't buy into the "increased performance" though. Every well done benchmark I've seen is at least several yaers out of date, and my personal benchmarks usually put linux ahead on any sort of operations that include networking. Not to say FreeBSD doesn't perform well, it does.
Simplicity is key.
Furthermore, many of his arguments seem to be statements about all high level languages.
I suppose when windows caught up Bash on Windows, FreeBSD needed to do something to keep one step ahead =].
I'd like to see some examples illustrating appropriate usage of Clone-on-Write with Rust strings - that's something I personally have struggled with while learning rust.
Let's focus on how horribly awful Drupal is. Or, to the point of the topic, let's congratulate the author for discovering that yes, you can in fact replace a single server with any number of cheaper computing devices (you just have to disregard all of the other reasons why we use servers).
As for QR decomposition, I am actually rather familiar with it, my brain simply decided to fart on the symbols QR without being followed by decomposition.
For Cholesky Decomposition, I'm sticking with "trivial to implement", and I'll even throw in "trivial to implement well": https://github.com/numpy/numpy/blob/v1.10.1/numpy/linalg/lin...
You asked if D had code for a list of math capabilities that you use on a regular basis. My answer says "In many cases, no, but there's work being done toward that goal." No one is saying "we have a feature-complete math library!". There's much more needed than what you listed, and even the things you listed have many items with zero work done toward them. I am not attempting to say "D can do all these things!", and I don't think the author of the article was either.
https://github.com/DlangScience
[x] Plotting: http://code.dlang.org/packages/plot2kill
[+] Optimization: Nothing directly for the purpose, but the intermediate steps are done. And a little bit of work from http://code.dlang.org/packages/atmosphere
[x] Probability Distributions: http://dlangscience.github.io/dstats/api/dstats/random.html and http://dlang.org/phobos/std_mathspecial.html
[-] Machine Learning: Not that I'm aware of, but I vaguely recall some work being done on this
[-] Financial calculations: I couldn't find anything, but I'd be surprised if this wasn't implemented already.
[x] Masked Arrays: Accomplished via language features in combination with ndslice
[x] Structured Arrays: Absolutely. Standard library support as well as a number of 3rd-party libs can do this.
[-] SVD
[?] QR: Afraid I'm not sure what you're referring to.
[+] Cholesky Decomposition: Trivial to implement
[x] Eigenvalues/Eigenvectors: Yes. SciD provides Eigens as well as two other third party packages. https://dlangscience.github.io/scid/api/scid/linalg/eigenval...
[x] Least Squares (linear): Trivial to implement, but also implemented by a few of the 2-d & 3-d graphics libraries.
[x] Least Squares (nonlinear): Nothing, but we both know that this is easily done by applying a function to your independent variable to linearize it in many cases.
[-] Levenberg Marquardt
[x] Matrix Inverse: Provided by SciD
[?] pseudoinverses: I'm afraid my math background doesn't cover that, and I couldn't find anything with a similar naming in the package repository
[x] Integration: SciD provides integration
[-] Range Kutta
[-] Interpolation: Sort of. A few of the graphics libraries have this, but it's asking a bit much to include a graphics library to do interpolation.
[-] Bsplines
[-] fft convoles
[?] Multidimensional images
[?] KDTrees: Probably in one of the 3d graphics libs
[+] Symbolic equation solvers: Some of this was done for Tango back in the day, and it has been ported, but the project looks fairly dead. https://github.com/opticron/libdmathexpr/blob/master/source/...
[x] Merge/join of data sets: Can be done efficiently and easily with core language features
Additionally, anything written for C can be trivially wrapped and used in D. An example is http://scimath.com/, which completes much of what you mentioned.
Are they in standard libraries? SciD needs more time Fully Documented? D tends to encourage good API documentation, and the algorithms are largely ports of "69 year old, fully debugged code".
I think you're point about "reliably email to anyone across the world" is an overstatement. Python is popular, not ubiquitous. D is obviously much less popular. Can anyone run the code? Yes. For them to modify it, they need to learn the language.
You might not care about how long computations take, but I know back at my old university there were dozens of researchers complaining about the resources that had to be spent on supercomputer time, and the annoying amount of time that many calculations involving things like molecular configurations can take. Speeding this up saves money and makes the research less painful.
"No one is ever going to use D for serious number crunching without the infrastructure in place" - Yeah, that's totally true. The infrastructure is a WIP. There's nothing wrong with that.
Your post comes across to me as being rather cynical - but why not be supportive of the good work that's being done?