In reality the signature is a bit uglier, I simplified it for the post because the point was about effects. In particular we also pass in the configuration, Redis connection details, and a callback to manipulate the TBQueue.
470 karma · joined February 24, 2013
In reality the signature is a bit uglier, I simplified it for the post because the point was about effects. In particular we also pass in the configuration, Redis connection details, and a callback to manipulate the TBQueue.
https://www.reddit.com/r/programming/comments/5x3hdd/channab...
Also, a compiler refuses to compile your code if you make a typo in a field name.
It is not clear to me how Docker solves the issue of pinning dependencies; I would rather have a file that states the exact version of every package to install, than an opaque blessed container image that has some versions installed, and I do want to have the versions used under source control. Generating the image would not be reproducible (in the sense of having the same Python files inside it) without pinning versions somewhere anyway, right? Or am I missing something obvious?
I have an aversion (based for a large part on prejudice) of things that involve Javascript and its ecosystem :)
I hear many good things about Purescript’s effect system, but I haven’t studied it in detail. This is definitely one of the areas where there is room for improvement in Haskell.
Regarding the type class hierarchy and head being partial, those weren’t really an issue in practice.
As we were going to do the rewrite anyway, we considered more alternatives than just Python. For programs that have to be reliable and maintainable, I prefer a language with a strong static type system. Haskell has that, and it has a few practical benefits over other tools that made it an excellent choice for our use case.
It is not. As Dan Boneh stresses in his cryptography course, a cryptosystem is either secure or “terribly, terribly, insecure”.
[1]: https://github.com/ruuda/claxon/blob/91b6af9/src/subframe.rs... [2]: https://github.com/ruuda/claxon/blob/91b6af9/src/subframe.rs...
The TempleOS shell is pretty innovative in this regard.
This was actually an issue with early versions of Servo on Windows: cloning the repository would fail because it contained a file with a # in the name.
https://github.com/servo/servo/commit/43c999905c01627133240c...
You can define a function f from a subset of the complex numbers to the complex numbers where f(z) = \sum_{n=1}^\infty 1/n^z. Be careful with the domain of this function: the series does not converge for all z. You can plug in -1 and see that symbolically, f(-1) = 1 + 2 + 3 + .... But the series does not converge for z = -1, and it is simply not true that \sum_{n=1}^\infty n = -1/12; the series does not converge; equating it to something is a nonsensical thing to do.
What is going then? Even though f is not defined for all complex numbers, there exist functions from the complex numbers to the complex numbers that -- restricted to the domain of f -- are equal to f. They "continue" f to all of the complex numbers. And if one imposes a restriction on these continuations (namely that they are analytic), then it turns out that there is a unique analytic continuation of f: the Riemann zeta function. And zeta(-1) = -1/12.
Don’t confuse the definitions here. The Riemann zeta function can be defined as the analytic continuation of the series, the series is not defined in terms of the Riemann zeta function!
https://www.reddit.com/r/urbit/comments/4okcm6/were_the_core...
There are more interesting insights in that thread about Urbit’s unorthodox decisions.
> Urbit is a new programming and execution environment designed from scratch. Any resemblance to existing languages or operating systems is coincidental, cosmetic, or inevitable.
It was based on this idea: suppose that a different civilization (Martians specifically) had invented computing long before humans. Then by now they would have perfected it. What would their system look like? Urbit is an attempt to rethink computing without the bias of human research and our current intuition. At the heart of Urbit is Nock, a “functional assembly language”. Zero is intentionally used to denote “true” to defy programmer intuition.
[1]: https://moronlab.blogspot.com/2010/01/urbit-functional-progr... [2]: https://github.com/cgyarvin/urbit/blob/master/doc/book/0-int...
https://blog.codinghorror.com/because-reading-is-fundamental...