1,216 karma · joined January 13, 2018
One of the goal of K8S is normalization/standardization of a complex topic to better share knowledge
The output of a run of profile-guided optimisation could be used to discover that graph, and only the touched functions would be drawn. This graph could be useful to start with the codebase, without being too overwhelming with all the edge cases.
The intention in foo is not for x and y to be numpy arrays, it is to add 2 objects together. "If it walks like a duck and it quacks like a duck, then it must be a duck".
That function can work on anything implementing +, this is the philosophy of Python. It enables the whole numpy, dask, TensorFlow ecosystem.
If you intend to limit it to numpy arrays, you either use numpy 1.20's static types, or you add more checks at the beginning of the function, such as np.asarray(x).
- the codebase had to be modified to work on both versions at the same time
- you had to maintain two versions in different branches for a while
Is there any data to show which options was most often chosen amongst all pypi packages? I suspect that the second option was more popular for the most important packages of the ecosystem
And if you wanted to try that yourself anyway, changing all .py to .py3 in a directory is one unix command... It could easily have been part of a 2to3 tool
But there was a sort of broken promise given by the Python creators: Python3 was almost like Python2, but every library author had to review and repackage their libraries, anyway.
At that point, Python 3 should have been unambiguously incompatible with Python 2 :
- the only allowed file extension should be py3
- all environment variables should have been duplicated with a "3" (it shouldn't read or modify Python 2 env vars)
- all installation folders should have been duplicated with "3"
- all tools like pip should be suffixed with "3"
- and most importantly, it shouldn't try to optimistically run previous Python2 code or previous v2 tools
The mistake was that you could use "pip" or "python" in bash scripts/shell, and not know if python2 or python3 were going to run.Still today, you can run "python" in a recent version of Ubuntu or Fedora, and it will be Python 3. Only "python3" should be possible. Distro are repeating the same mistake than with Python 2, and we will struggle again with Python 4, if there is any Python 4.
Many headaches wouldn't have happened if "python" was reserved to Python 2.
Pro tip to language and distro maintainers : make the major version part of the language name and executable, from version 1.
It makes me want to leave France.
The debate is not about useless/useful, it is about : can we solve the same needs with a lot less spend energy?
> Use resources the way you wish and so will others. Free markets will decide where scarce resources work best.
That way of thinking leads us to the carbon catastrophe the entire world is trying to reverse right now.
On the other hand, if you were asking support to train you on "how to do A, B, C" while you didn't even check the documentation nor made a basic google search, I can understand why you were disappointed. Paying more for support doesn't change the nature of it, it doesn't magically become a google bot for you.
Could you maybe give an example on the issues you reported to support ?
I learned programming by myself when I was a teenager, and 0-indexed never was an issue.
We learn very early on as kids at school that there are 10 digit numbers, not 9. You learn to write 0 before any other characters. On every digit pad, such as phone dial, there is a "0".
If I ask you the list of digit numbers, 0 is the first element.
There is nothing counter-intuitive about that in my opinion, even for a kid.
If Julia needs a "Performance Tips" section to produce fast code, I might as well use Python.
The "speed" from Julia comes from LLVM, but there is nothing stopping Python to use LLVM as well where it _makes sense_ (which is the case with XLA in TensorFlow, for example).
I see no plus value in learning Julia over existing tools, there is nothing revolutionary or nothing that could alleviate future risks.
I would like a language designed to target a hierarchical-memory system. I would like a language that forces me write single-threaded batched (or "blocked") algorithms with low cache misses.
How many pieces of code are out there where an easy x4 speedup could be achieved today if there were written with batched operations from the start? (It also shows how limited are the compiler in autovectorizing)
Rust gives me guarantes regarding memory safety, I would like a language that gives me guarantees that SIMD instructions and 2 cache levels are correctly used, without having to read the source code and compiler output.
I didn't try, but I don't see how it could be more straightforward than just launching a docker container
Signal works with a contact list, for private 1 to 1 and private groups. You need a phone number to use it, and they claim to encrypt almost all metadata, such as message senders. Signal claims they cannot read the content nor the history of users actions (but you have to trust them on that, they claim to use SGX enclave stuff, but can anyone technically verify that they do what they say they are doing?)
Element works with rooms, there is no contact list. A 1 to 1 conversation is a room with 2 people. The homeserver Matrix.org stores all metadata and they are readable (metadata are not private/not encrypted) by Matrix for some features to work. You only need a nickname to use it (at least for now). The content of conversations are e2e encrypted. In theory, i understand it would be possible for a matrix server to delete any metadata/messages once messages are delivered, but some features would not work, and you would also have to trust the server to actually delete the metadata.
Would be happy to read anyone who could correct or complete me.
I don't know if the data is from GA or a custom made solution
You would reference to previous knowledge without having to think about citing authors, because it would be automatically generated from the graph.
Then we would have hundreds of "knowledge verifiers", like we have bots scanning github, and ultimately bots deriving new knowledge and contributing to the graph.
The whole world would be building a shared database of knowledge, without any duplicated effort.
Most of the individual facts in this database would probably be boring (like the trivial facts in logic or mathematic), but once in a while, an interesting and important fact would be found.
It would be interesting to have a "persistent" layer where you could store stuff related to a domain. For example you would store userscripts in "ycombinator.com" folder, and they would load each time a tab of that domain is open. That would be a clean organization.
Then, if websites are made with TabFS in mind, the gap between the concepts of "apps" and "website" is probably filled.