[1]: https://github.com/google/jax/issues/16321 [2]: https://github.com/google/jax/issues/17490
361 karma · joined February 12, 2019
[1]: https://github.com/google/jax/issues/16321 [2]: https://github.com/google/jax/issues/17490
I really like PyMC's API, but as soon as you move towards bigger datasets JAGS or Stan seem to be the only practical options.
This seems to be another variant that claims to find the global minimum quicker than other existing methods. I am not experienced enough to verify this claim. I am also not sure how this new algorithm performs in practice; in theory, ellipsoid methods are a lot more efficient than simplex methods for optimising convex functions, while in practice simplex methods are usually an order of magnitude faster. So take this result with a grain of salt.
An example is the fact that `for_each` is not supported on providers [1], an issue with 230 likes which has not been solved since January 2019. This had me resort to a Python script which generates a `.tf.json` file, definitely not ideal. Infrastructure as code sounds great, but in practice it's closer to "infrastructure as a non-standard markup language".
You could also construct a graph, where every price is a node. Start at 0.00, and do a BFS until you find the desired price. Worst case scenario O(n) where n is the desired price. Could be optimised by using a path finding algorithm like A*, its heuristic would make it try a greedy algorithm at first and then do a more complex solve at the end.
Another possibility is by memoization (dynamic programming). Strictly worse than the graph algorithm in complexity terms, but in practice your computer is very good at working sequentially on a very big array of booleans.
Really many different approaches to solve this problem. In this specific case greedy worked as well.
If anyone knows a method to short Korean housing, please let me know!
Discord is literally the only x86 application that is still installed on my MacBook Pro M1.
"Mathematical textbook problems are useless, because scribbling mathematics in a notebook is not best practice! Real mathematicians exclusively spend their time writing academic papers."
The algorithm sounds like a simple tree search algorithm. Let's consider the naive case: traverse all images, and keep a list of hashes you have already visited. For every extra image, you have to traverse all previous n hashes you have previously computed. Naively doing this check with a for loop would take O(n) time. You have to do this traversion for every image, therefore total time complexity is O(n^2).
Fortunately, there is a faster way to check whether you have found a hash before. Imagine sorting all the previous hashes and storing them in an ordered list. A smarter algorithm would check the middle of the list, and check whether this element is higher or lower than the target hash. When your own hash is higher than the middle hash, you know that if your hash is contained within the list, it is contained in the top half. In a single iteration you have halved the search space. By repeating this over and over you can figure out if your item is contained within this list in just log_2(n) steps. This is called binary search. Some of the details are more intricate (e.g. Red-Black trees [1], where you can skip the whole sorting step) but this is the gist of it.
This all sounds way more complicated than it is in practice. In practice you would simply `include <set>;` and all the tree calculations are done behind the scenes. The algorithm contained within the library is clever, but the program written by the author is probably <10 lines of code.
You will have to deal with this problem either way, going straight to the Saudi Arabian oil operator just skips the middleman.
Personally, I find this a far less impressive demo of the SuperH SH-4 CPU than, say, Doom running on a graphical calculator. A http server (not https) simply opens sockets, writes a string, and closes the socket, a task which is usually purely I/O bound. Implement something basic like HTTPS (introduced in 1994) and watch this CPU grind to a halt.
Furthermore, you do not have to take the exam in your own room. Any quiet room where there are no other people is theoretically fine. Having access to such a room is your own responsibility, just like having access to a laptop to do your study is your own responsibility. In practice, hiding private items in your study room is usually the most practical way to get access to a comfortable room, but I do not believe requiring students to have access to a private room for 2 hours breaches their privacy.
The proctoring process is actually pretty simple: I have a Google Chrome extension installed that I enable when I have to take an exam. It takes 5 extra minutes before the exam: I have to show my identification, the materials I'm using on my desk, my ears to check whether I'm using wireless earphones, and do a quick sweep around the room. It records my screen, my webcam, and my microphone. Of course, the system is not fool proof (I've heard some students use post-its on their display), but communicating with other students becomes nearly impossible.
My roommate is actually jealous of my proctoring. He does not cheat, but knows most others in his year do. There are groups of students who meet up and take exams with each other. As a result, some of his peers consistently get higher grades, while my roommate clearly put in more effort and is more capable of achieving a high grade on his own. Because the barrier to cheating is so low, it almost becomes a requirement to cheat if you want to achieve grades that are high relative to your peers.
I do not believe proctoring is a breach of my privacy. Google Chrome's sandbox is good at explaining what information the extension is requesting, and when it is turned on. Chrome's battle-tested sandboxing makes me confident that the extension is not snooping through my files, for example. It only sees my screen. I can hide things I do not want the online proctor to see before the exam starts. Similarly with my room, you can hide everything that would breach your privacy before the exam starts. Of course, online proctoring is invasive, but I believe students should think more carefully about the dilemma our teachers are facing. Lack of online proctoring discourages smart students, discourages learning, and hurts the reputation of the university in the long term with unreasonable diploma's. This pandemic requires flexibility from everyone, and simply crying "privacy" without considering both sides is short-sighted. The data recorded for online proctoring is reasonable, and does not bring us closer to any kind of "big brother" scenario.
This article avoids the fact that declarative programming has proven to be more pleasant for most people. And React simply is fast enough for most use cases, even though it has a performance penalty compared to Svelte. The virtual DOM is an elegant optimisation that usually works well in the real world, and methods like `shouldComponentUpdate()` can be used in the 1% of cases where the default is not fast enough.