415 karma · joined December 31, 2020
The first article you reference includes something about Support Vector Machines (SVMs).
That's not what I'd call a "solution"
Since you've repeated the same argument at least 5 times by now, even though others have informed you about the wrong conclusion, I must assume it is meant to misinform.
I can't imagine publishing the entire source code of your entire stack even being possible.
What if you have some 3rd party vendor software in there? Are you required to publish their source too?
In my mind the super quick version of this entire thing seems to be:
- GPL requires you to publicize your changes if you distribute the software.
- SSPL is more or less the same as GPL, but also requires you to publicize your changes if you offer the software as a service to others.
To me it really seems as if SSPL is a more modern GPL, fit for the SaaS world.
What am I missing?
Signal on Android does support encrypted backups, however they're not automatically synced with anything. I think on iOS there's a different way to migrate your data, but it seems to require a PC.
I would be interested in a way based on coding theory that solves the problem in the blog-post. Something of a form similar to this one would be a solution to me:
def find_missing_number(nums: List[int]):
# 1. Define some code C (possibly using nums)
# 2. Encode a message using C (or interpret nums as a word or codeword)
# 3. Do something with the word
# 4. Find the locations of the errors in the word
# 5. The locations of the errors tell us the missing number(s)
The answer on stackoverflow seems to use methods very related to RS decoding, however I can't quite squint enough at it to see, whether it could actually be solved using the exact same methods in RS decoding.I'm familiar with some subset of coding and number theory, so you can assume at least some more knowledge (Galois Fields, or basics of RS codes for example).
Small nitpick: The Vandermonde matrix actually isn't square. It's a (k × n) matrix, (where typically k ≠ n). Therefore, it can't be invertible.
I see that many codes contain a parity bit (for example the extended Golay code), however I don't see how the operation of recovering "the missing number" could be implemented in terms of a code and its encoding/decoding algorithms.
I've found this on stackoverflow: https://stackoverflow.com/a/3492967/3868157
It describes a way to recover the missing number by constructing a Vandermonde matrix using the given numbers. This would correspond to constructing a generator matrix of a specific RS code [1]. However, after this I'm not so sure about the relation between encoding/decoding and recovering the missing number.
In the end they also factor a polynomial (that could be something analogous to the error locator polynomial?).
[1]: although I'm not sure if it's strictly an RS code
Although: that's not true for arbitrarily sized integers either. Multiplication in O(1) implies P = NP (which further implies NP = PSPACE): https://cs.stackexchange.com/a/1661/129151
Maybe you can elaborate on how it relates to erasure coding?
However, I don't see how you would know the locations in this problem?
Maybe you can elaborate on how this problem relates to erasure coding?
What works flawlessly, however, is:
In [1]: a = None
In [2]: b = 0
In [3]: (a is None) ^ (b is None)
Out[3]: True
Alternatively, as suggested in another comment, you can use inequality as a replacement for XOR: In [4]: (a is None) != (b is None)
Out[4]: True
Another error prone pattern is the following: In [5]: a or b
Out[5]: 0
Which can behave differently depending on the order of elements/values: In [6]: b or a
Out[6]: None # should be 0
Since b is zero, it doesn't count.
Less error prone, but also more verbose is: In [10]: a if a is not None else b
Out[10]: 0Julia is using LLVM for code-gen has to compile a lot of code before you can actually use stuff like plots.
It takes ages to get a Pluto Notebook up and running, while a jupyter notebook is available instantly.
If you pay 500k$ for compute, it might become worthwhile to invest time into rewriting hot paths.
However, as per my other comments, you can update the distributions of your parameters in different ways, such that none of the events in the Drake equation have a particularly low probability.
Then the Great Filter disappears and there's no specific or few set of events to point to - it's just that the probability of all events succeeding in combination is extremely low.
Let's use the simple example you reference from the paper. If we just use the mean as point estimates, then indeed we obtain an extremely low probability that there's no other intelligences:
def prob_of_no_intelligence_in_galaxy(p):
prob_of_intelligence = pow(p, 9)
planets = 100e9
return pow(1-prob_of_intelligence, planets)
prob_of_no_intelligence_in_galaxy(0.1) -> 3.720086311124783e-44
However, there is already a 82% chance of an empty galaxy if the parameter p is halved: prob_of_no_intelligence_in_galaxy(0.05) -> 0.8225792614407508
Now of course halving every probability is a lot, however now there's no single or few events that have a very low probability of happening. The Great Filter disappears.See also my other comment here: https://news.ycombinator.com/item?id=25811359
The paper argues against this in that you don't need a few very improbable. In fact, there are many parameter choices where none of the probabilities in the Drake equation are particularly low, yet the resulting number of intelligences is still staggeringly small.
tl;dr: All parameters can be a bit lower. Then you don't need any events that are extremely improbable.
This explanation is much more plausible than a Great Filter. Here's a great comment summarizing the argument very intuitively:
https://news.ycombinator.com/item?id=17562439
I also found this one very helpful: